[stm32]IAR环境 hardfault定位


所有没有被使能的fault,都将进入Hard Fault

一、 出错时的CPU寄存器值

cpu

二、定位

在进入异常服务程序后, LR的值被自动更新为特殊的 EXC_RETURN,这是一个高28位全为1的值
上图中LR = 0xFFFFFFF9,所以使用的是MSP

三、在内存在找到MSP对应的地址

  • 错误异常发生时,上下文(Stack Frame)按照下图顺序被入栈保存. R0最后入栈

四、使用Memory窗口查看MSP处的数据

五、LR对应的汇编语句,正常执行时,函数返回后的执行地址

lr

六、PC对应的汇编语句

pc

实际是运行0x08017070时进入Hard Fault的


免责声明!

本站转载的文章为个人学习借鉴使用,本站对版权不负任何法律责任。如果侵犯了您的隐私权益,请联系本站邮箱yoyou2525@163.com删除。



 
粤ICP备18138465号  © 2018-2025 CODEPRJ.COM