HardFault_Handler的解决方法
网上说有N多种解决方法,在我的工程里,方法用遍,加之对工具不熟,CPU也不熟,所以遇到问题无从下手,我觉得我这个问题是所有新手都有可能遇到的,那就是堆栈大小设置,一般在Demo Code里什么事都没有,移到工程里就会有问题,因为工程里各种变量,数组,等等,可能导至堆栈越界,溢出,就出错了,所以遇到这个HardFault_Handler问题,我觉得首先就是要设置堆栈大小,给他搞大一倍左右,看看之前的问题是不是就没有了,我也是摸了很久才发现, 调试,看代码从什么地方跳到HardFault_Handler,然后在那附近找问题。 调试一下 很多问题,都会跳到这里~~只能仿真分析 HardFault_Handler一般都是软件bug导致的 调试慢慢找到从什么函数进入的HardFault_Handler,慢慢就会发现问题的。 HardFault_Handler也是比较常见的BUG了,当然也比较好找,多调试调试。 这个一般都是用debug仿真调试,用栈回溯的方法能很快定位问题
在进入hardfault后通过串口打印出当前的PC地址和函数返回地址,基本可以定位在哪个函数的哪部分语句出的问题,有针对性的去检查
跟踪调试一下看看程序运行到什么地方进入hardfualt的。 曾经遇到过数组下标溢出 学习一下技术支持。
页:
[1]