43.1. Trace Recorder FreeRTOS
43.1.1. 概述
该工程演示了Trace Recorder跟踪freertos的任务调度功能。
43.1.2. 硬件设置
推荐使用JLink进行跟踪
GDB只支持快照模式
43.1.3. 操作步骤
43.1.3.1. 快照模式
在CMakeLists.txt中加入set(CONFIG_TRACE_RECORDER_SNAPSHOT_MODE 1)并删除set(CONFIG_TRACE_RECORDER_STREAM_MODE “JLink RTT”)从而使能快照模式。因为需要大量的内存存储跟踪的数据,所以在一些内存较小的配置下,此模式可能不被支持,例如当构建方式为ram和flash_xip时。 快照模式下,TraceRecorder将数据存储在内存中,需要将数据导出,然后使用上位机工具进行分析。
43.1.3.1.1. 获取数据存储的地址
打开编译生成的.map文件,搜索RecorderData,即可看到其地址和大小
43.1.3.1.2. 导出快照数据
43.1.3.1.2.1. 使用GDB
首先打开GDB Server(openocd/JLink GDB Sever),使用GDB连接目标,并暂停程序的执行
tar remo :2331
mo halt
dump binary memory target_data.bin {start address of RecorderData} {end address of RecorderData}
然后打开tracealyzer4软件,打开target_data.bin文件即可
43.1.3.1.2.2. 使用JLink
打开tracealyzer4软件,打开snapshot模式,切换到JLink接口,并在JLink配置中选择目标芯片

在内存配置中配置RecorderData的首地址和大小

暂停目标程序执行,然后读取数据。

43.1.3.2. 流模式
在CMakeLists.txt中加入set(CONFIG_TRACE_RECORDER_STREAM_MODE “JLink RTT”)并删除set(CONFIG_TRACE_RECORDER_SNAPSHOT_MODE 1)从而使能流模式。
43.1.3.2.1. 获取JLink RTT控制块地址
打开编译生成的.map文件,搜索_SEGGER_RTT变量,即可获取其地址
43.1.3.2.2. 上位机软件配置
首先打开tracealyzer4软件,打开stream mode,切换到JLink接口,并在JLink配置中选择目标芯片,配置好RTT控制块地址,以及RTT的通道序列号(默认为1)
在控制界面中,开启数据抓取: 依次点击Reset, Reconnect, Start Session。

43.1.4. 运行现象
43.1.4.1. 快照模式

43.1.4.2. 流模式
不用暂停cpu就可以动态的查看数据。