文章完全参考Trace跟踪软甲提供的user Manual, 遇到问题详细阅读参考手册肯定能解决
Trace提供了两种跟踪调试的方式:1、快照模式 ; 2、流模式
首先下载Trace跟踪调试器,因为是收费软件,但是可以下载适用版本
这里假设已经移植好了FreeRTOS,移植过程可以看之前的文章
接下来:
1、移植TraceRecorder
复制安装的Trace下的文件夹到自己的工程,地址为:
1.1 添加.c .h 文件
将TraceRecoder下的c文件添加到工程,并且添加以下头文件路径:
1.2 添加streaming 端口文件
Trace支持以下几种方式来传输实时数据:
我们这里使用JLink_RTT模式
因此还需添Jlink_RTT文件夹下的.c文件以及头文件路径(include文件夹内)
最终的文件结构如下:
2、修改宏定义
修改trcConfig.h:
根据你的芯片型号添加 #include "stm32f4xx.h",并去掉#error
#include "stm32f4xx.h"
//#error "Trace Recorder: Please include your processor's header file here and remove this line."
选择芯片内核:
#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE_PORT_ARM_Cortex_M//default TRC_HARDWARE_PORT_NOT_SET
选择流模式:(默认为快照模式)
#define TRC_CFG_RECORDER_MODE TRC_RECORDER_MODE_STREAMING//TRC_RECORDER_MODE_SNAPSHOT
选择FreeRTOS版本:
#define TRC_CFG_FREERTOS_VERSION TRC_FREERTOS_VERSION_10_0_0
FreeRTOSConfig.h:
#define configUSE_TRACE_FACILITY 1 //默认0
#define configUSE_STATS_FORMATTING_FUNCTIONS 1 //添加
末尾添加:
/**添加以下代码,trace**/
/* Integrates the Tracealyzer recorder with FreeRTOS */
#if ( configUSE_TRACE_FACILITY == 1 )
#include "trcRecorder.h"
#endif
最后在main文件中添加:
vTraceEnable();添加在硬件初始化之后,任务开始之前
int main(void)
{BSP_init();//Hardware initvTraceEnable(TRC_START_AWAIT_HOST);// wait for host cmd APPTaskCreate();vTaskStartScheduler();while(1);
}
vTraceEnable(TRC_START_AWAIT_HOST);// wait for host cmd APPTaskCreate();vTaskStartScheduler();while(1);
}
3、配置J-Link
首先在keil中配置:
再在tracealyzer中配置:
最后在live stream中启动连接,即可启动trace
上传了配置好的工程文件,可以用来测试(比较):trace_FreeRTOS