操作内部FLASH导致进入HardFault

2019-07-14 15:43发布

在做IAP升级程序的时候有段程序一执行就会跳入到HardFault_Handler中,求各位大神支个招,产生错误的代码如下:

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
13条回答
5616asaqwq
1楼-- · 2019-07-15 02:19
7762642422d 发表于 2018-11-27 20:17
本帖最后由 moyanming2013 于 2017-1-18 12:27 编辑

count如果是uint8,其值最大是255,那么永远也出不来for循环。

是UINT32_T
60user58
2楼-- · 2019-07-15 07:31
你这个是什么核心的,如果是Cortex-M3及以上,可以查看SCB->CFSR, SCB->HFSR, SCB->MMFAR, SCB->BFAR这几个寄存器来确定出错的原因。如果是Cortex-M0,那么查看一下反汇编,看看执行的是什么指令。
嘻嘻爱哈哈
3楼-- · 2019-07-15 11:17
需要限定 tempaddr 的取值范围,否则可能 读取 不存在/或者 其它异常的地址,导致错误发生
5616asaqwq
4楼-- · 2019-07-15 11:35
60user58 发表于 2018-11-27 20:43
你这个是什么核心的,如果是Cortex-M3及以上,可以查看SCB->CFSR, SCB->HFSR, SCB->MMFAR, SCB->BFAR这几个寄存器来确定出错的原因。如果是Cortex-M0,那么查看一下反汇编,看看执行的是什么指令。

STM32F051  M0内核的
5616asaqwq
5楼-- · 2019-07-15 12:34
 精彩回答 2  元偷偷看……
7762642422d
6楼-- · 2019-07-15 14:43
5616asaqwq 发表于 2018-11-27 20:34
是UINT32_T

内部flash能这样直接读?不考虑总线时间吗?!
你可以一次性的读到一个内存中,然后在内存中再判断。

一周热门 更多>