FR3608E 移植CMBacktrack

CMBacktrack 介绍

  • CMBacktrack 是朱天龙大神写的错误跟踪组件。

CmBacktrace (Cortex Microcontroller Backtrace)是一款针对 ARM Cortex-M 系列 MCU 的错误代码自动追踪、定位,错误原因自动分析的开源库

移植小说明:

  • 官方已经说明好了 FreeRTOS如何移植。写得很详细。

下载并切到CMBacktrack分支上。


git clone https://gitee.com/RT-Thread-Mirror/CmBacktrace.git
git checkout CMBacktrack

  • 在main函数当中,初始化组件。
int main( void ){ /* CmBacktrace initialize */
#define HARDWARE_VERSION               "V1.0.0"
#define SOFTWARE_VERSION               "V0.1.0"
cm_backtrace_init("CmBacktrace", HARDWARE_VERSION, SOFTWARE_VERSION);
...
   }
  • 在app_task里,放入测试代码:(不要放没除0的测试,可能优化了,不能产生错误)
static void app_task (void * arg)
{
printf("app error\n");

fault_test_by_unalign();
...

测试结果:

image-20250213214017533.png

分析错误行:

  • 复制 *.axf文件

image-20250213214126533.png

  • 粘贴到addr2line当中

image-20250213214310902.png


addr2line-eCmBacktrace.axf-afpiC080374f2

image-20250213214456380.png

这大大帮你加快解决hardfualt的问题。