[stm32]IAR环境 hardfault定位
所有没有被使能的fault,都将进入Hard Fault
一、 出错时的CPU寄存器值
二、定位
在进入异常服务程序后, LR的值被自动更新为特殊的 EXC_RETURN,这是一个高28位全为1的值
上图中LR = 0xFFFFFFF9
,所以使用的是MSP
三、在内存在找到MSP对应的地址
- 错误异常发生时,上下文(Stack Frame)按照下图顺序被入栈保存. R0最后入栈
四、使用Memory窗口查看MSP处的数据
五、LR对应的汇编语句,正常执行时,函数返回后的执行地址
六、PC对应的汇编语句
实际是运行0x08017070时进入Hard Fault的
Good Good Study! Day Day Up!