参考这样写:
我试试看 是不是地址访问的问题? 如果 tempaddr 如果不能被4整除,还强制uint32_t*访问的话会出硬件异常。 是不是地址访问的问题? 如果 tempaddr 如果不能被4整除,还强制uint32_t*访问的话会出硬件异常。 迷雾向前 发表于 2017-1-20 11:30
是不是地址访问的问题? 如果 tempaddr 如果不能被4整除,还强制uint32_t*访问的话会出硬件异常。 ...
正解,果然是这样 tempaddr变量的数值有问题吗?如果读取的数据时程序代码本身所处的位置,就会触发错误。
使用指针读取内容,不是任何位置都可以读取的 zoomdy 发表于 2017-1-18 12:43
你这个是什么核心的,如果是Cortex-M3及以上,可以查看SCB->CFSR, SCB->HFSR, SCB->MMFAR, SCB->BFAR这几个 ...
Cortex-M3的,怎么分析这几个寄存器?截图如楼下 答案显然是tempaddr的值是非法, 不是对齐问题就是越界问题,
如果tempaddr是局部变量就暂时把它改为全局的, 在进 HardFault_Handler后查看tempaddr就知道问题在哪儿了 flash是不是只能按半字(16Bit)读取啊?换成uint16_t*试试?
页:
1
[2]