hardfault错误定位的方法?

[复制链接]
 楼主| victor3l 发表于 2015-4-28 10:17 | 显示全部楼层 |阅读模式
我的程序运行一段时间后,会复位,现在怀疑是程序跑到hardfault。
在debug模式下,可以通过仿真器来查看,是从什么地方掉到hardfault了。我debug的板子只有2,3个,放几天也不复位,所以使用debug来找原因,太耗时了。所以只能把程序发行了,烧一批设备。
如何根据链接寄存器中的值(这个值在系统复位前我已经保存了)来定位到程序出错的大致位置?
怎么利用MAP文件?
谢谢

lxyppc 发表于 2015-4-28 10:37 来自手机 | 显示全部楼层
最好是把所有寄存器的值,以及栈顶部分值都保存下来
map文件一般会告诉你哪个函数占用了哪段空间
根据lr的值可以定位到上一次调用的位置
有的cpu会有寄存器纪录复位原因,最好这些都记录下来
您需要登录后才可以回帖 登录 | 注册

本版积分规则

77

主题

308

帖子

5

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