如何定位hardfault错误

victor3l 2015-04-28 10:20:16
我的程序运行一段时间后,会复位,现在怀疑是程序跑到hardfault。
在debug模式下,可以通过仿真器来查看,是从什么地方掉到hardfault了。我debug的板子只有2,3个,放几天也不复位,所以使用debug来找原因,太耗时了。所以只能把程序发行了,烧一批设备。
如何根据链接寄存器中的值(这个值在系统复位前我已经保存了)来定位到程序出错的大致位置?
怎么利用MAP文件?
谢谢
...全文
456 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
lr2131 2015-05-10
  • 打赏
  • 举报
回复
引用 楼主 victor3l 的回复:
我的程序运行一段时间后,会复位,现在怀疑是程序跑到hardfault。 在debug模式下,可以通过仿真器来查看,是从什么地方掉到hardfault了。我debug的板子只有2,3个,放几天也不复位,所以使用debug来找原因,太耗时了。所以只能把程序发行了,烧一批设备。 如何根据链接寄存器中的值(这个值在系统复位前我已经保存了)来定位到程序出错的大致位置? 怎么利用MAP文件? 谢谢
是不是hardfault,在hardfault的IER中加信息输出,很快就能确定了。 先确认是不是hardfault,是的话,把CPU寄存器的值输出来,反向查找出错位置
嵌云阁主 2015-05-04
  • 打赏
  • 举报
回复
主要利用PC指针,对照MAP文件中的地址大致定位哪个函数
dceacho 2015-05-04
  • 打赏
  • 举报
回复
不debug下好像很难 不过可以弄个蠢办法, 在可能的地方增加一个输出把代码行数输出到电脑的串口助手, 等哪天死机了,看串口助手上最后显示的行号就大致知道位置了

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧