[STM32F1] 求助 hardfault如何定位?

[复制链接]
 楼主| ljwcoke 发表于 2018-7-26 11:15 | 显示全部楼层 |阅读模式
IDE:IAR
芯片:STM32F103C8T6
QQ截图20180726110402.png
请问大家,图中的过程是否正确?如果错误应该怎么做? 下一步我该怎么做才能定位到问题代码?
HKingS 发表于 2018-7-26 11:24 | 显示全部楼层
关于这个定位的问题,搜索下别人的**,已经讲过好多次了,应该是通过SP的值来看的。
幸福小强 发表于 2018-7-26 16:39 | 显示全部楼层
通过菜单栏Peripherals >Core Peripherals >Fault Reports打开fault reports
幸福小强 发表于 2018-7-26 16:40 | 显示全部楼层
幸福小强 发表于 2018-7-26 16:40 | 显示全部楼层
查看使用的是哪个堆栈

查看LR的值可以知道进入hardfault时候程序用的是哪个堆栈。


静听风易 发表于 2018-7-26 22:38 | 显示全部楼层
HKingS 发表于 2018-7-26 11:24
关于这个定位的问题,搜索下别人的**,已经讲过好多次了,应该是通过SP的值来看的。 ...

说错了,应该是楼下说的,看LR的值。
heimaojingzhang 发表于 2018-7-27 08:30 | 显示全部楼层
在所有你怀疑的地方打断点 看看是从哪个断点进去的
 楼主| ljwcoke 发表于 2018-7-28 11:47 | 显示全部楼层
幸福小强 发表于 2018-7-26 16:39
通过菜单栏Peripherals >Core Peripherals >Fault Reports打开fault reports

这是IAR    没有Peripherals
 楼主| ljwcoke 发表于 2018-7-28 11:50 | 显示全部楼层
静听风易 发表于 2018-7-26 22:38
说错了,应该是楼下说的,看LR的值。

如图   LR是 0xFFFFFFF1 SP是  0x20000828 通过SP在内存中找到 0x20000924 实际上就是R1的值 然后再最有窗口反汇编找到的是一个结构体 并不是执行错误的语句 所以下一步不知道怎么做了
huangcunxiake 发表于 2018-7-28 19:41 | 显示全部楼层
IAR没有用过不会**,都是用的Keil
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

1

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

1

主题

4

帖子

1

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