10632|18

71

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

请教,STM32的HardFault_Handler的问题 [复制链接]

程序运行到sprintf时死机了,调式后发现进入了HardFault_Handler里死循环了。请问这个问题可能由啥原因引起的?

还有貌似选了优化后,有时sprintf出来的数据会有错误?这个可能由啥原因引起的?

谢谢!
此帖出自stm32/stm8论坛

最新回复

                                 HardFault_Handler的调试 最简单的办法: 在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈中最新的函数返回地址,到这个地址上去加断点,一步步根据汇编执行代码。很快就能找到出错原因,大多数是数 ... 具体如何操作!!  详情 回复 发表于 2011-2-19 12:38
点赞 关注
 

回复
举报

69

帖子

0

TA的资源

一粒金砂(初级)

沙发
 

可能是存储器的分配有问题

                                  
此帖出自stm32/stm8论坛
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

板凳
 

HardFault_Handler问题

这种问题的原因很难查,版主说的原因是有可能的。
我有过类似的经历!
此帖出自stm32/stm8论坛
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

4
 
                                 我也遇到这种问题,跳进HardFault_Handler里,原因暂时未查明
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

5
 
                                 一般都是非法访问对应地址的数据出错,检查是否堆栈溢出,数组越界等等
此帖出自stm32/stm8论坛
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

6
 
                                 我也遇到过几块板,后来重新焊接了一下就没再出现过了。
此帖出自stm32/stm8论坛
 
 
 

回复

70

帖子

0

TA的资源

一粒金砂(初级)

7
 
好好检查一下数组边界,或者指针。
80%以上的这类异常都是数组越界和指针乱指引起的。
此帖出自stm32/stm8论坛
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

8
 
                                 之能慢慢调试,慢慢查了
此帖出自stm32/stm8论坛
 
 
 

回复

65

帖子

0

TA的资源

一粒金砂(初级)

9
 
HardFault_Handler的调试 最简单的办法:

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

这个办法很好使的,我一直用的,找问题很快的。
此帖出自stm32/stm8论坛
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

10
 
不知道楼主开发平台是什么?
本人最初使用时常常遇到这个问题,说起来很不好意思,原因都是自己忘加STM32的中断汇编代码.s文件。
希望楼主犯的不是这种低级错误
此帖出自stm32/stm8论坛
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

11
 



你好请问你说的这个方法怎么操作呢,我不会用啊 杯具
此帖出自stm32/stm8论坛
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

12
 
                                 操作了不改动的地址! 比如指针  要是不是 32BIT 对齐 强势成 8BIT 那就跑到那里去了!!
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

13
 
                                 我用的iAR,IAR中有个CallStack的工具,可以很简单的看到你的函数嵌套情况
此帖出自stm32/stm8论坛
 
 
 

回复

78

帖子

0

TA的资源

一粒金砂(初级)

14
 
忘加STM32的中断汇编代码.s文件.

-----
这种编译器IAR 不会报错的
此帖出自stm32/stm8论坛
 
 
 

回复

76

帖子

0

TA的资源

一粒金砂(初级)

15
 
在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈中最新的函数返回地址,到这个地址上去加断点,一步步根据汇编执行代码。

学习了
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

16
 
                                 mark
此帖出自stm32/stm8论坛
 
 
 

回复

48

帖子

0

TA的资源

一粒金砂(初级)

17
 
请问您说的方法具体如何做!

我也有类似的问题,请教一下!
此帖出自stm32/stm8论坛
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

18
 


请教详细方法!!!
此帖出自stm32/stm8论坛
 
 
 

回复

83

帖子

0

TA的资源

一粒金砂(初级)

19
 
HardFault_Handler的调试 最简单的办法:

在进入HardFault_Handler之后,根据堆栈指针查看堆栈,找到堆栈中最新的函数返回地址,到这个地址上去加断点,一步步根据汇编执行代码。很快就能找到出错原因,大多数是数 ...
具体如何操作!!
此帖出自stm32/stm8论坛
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/9 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表