# Tracealyzer_Streaming_Demo **Repository Path**: zhang-yucong-2002/tracealyzer_-streaming_-demo ## Basic Information - **Project Name**: Tracealyzer_Streaming_Demo - **Description**: 基于Tracealyzer4.8.1,FreeRTOS 10.3.1,Jlink RTT的Demo,开发平台为Keil 5,MCU为STM32F407ZGT6,成功移植了Tracealyzer的流模式传输 - **Primary Language**: Unknown - **License**: MIT - **Default Branch**: main - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2024-08-18 - **Last Updated**: 2024-09-16 ## Categories & Tags **Categories**: Uncategorized **Tags**: FreeRTOS, mcu, Tracealyzer, rtt ## README ## Tracealyzer简介 Percepio Tracealyzer是一个强大的工具,可以在运行时跟踪和可视化分析RTOS系统。超过30种视图,对系统的实时行为提供了惊人洞察力,加速了应用的调试、验证和系统性能优化的过程。使用Tracealyzer,可以查看到系统的真实运行情况,为开发人员节省排除错误的时间。Tracealyzer由PC应用程序和跟踪组件组成,Percepio提供了跟踪记录库(Trace Recorder library),支持多个RTOS,未来还计划支持裸机系统。详细内容可以参考[Tracealyzer官网](https://percepio.com/tracealyzer/)和国内的[麦克泰技术](https://www.bmrtech.com/)。 ## Tracealyzer使用 Tracealyzer的安装和使用非常简单,只需要下载Tracealyzer的PC应用程序,然后按照提示安装即可。安装完成后,只需要将Tracealyzer的跟踪组件添加到RTOS工程中,然后编译并运行即可。Tracealyzer会自动收集系统的运行数据,并生成可视化的分析报告。 Tracealyzer的跟踪模式主要可以分为快照模式和流模式,快照模式就是将事件存储到RAM中,随后通过软件读取出来。流模式则是实时的将跟踪到的事件通过JTAG/SWD等接口传输到PC进行分析,显然流模式更加好用,基于快照模式,可以参考麦克泰技术的文章[Tracealyzer快速入门-跟踪记录库移植](https://www.bmrtech.com/Tech/tech_show/60.html) ## 移植过程 笔者是基于Jlink RTT接口,对FreeRTOS进行流模式传输。 1. 在Tracealyzer的安装目录下,可以找到FreeRTOS对应文件夹,如下图所示,将该文件夹下的TraceRecorder移动到Keil工程下,笔者这里放到了Middlewares文件下。
2. 打开Keil,配置头文件路径,如图所示。
![](./pictures/second.png) 3. 将c文件放入Keil的编译路径,如下图所示。笔者在移植时查询了很多资料,发现CSDN和部分中文博客网站上的移植方法只引入了前三个文件,但编译会出现**Error: L6218E: Undefined symbol**的错误,尝试后发现,基本需要引入TraceRecorder目录下的所有c文件才能通过。
![](./pictures/third.png) 4. 在**trcConfig.h**中,将error注释掉,随后加入MCU的头文件,笔者这里使用STM32F407ZGT6,所以加入**include "stm32f4xx.h"**,如下图所示。
![](./pictures/fourth1.png) 5. 在**trcConfig.h**中,将**TRC_CFG_HARDWARE_PORT**改为**TRC_HARDWARE_PORT_ARM_Cortex_M**,如下图所示。
![](./pictures/fourth2.png) 6. 在**trcKernelPortConfig.h**,将**TRC_CFG_RECORDER_MODE**改为**TRC_RECORDER_MODE_STREAMING**(默认为TRC_RECORDER_MODE_STREAMING) 7. 在**trcKernelPortConfig.h**,修改TRC_CFG_FREERTOS_VERSION为对应的FreeRTOS版本,笔者这里使用的是V10.3.1,如下图所示。
![](./pictures/fourth3.png) 8. 在**FreeRTOSConfig.h**的**最后**,加入**include "trcRecorder.h"**,并且确保**configUSE_TRACE_FACILITY**使能,如下图所示。
![](./pictures/fifth.png) 9. 在main函数中,在硬件初始化后,FreeRTOS初始化前,加入**vTraceEnable(TRC_START_AWAIT_HOST);**,如下图所示。
![](./pictures/six.png) 10. 下载烧录。 ## 软件配置 1. 在Recording Setting中配置Jlink,如下图所示。
![](./pictures/seven.png) 2. 点击Record Streaming Trace开始记录,如下图所示。
![](./pictures/end.png)