STM32 在 keil 环境下如何使用 cm_backtrace进行错误追踪_wenzi嵌入式软件 我们在平常使用单片机的时候,往往-优快云博客
故事背景:
我们在平常使用STM32单片机的时候,往往会碰到程序跑飞的情况,出现hard_fulat等错误,而我们在定位错误的时候,采用的方法往往是连上仿真器,一步一步单步调试,定位到具体的错误代码,再去猜测、排除、推敲错误原因,这样一个过程很是痛苦,而且在实际情况中,很多产品真机调试时必须断开仿真器或者说,问题确实存在,但是极难出现,所以在基于这样一个问题背景下,RTT 的大佬armink开发了一个基于 ARM Cortex-M系列的 MCU错误追踪库,用于帮助开发者解决上述问题。
调试类 - CmBacktrace应用笔记 - 《RT-Thread应用笔记》 - 书栈网 · BookStack
将addr2line 下载好之后,需要将addr2line.exe拷贝到对应工程的build输出文件夹下,在该文件夹下打开命令管理器,跳转到addr2line.exe对应的目录下,然后将addr2line -e rtthread-gd32f4xx.axf -a -f 0803b812 0804041a 080509d2 08050bfc报出的错误地址粘贴后按下回车即可查看到错误发生位置。
C:\Users\Administrator>D: 跳转到D盘
D:\>cd D:\bsp\085\build 跳转到build目录下,该目录下放有addr2line.exe
D:085\build>addr2line -e rtthread-gd32f4xx.axf -a -f 0803b836 0804043e 080509f6 08050c20 输入报出的错误地址回车即可看到错误出现的原因。