请问程序跳到HardFault_Handler里如何知道是哪里出错?

2019-07-14 17:57发布

请问程序跳到HardFault_Handler里

如何知道是哪里出错跳进去的呢?

IAR 环境
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
rxscmsyl
1楼-- · 2019-07-14 21:59
[size=0em]​
冬冬5241
2楼-- · 2019-07-14 22:44
在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈中最新的函数返回地址,到这个地址上去加断点,一步步根据汇编执行代码。很快就能找到出错原因,大多数是数组溢出,或者是指针初始化的问题。

试试这个能解决不
kghfh
3楼-- · 2019-07-15 01:30
 精彩回答 2  元偷偷看……
redsworm
4楼-- · 2019-07-15 04:43
楼上的那个函数只适用于ARM自家编译器吧,楼主你的IAR编译器应该这样写:IAR的汇编内联和MDK的有一点不一样!
www030
5楼-- · 2019-07-15 06:24
谢谢楼上各位,楼主问题解决了吗
jdstftwef
6楼-- · 2019-07-15 07:23
报纸弟弟麦花 发表于 2018-9-10 14:42
STM32出现HardFault_Handler故障的原因主要有两个方面:

1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。

讲得不错。

一周热门 更多>