MDK快速定位硬件异常位置方法(移植SEGGER_HardFaultHandler库),调用show caller code即可快速锁定(参考硬汉哥)

今天网上看到keil中如果快速定位hardfault的方法

http://www.armbbs.cn/forum.php?mod=viewthread&tid=91746&fromuid=58

http://www.armbbs.cn/forum.php?mod=viewthread&tid=86354&fromuid=58

http://www.armbbs.cn/forum.php?mod=viewthread&tid=94364&highlight=MDK%BF%EC%CB%D9%B6%A8%CE%BB

http://www.armbbs.cn/forum.php?mod=viewthread&tid=19133&highlight=hardfault%2Bsegger
参考如下说明:
1. MDK的硬件异常分析主要是通过MDK调试状态进行分析的。
文档下载 apnt209.pdf (651 KB, 下载次数: 649)
2. SEGGER做的比较全面,支持GCC,IAR和MDK。
文档下载: AN00016_AnalyzingHardFaultsOnCortexM.pdf (98 KB, 下载次数: 473)
代码下载: HardFaultHandler.zip (5 KB, 下载次数: 386)

硬汉哥已经将官网的进行修改,分为两个版本 MDK IAR,分别移植到相应的平台即可,

这里添加了一个语句,在内存中写数据,这个0xc的地址应该是不允许写入的。

 

因此烧写到stm32中就会出现死机,调试的时候,点击停止,会定位到下面的地方

 

 可以参考如下方法,就可以定位到我之前非法写入的代码行

 

posted @ 2019-12-12 16:17  wdliming  阅读(2189)  评论(0编辑  收藏  举报