Hardfault调试方法

2019-08-08 12:20发布

程序跳进了硬件错误中断服务程序,也就是void HardFault_Handler(void),读取向量错误。
你可以查看一下异常的寄存器,先确定是精确的总线fault还是不精确的总线fault,如果是精确的fault那最可能的就是数组越界,
或是变量访问越界,如果是不精确总线fault,那比较多出现的是堆栈的问题。 出现最多的如变量访问越界

HardFault_Handler 的调试 最简单的办法:
在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈中最新的函数返回地址,到这个地址上去加断点,
一步步根据汇编执行代码。很快就能找到出错原因,大多数是数组溢出,或者是指针初始化的问题。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
4条回答
wenzh3333
1楼-- · 2019-08-08 13:40
顶  学到了
龙之谷
2楼-- · 2019-08-08 14:32
学习了,谢谢分享.....
loudianxin
3楼-- · 2019-08-08 19:25
楼主有具体示例吗,方便学习学习。。。。。
凌特逸轩
4楼-- · 2019-08-08 22:11
 精彩回答 2  元偷偷看……

一周热门 更多>