当前位置:   article > 正文

STM32进入硬件错误中断(HardFault_Handle)处理方法_stm32硬件错误中断 如何处理

stm32硬件错误中断 如何处理

STM32进入HardFault_Handler处理办法
HardFault_Handler出现的情况一般有两种: 
一种是:数组越界 
一种是:堆栈溢出,程序指针指飞

方法一

  • 在中断HardFault_Handler中的while()处打上断点,让程序执行到此处停止。 

 

  • 在Registers里面找到R14(LR)的值,我的这里是:0xFFFFFFF9 

        说明一下: 

  • 0xFFFFFFF9对应的是要看MSP寄存器
  • 0xFFFFFFFD对应的是要看PSP寄存器 

        所以这里需要查找的内存地址是MSP的值:0x20008828 

 

  • 在memory里面查找MSP的值:0x20008828,然后在对应的行里面找到地址,地址一般格式都是:0x0800BA68这样的。 

 

  • 4.在Disassembly里面右键选择Show Code at Address,把找到的地址输进去进行搜索,然后就会找到相对应的代码,这里的代码就是在进入循环中断之前的时候的情况,仔细查看这部分函数被调用或者数组内存使用情况。 

  •  

 


方法二

  • 在中断HardFault_Handler中的while()处打上断点,让程序执行到此处停止。 

 

  • 在keil中打开Call Stack + Locals,然后在HardFault_Handler上 右键选择:Show Caller Code,就会跳转到进入循环中断之前的函数处。仔细查看这部分函数被调用或者数组内存使用情况。 

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/article/detail/50636
推荐阅读
相关标签
  

闽ICP备14008679号