视频链接: 【Keil】STM32开发小技巧 - 异常定位库(CmBacktrace)_哔哩哔哩_bilibili
-
所用开源库
CmBacktrace(库地址:https://github.com/armink/CmBacktrace)
-
移植与使用(MDK)
- 移植
- 添加文件到工程中:将开源库中源码(cm_backtrace)拷贝到自己工程目录下。
- 在工程里添加源码文件
- 在工程里添加头文件路径
- 添加断言宏定义
- 使用
- 配置
- 屏蔽硬件中断函数重复定义(由于我们在移植时直接使用了汇编文件(cmb_fault.S),该文件在故障时会自动进行HardFault处理)
- 初始化(必须填写工程名称,用于定位异常位置使用,硬件版本和软件版本可不填)
- 制造异常(非法除0)
- 移植
-
查看异常位置
- 所需工具(addr2line):将工具拷贝至C盘路径下或其他路径下并添加到系统环境变量
- 运行命令行查看:进入工程下含有工程名且后缀为axf文件的路径下执行异常信息中命令
- 可以看到清楚指明了在main文件的main函数127行位置出现异常,并跳转到了83行的fault_test_by_div0函数