调试平台:stm32f407系列

平台:uvision v5.11.1.0

问题:调试程序时,进入硬件中断。

以下两链接大家可以参考,写的都不错。

https://www.cnblogs.com/Ilmen/p/3356147.html

http://www.stmcu.org/module/forum/thread-602474-1-1.html

简单记载一下思路:

根据异常发生时的栈顶地址,找到压入堆栈的内容。找到堆栈中LR中的值,LR值-3)值,就是发生错误指令的代码地址。即可定位错误代码。

知识点:

寄存器值在堆栈中的顺序:

STM32 HardFault 问题代码查找STM32 HardFault 问题代码查找

 得到地址(LR-3)后,在反汇编串口中,通过这个地址,定位到异常代码处。


未理解处:为什么是(LR-3)?


 


相关文章:

  • 2022-12-23
  • 2021-07-17
  • 2021-07-27
  • 2021-06-02
  • 2021-09-06
  • 2021-08-13
  • 2021-12-18
  • 2021-10-29
猜你喜欢
  • 2022-12-23
  • 2021-10-19
  • 2022-12-23
  • 2021-12-25
  • 2022-02-04
  • 2021-06-19
  • 2022-12-23
相关资源
相似解决方案