你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

求助:程序进入HardFault硬件中断中

[复制链接]
ceiven 提问时间:2020-11-23 10:26 /
程序运行时会莫名的进入HardFault硬件中断中,尝试了一周的时间,试过以下方法始终不能找到问题出在哪里,希望有人能指导下:1.换硬件,依然出现,可以排除硬件自身原因;
2.在代码中加入nop()问题消失,再加一个nop()问题又出现;
3.将代码中一个计数的变量判断条件>4000改成>4001问题消失,改回4000问题又出现;
4.程序中用到了AD中断,定时器中断,串口中断,在进入HardFault后这些中断还在正常运行,可以排除是这些中断导致进入HardFault;
一周尝试下来,确定的现象就是将代码改动一下问题就会消失或者重新出现,但是编译大小都是55KB左右,均在64KB以内,不会超出,不知你们有没有遇到相似的情况呢? 或者能否提供点其他方向上的尝试?非常感谢
备注:芯片是f030,用标准库开发
收藏 评论2 发布时间:2020-11-23 10:26

举报

2个回答
songshiqun2010 回答时间:2020-11-23 11:41:28
之前写过一个关于hardfault诊断的帖子,可以按步做下实验

https://www.stmcu.org.cn/module/forum/thread-621377-1-1.html
陌路夕颜 回答时间:2020-11-23 13:11:59
STM32出现硬件错误可能有以下原因:
        (1)数组越界操作;
        (2)内存溢出,访问越界;
        (3)堆栈溢出,程序跑飞;
        (4)中断处理错误;
  • void HardFault_Handler(void)



  • {



  •   /* Go to infinite loop when Hard Fault exception occurs */



  •         volatile int a = 1;



  •         a++;



  • //  while (1);

  •     }
  • 然后在a++处打断点,这样一旦发生hardFault就会进入该断点,然后我们可以使用单步调试,下一步就会跳出该函数,返回调用HardFault的地方。这样就定位到了错误处


所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版