查看: 2330|回复: 0

[原创] Tracealyzer快速入门-跟踪记录库移植

[复制链接]
  • TA的每日心情
    开心
    2023-6-12 14:34
  • 签到天数: 165 天

    连续签到: 1 天

    [LV.7]常住居民III

    发表于 2019-7-31 14:36:04 | 显示全部楼层 |阅读模式
    分享到:
    PercepioTracealyzer是一个强大的工具,可以在运行时跟踪和可视化分析RTOS系统。超过30种视图,对系统的实时行为提供了惊人洞察力,加速了应用的调试、验证和系统性能优化的过程。使用Tracealyzer,可以查看到系统的真实运行情况,为开发人员节省排除错误的时间。
    Tracealyzer由PC应用程序和跟踪组件组成,Percepio提供了跟踪记录库(Trace Recorder library),支持多个RTOS,未来还计划支持裸机系统。
    1.jpg
    移植跟踪记录库

    使用Tracealyzer,首先要将跟踪记录库集成到工程。安装了Tracealyzer4之后,在安装路径下找到以RTOS名称命名的文件夹,将TraceRecorder子文件夹复制到自己的工程目录中。以FreeRTOS为例:
    2.jpg
    (1).   将trcKernelPort.c、trcSnapshotRecorder.c和trcStreamingRecorder.c3个主要源码文件添加到工程中。
    3.jpg
    (2).   将3个配置文件也添加到工程中,方便随时修改跟踪记录库的配置。建议每个工程分别使用一组配置文件,将trcConfig.h、trcSnapshotConfig.h和trcStreamingConfig.h复制到独立的工程目录下即可。
    4.jpg
    (3).   将TraceRecorder\include目录添加到头文件路径中。
    5.jpg
    (4).   修改配置文件trcConfig.h,删除#error"Trace Recorder: Please include your processor's header file here andremove this line.",并#include处理器头文件。本次以STM32F769为例:
    添加 #include "stm32f7xx.h"
    (5).   将硬件移植配置为Tracealyzer针对Cortex-M提供的实现。其他架构的处理器,如果没有现存的移植,需要用户自行提供一个硬件定时器来产生时间戳。
    #define TRC_CFG_HARDWARE_PORT  TRC_HARDWARE_PORT_ARM_Cortex_M
    (6).   将跟踪模式设置为快照模式(Snapshot):
    #define TRC_CFG_RECORDER_MODE  TRC_RECORDER_MODE_SNAPSHOT
    快照模式是将跟踪到是事件缓存到芯片的RAM当中,然后通过工具的支持将事件缓存读取到PC上并保存为文件,由Tracealyzer进行显示和分析。
    Note:除了快照模式,Tracealyzer还支持流模式(Streaming),实时的将跟踪到的事件通过 (JTAG/SWD)、串口等接口传输到PC端进行显示和分析。本文只使用快照模式。
    (7).   设置所使用的FreeRTOS的版本,这里使用的是FreeRTOSv10版本。
    #define TRC_CFG_FREERTOS_VERSION  TRC_FREERTOS_VERSION_10_0_0
    (8).   修改trcSnapshotConfig.h,设置快照的模式,当事件缓存满了之后停止跟踪。
    #defineTRC_CFG_SNAPSHOT_MODE  TRC_SNAPSHOT_MODE_STOP_WHEN_FULL
    (9).   设置事件缓存的大小,单位是字,根据芯片空余的RAM大小酌情设置。
    #define TRC_CFG_EVENT_BUFFER_SIZE  10000
    (10).   在FreeRTOSConfig.h配置文件中使能跟踪功能:
    #defineconfigUSE_TRACE_FACILITY        1
    并且在文件尾部添加包含trcRecorder.h头文件:
    #ifdef __ICCARM__
    #if ( configUSE_TRACE_FACILITY == 1 )
    #include"trcRecorder.h"
    #endif
    #endif

    (11).   在main函数中调用vTraceEnable(TRC_START)初始化并使能跟踪,调用的位置须在硬件完成初始化之后,第一个内核对象创建之前。
    6.jpg
    使用Tracealyzer可视化分析
    构建工程,将程序下载到目标板中运行一段时间。然后打开Tracealyzer,通过J-link的支持将事件缓存读取出来。

    (1).   从File->Settings打开设置窗口,在J-LinkSettings中设置所使用的调试接口和芯片型号。
    7.jpg
    a)        从菜单栏 Trace->OpenSnapshot Tool打开Take Snapshot窗口,按“MemoryRegion”设置芯片的RAM起始地址和大小,然后按“ReadSnapshot”即可将事件缓存读取到PC端,然后进行显示和分析。
    8.jpg

    (2).   垂直时间轴视图窗口和事件记录窗口。
    9.jpg





    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /5 下一条

    手机版|小黑屋|与非网

    GMT+8, 2024-12-20 00:08 , Processed in 0.111247 second(s), 16 queries , MemCache On.

    ICP经营许可证 苏B2-20140176  苏ICP备14012660号-2   苏州灵动帧格网络科技有限公司 版权所有.

    苏公网安备 32059002001037号

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.