返回> 网站首页 

[转载]HardFault_Handler问题查找方法

yoours2013-10-18 09:26:12 阅读 1577

简介一边听听音乐,一边写写文章。

STM32出现HardFault_Handler故障的原因主要有两个方面:
1、内存溢出或者访问越界。这个需要自己写程序的时候规范代码,遇到了需要慢慢排查。
2、堆栈溢出。增加堆栈的大小。

1. 出现问题时排查的方法:
发生异常之后可首先查看LR寄存器中的值
 

2. 确定当前使用堆栈为MSP或PSP,然后找到相应堆栈的指针,并在内存中查看相应堆栈里的内容。


3. 由于异常发生时,内核将R0~R3、R12、Return address、PSR、LR寄存器依次入栈,其中Return address即为发生异常前PC将要执行的下一条指令地址。

注意:寄存器均是32位,且STM32是小端模式。(参考Cortex-M3权威)

微信小程序扫码登陆

文章评论

1577人参与,0条评论