请教,STM32的HardFault_Handler的问题

[复制链接]
33272|33
zgwuss 发表于 2011-12-28 11:18 | 显示全部楼层
HardFault_Handler的调试 最简单的办法:

在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈中最新的函数返回地址,到这个地址上去加断点,一步步根据汇编执行代码。很快就能找到出错原因,大多数是数组溢出,或者是指针初始化的问题。

谢谢9楼的,我郁闷了两天经你一说,马上找到问题,指针没初始化。
jizhiyan 发表于 2012-3-22 12:22 | 显示全部楼层
9# vigia 你好,请教个问题,我的call stack window里的地址是0x08000c54,为了找到最新函数的返回地址,我在merroy中查看0x08000c54地址的内容,知道返回的地址是:0xBF00BF00,我怎么加断点呢,这个地址具体在哪里???我用的编译器是keil,开发板是stm32f4.谢谢你
jizhiyan 发表于 2012-3-26 15:38 | 显示全部楼层
22# zgwuss 可是我看不懂反汇编,有什么资料介绍给我看看??嘿嘿
RexZheng 发表于 2012-12-29 09:33 | 显示全部楼层
HardFault_Handler的调试 最简单的办法:

在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈中最新的函数返回地址,到这个地址上去加断点,一步步根据汇编执行代码。很快就能找到出错原因,大多数是数组溢出,或者是指针初始化的问题。

多谢指点,很快找到原因:指针初始化错误
菜鸟+新手 发表于 2013-1-6 10:54 | 显示全部楼层
我也遇到了,是非法访问寄存器,对寄存器的操作不对
huangzh198 发表于 2013-3-23 16:27 | 显示全部楼层
xuehui869 发表于 2010-12-14 16:57
忘加STM32的中断汇编代码.s文件.

-----

我在调试串口的时候出现这个问题。你那个.S文件是哪个?startup_stm32f0xx.s这个么?怎样添加?是添加在工程里面还是在C函数里include?
busdriver 发表于 2013-5-19 18:11 | 显示全部楼层
指针操作数组的情况下,容易出现HardFault_Handler错误。
香水城 发表于 2013-5-20 14:02 | 显示全部楼层
Hard Fault的诊断:如何在程序跳到hard fault时提取出错信息

Hard Fault的诊断.pdf

227.31 KB, 下载次数: 495

逆序排列 发表于 2013-12-26 15:40 | 显示全部楼层
香水城 发表于 2013-5-20 14:02
Hard Fault的诊断:如何在程序跳到hard fault时提取出错信息

好资料,收藏了,谢谢!!!
sun1238898 发表于 2014-7-3 10:46 | 显示全部楼层
香水城 发表于 2013-5-20 14:02
Hard Fault的诊断:如何在程序跳到hard fault时提取出错信息

谢谢香主的资料
七毛07 发表于 2014-9-9 22:31 | 显示全部楼层
都是大神啊
zjf199007 发表于 2014-12-11 10:58 | 显示全部楼层
xiexie ...............
wxjcan 发表于 2014-12-11 11:29 | 显示全部楼层
好方法 学习了
andy93762 发表于 2015-5-12 19:05 来自手机 | 显示全部楼层
vigia 发表于 2010-11-10 10:00
HardFault_Handler的调试 最简单的办法:

在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈 ...

你好,进入hardfault后,在找到的函数处加断点,也进不去断点那里啊,程序一直在hardfault里面执行,出不去啊。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 在线客服 返回列表 返回顶部