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.2. 流模式

在CMakeLists.txt中加入set(CONFIG_TRACE_RECORDER_STREAM_MODE “JLink RTT”)并删除set(CONFIG_TRACE_RECORDER_SNAPSHOT_MODE 1)从而使能流模式。

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就可以动态的查看数据。