打印
[新唐博主]

新唐开发平台:进阶使用者的七大诀窍 (2) 进入除错模式找...

[复制链接]
652|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
进阶使用者的七大诀窍
进入除错模式找出 Hard Fault 原因

适用情境
在除错模式下发现微控制器进入Hard Fault,或是在运作时发现微控制器的UART输出Hard Fault信息。

除错技巧
在除错模式下找到进入Hard Fault前运行的最后一个指令。
  • 取得 SP (Stack Pointer) 值。
  • 使用SP 在Memory窗口中找到Stack。
  • Stack的第七个值就是最后一笔运行的指令的地址。
  • 在Disassembly 窗口查询该地址对应的指令。


解说
当Cortex-M核要执行一个无效的指令,例如读取一个不存在的内存位置,核心会进入hard fault来保护自己。硬件先将一些CPU寄存器放到Stack中在进入Hard Fault handler。使用者可透过Stack Pointer找到存放最后一笔被执行的指令的内存地址,进而找到触发Hard Fault的程序流程。



使用特权

评论回复
沙发
豌豆爹| | 2021-5-6 16:20 | 只看该作者
这些诀窍真的很实用的,赶紧收藏吧

使用特权

评论回复
板凳
zhuomuniao110| | 2021-5-6 20:57 | 只看该作者
非常使用的技巧。

使用特权

评论回复
地板
两只袜子| | 2021-5-8 11:19 | 只看该作者
这个诀窍真真的极好的

使用特权

评论回复
5
yangxiaor520| | 2021-5-11 18:33 | 只看该作者
可以写本葵花宝典啊

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:祝大家天天开❤ ///w/// 有问题咨询联系QQ:3326242524

2751

主题

6438

帖子

239

粉丝