基于STM32CubeMX和Keil MDK使用ThreadX的TraceX

227 阅读1分钟

TraceX是一个事后分析工具,可以以图形的方式显示ThreadX的运行情况,学会并使用它会给我在使用ThreadX的过程中带来很多方便.

一,在STM32CubeMX的Packs中选中TraceX support

threadx_trace1.png

二,使能TX_ENABLE_EVENT_TRACE

threadx_trace2.png

三,添加trace的缓存区,大小根据自己的需求设置

/* trace */
/* 记录500个事件(EVENT) */
#define TRACE_BUF_SIZE					(500*32)
#define TRACE_MAX_OBJ					30
UCHAR trace_buffer[TRACE_BUF_SIZE];
UINT trace_status;

四,在需要的地方开启trace,这个具体的位置玩法有待后续研究

threadx_trace3.png

五,Debug,运行,获取trace首地址

threadx_trace4.png

六,导出缓存区的数据

在keil的左下角的命令窗口输入指令: SAVE D:\trace_data.trx 0x20000D88,0x2000D4D8 地址就是上面等到的首地址,尾地址就是首地址加上待提取数据的大小算出来的

threadx_trace6.png

七,导入到Azure RTOS Trace

threadx_trace7.png

这次先简单介绍一下TraceX怎么使用,要想让它发挥实用价值,还需了解它的其他相关API函数,比如 tx_trace_event_filter,tx_trace_event_unfilter等,因为内存永远不够用.