在STM32CubeIDE中使用Tracealyzer图形化调试FreeRTOS
- 概述
- 工作原理
- 快照模式设置方法
- 步骤1:安装软件
- 步骤2:添加源代码
- 步骤3:修改配置文件
- 步骤4:修改配置文件2
- 步骤5:修改配置文件3
- 步骤6:修改配置文件4
- 步骤7:添加头文件路径
- 步骤8:添加启动代码
- 步骤9:编译工程
- 步骤10:配置插件
- 步骤11:捕获数据
概述
Tracealyzer可以以图形化的方式跟踪记录FreeRTOS操作系统的工作相关信息。本文结合官方教程以及自己的实践,总结出了Tracealyzer在STM32CubeIDE开发环境中的使用方法。
网上很多同类教程是基于MDK(keil的),这里针对STM32CubeIDE进行了修改。
工作原理
Tracealyzer具有2种工作模式,快照模式snapshot mode和流模式streaming mode。在快照模式下,数据被存储到目标板的RAM中,当系统暂停时,可以读取数据。流模式下可以持续读取数据,时间可以长达几分钟或几个小时,但这需要某种高级的调试器支持如Jlink,或者是网络连接。
快照模式和流模式的设置基本上相同,流模式的设置仅有稍许不同。
FreeRTOS包含了超过100个跟踪hook,Tracelyzer正是利用这些hook进行数据的捕获和记录的,Tracelyzer同时还提供了自定义日志和事件的库
快照模式设置方法
步骤1:安装软件
- 下载并安装Tracelyzer软件,方法自行寻找。我这里使用的是4.6.6版本,10天试用版,可以从官方网站申请,但不对大陆IP开放。
- 在CubeIDE中,安装percepio插件,注意必须是for STM32CubeIDE版,否则会导致出错,如下图所示。
步骤2:添加源代码
安装完毕后,从软件help菜单,选择FreeRTOS Trace Recoder,打开源代码目录。
在cude工程中,新建一个Tracelyzer目录,把所有的文件都拷贝到该目录下面。
步骤3:修改配置文件
打开trcConfig.h文件,对文件内容进行如下修改
- 注释掉
#error "Trace Recorder: Please include your processor's header file here and remove this line."
修改为下图所示包含文件。
2. 将45行的
#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_NOT_SET,
修改为:
#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_ARM_Cortex_M
步骤4:修改配置文件2
打开trcKernelPortConfig.h文件,对文件内容进行如下修改
- 将
#define TRC_CFG_FREERTOS_VERSION FREERTOS_VERSION_NOT_SET
修改为对应版本的FreeROTS版本号:
#define TRC_CFG_FREERTOS_VERSION TRC_FREERTOS_VERSION_10_3_1
- 将
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_STREAMING
修改为:
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_SNAPSHOT
步骤5:修改配置文件3
打开 trcSnapshotConfig.h文件,将TRC_CFG_NTASK, TRC_CFG_NQUEUE等设置的足够大,如果不确定具体大小,可以在之后的调试中进行调整。
步骤6:修改配置文件4
打开CUDE系统配置,确认configUSE_TRACE_FACILITY为1。
打开FreeRTOSConfig.h文件,在文件的最后,添加如下代码:
#include "trcRecorder.h"如下所示:
#define USE_CUSTOM_SYSTICK_HANDLER_IMPLEMENTATION 0
/* USER CODE BEGIN Defines */
#include "trcRecorder.h"
/* Section where parameter definitions can be added (for instance, to override default ones in FreeRTOS.h) */
/* USER CODE END Defines */
#endif /* FREERTOS_CONFIG_H */
步骤7:添加头文件路径
添加对应的头文件路径
步骤8:添加启动代码
在main.c文件中,在硬件初始化后,FreeRTOS任务调度开始之前,添加下列语句:vTraceEnable(TRC_START),如下图所示。
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
vTraceEnable(TRC_START);
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_ETH_Init();
MX_USART3_UART_Init();
MX_USB_OTG_FS_PCD_Init();
步骤9:编译工程
编译整个工程
步骤10:配置插件
在IDE中,选择Percepio菜单的Preferences选项,进行配置
配置如下所示:
文章来源:https://uudwc.com/A/qRrDe
步骤11:捕获数据
运行程序,并在适当的时间暂停,选择Save Snapshot Trace选项,便可打开跟踪数据窗口。
文章来源地址https://uudwc.com/A/qRrDe