0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

Tracealyzer跟踪记录库移植

麦克泰技术 来源:麦克泰技术 作者:麦克泰技术 2022-11-08 11:17 次阅读

Percepio Tracealyzer是一个强大的工具,可以在运行时跟踪和可视化分析RTOS系统。超过30种视图,对系统的实时行为提供了惊人洞察力,加速了应用的调试、验证和系统性能优化的过程。使用Tracealyzer,可以查看到系统的真实运行情况,为开发人员节省排除错误的时间。

Tracealyzer由PC应用程序和跟踪组件组成,Percepio提供了跟踪记录库(Trace Recorder library),支持多个RTOS,未来还计划支持裸机系统。

2deae636-5f13-11ed-8abf-dac502259ad0.jpg

移植跟踪记录库

使用Tracealyzer,首先要将跟踪记录库集成到工程。安装了Tracealyzer 4之后,在安装路径下找到以RTOS名称命名的文件夹,将TraceRecorder子文件夹复制到自己的工程目录中。以FreeRTOS为例:

2e089398-5f13-11ed-8abf-dac502259ad0.jpg

1、将trcKernelPort.c、

trcSnapshotRecorder.c和trcStreamingRecorder.c,3个主要源码文件添加到工程中。

2e2bf2a2-5f13-11ed-8abf-dac502259ad0.jpg

2、将3个配置文件也添加到工程中,方便随时修改跟踪记录库的配置。建议每个工程分别使用一组配置文件,将trcConfig.h、trcSnapshotConfig.h和trcStreamingConfig.h复制到独立的工程目录下即可。

2e471c58-5f13-11ed-8abf-dac502259ad0.jpg

3、将TraceRecorderinclude目录添加到头文件路径中。

2e68351e-5f13-11ed-8abf-dac502259ad0.jpg

4、修改配置文件trcConfig.h,删除#error "Trace Recorder: Please include your processor's header file here and remove this line.",并#include处理器头文件。本次以STM32F769为例:添加 #include "stm32f7xx.h"

5、将硬件移植配置为Tracealyzer针对Cortex-M提供的实现。其他架构的处理器,如果没有现存的移植,需要用户自行提供一个硬件定时器来产生时间戳。

#define TRC_CFG_HARDWARE_PORTTRC_HARDWARE_PORT_ARM_Cortex_M

6、将跟踪模式设置为快照模式(Snapshot):

#define TRC_CFG_RECORDER_MODETRC_RECORDER_MODE_SNAPSHOT

快照模式是将跟踪到是事件缓存到芯片RAM当中,然后通过工具的支持将事件缓存读取到PC上并保存为文件,由Tracealyzer进行显示和分析。

Note:除了快照模式,Tracealyzer还支持流模式(Streaming),实时的将跟踪到的事件通过 (JTAG/SWD)、串口等接口传输到PC端进行显示和分析。本文只使用快照模式。

7、设置所使用的FreeRTOS的版本,这里使用的是FreeRTOS v10版本。

#define TRC_CFG_FREERTOS_VERSIONTRC_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配置文件中使能跟踪功能:

#define configUSE_TRACE_FACILITY 1

并且在文件尾部添加包含trcRecorder.h头文件:

#ifdef __ICCARM__

#if ( configUSE_TRACE_FACILITY == 1 )

#include "trcRecorder.h"

#endif

#endif

11、在main函数中调用vTraceEnable(TRC_START)初始化并使能跟踪,调用的位置须在硬件完成初始化之后,第一个内核对象创建之前。

2eb52a5e-5f13-11ed-8abf-dac502259ad0.jpg

使用Tracealyzer可视化分析

构建工程,将程序下载到目标板中运行一段时间。然后打开Tracealyzer,通过J-link的支持将事件缓存读取出来。

1、从File->Settings打开设置窗口,在J-Link Settings中设置所使用的调试接口和芯片型号。

2f0dcaf6-5f13-11ed-8abf-dac502259ad0.jpg

2、从菜单栏 Trace->Open Snapshot Tool打开Take Snapshot窗口,按“Memory Region”设置芯片的RAM起始地址和大小,然后按“Read Snapshot”即可将事件缓存读取到PC端,然后进行显示和分析。

2f32f89e-5f13-11ed-8abf-dac502259ad0.jpg

3、垂直时间轴视图窗口和事件记录窗口。

2f51ab68-5f13-11ed-8abf-dac502259ad0.jpg

审核编辑 :李倩

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118796
  • 应用程序
    +关注

    关注

    37

    文章

    3136

    浏览量

    56393
  • 跟踪
    +关注

    关注

    1

    文章

    38

    浏览量

    14255

原文标题:快速入门| Tracealyzer跟踪记录库移植

文章出处:【微信号:麦克泰技术,微信公众号:麦克泰技术】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    UGUI的移植到STM8L151C8上去跑,移植过程出现invalid narrow pointer cast的错误,为什么?

    最近下载了UGUI的,想移植到STM8L151C8上去跑。编译器使用官方的STVD,移植过程出现invalid narrow pointer cast 的错误,官方手册提示此错误意思是a cast
    发表于 04-10 07:49

    STM32F429的工程标准移植到HAL后中断向量表异常的原因?

    STM32F429的工程标准移植到HAL后中断向量表异常
    发表于 03-20 06:02

    用Git命令解决常见场景记录

    本文主要归纳一下git的学习记录,在开发期间发现了git在sourcetree的处理不是很好,对于多选文件的丢弃这点不是很方便,所以做一个记录,由于项目中有新建的文件,所以被识别为未跟踪的文件,但我
    的头像 发表于 12-20 09:44 177次阅读
    用Git命令解决常见场景<b class='flag-5'>记录</b>

    如何通过Tracealyzer实现Linux系统的跟踪

    Tracealyzer是Percepio 公司开发的一款可视化跟踪工具, 目前它提供了30多种相互关联的运行时行为视图,支持裸机、FreeRTOS、μC/OS-III、Zephyr、ThreadX、VxWorks、Linux系统的跟踪
    的头像 发表于 12-08 14:08 561次阅读
    如何通过<b class='flag-5'>Tracealyzer</b>实现Linux系统的<b class='flag-5'>跟踪</b>?

    如何实现RTOS、中间件和芯片厂商API的跟踪可观察性?

    新的Percepio Tracealyzer®SDK为RTOS、中间件和芯片厂商API提供可扩展性,使应用程序和平台开发人员能够构建自定义扩展,实现C/ C++应用程序的完整跟踪可观察性。
    的头像 发表于 10-20 15:29 387次阅读
    如何实现RTOS、中间件和芯片厂商API的<b class='flag-5'>跟踪</b>可观察性?

    请问nRF52832能移植ARM的DSP吗?

    nRF52832能移植ARM的DSP吗?
    发表于 10-16 07:51

    移植arduino上的一个红外遥控到k210上,工具链是否有c++的基本

    请问工具链现在支持用c++开发吗?我想移植arduino上的一个红外遥控到k210上, 现在在考虑移植的可行性
    发表于 09-15 07:06

    RT_Smart GNU移植minizip记录

    由于minizip除了依赖于文件一些操作函数外并不依赖于其他库,所以个人直接编译运行;另外本次移植的是使用的xmake完成移植
    的头像 发表于 09-14 11:42 583次阅读
    RT_Smart GNU<b class='flag-5'>移植</b>minizip<b class='flag-5'>记录</b>

    如何使用CoreSight Access Library 1.0版本进行目标跟踪

    跟踪并分析Linux内核本身内函数的使用情况。 用户空间的例子可以被修改为实时的“飞行记录器”监控,或者用于飞机坠毁后的分析。 使用CoreSight访问CoreSight跟踪对L
    发表于 08-12 07:52

    【风火轮YY3568开发板免费体验】第二章:YY3568 ffmpeg 编译以及 nanogui 移植

    本章主要记录如何移植 nanogui 以及在 buildroot 下快乐编译 ffmpeg。
    的头像 发表于 08-11 15:41 1326次阅读
    【风火轮YY3568开发板免费体验】第二章:YY3568  ffmpeg 编译以及 nanogui <b class='flag-5'>移植</b>

    记录一下uboot编译的问题

    前几天编译uboot时遇到一些问题,先记录一下,linux嵌入式开发还是蛮意思的,要想玩的溜,就必须掌握最基本的uboot、kernel移植、适配、裁剪。
    的头像 发表于 07-21 16:05 529次阅读
    <b class='flag-5'>记录</b>一下uboot编译的问题

    Tracealyzer发布4.8新版本!

    多任务软件系统在运行时的实际行为,取决于许多因素,比如任务和中断的时间、它们的相互作用和输入。通过Tracealyzer跟踪工具,用户可以更好地了解系统的运行时世界,并加速开发、调试和验证。
    的头像 发表于 06-09 15:03 776次阅读
    <b class='flag-5'>Tracealyzer</b>发布4.8新版本!

    基于xmake的RT_Smart GNU移植minizip记录

    由于minizip除了依赖于文件一些操作函数外并不依赖于其他库,所以个人直接编译运行;另外本次移植的是使用的xmake完成移植
    的头像 发表于 06-07 15:42 576次阅读
    基于xmake的RT_Smart GNU<b class='flag-5'>移植</b>minizip<b class='flag-5'>记录</b>

    使用Percepio的Tracealyzer和DevAlert实现FreeRTOS的可观察性!

    TraceRecorder以捕获追踪。在程序执行过程中,追踪可以快照形式记录并予以保存,或实时流式传输。 加载追踪后,Tracealyzer可以提供具有可配置视图的执行详细信息,例如程序
    发表于 05-18 13:41

    使用Percepio的Tracealyzer和DevAlert实现FreeRTOS的可观察性

    Percepio是著名的Tracealyzer背后的公司。Tracealyzer是一款桌面应用程序,方便嵌入式工程师通过追踪直观地诊断软件中的问题。什么是追踪?追踪是一种低级日志记录机制,可用
    的头像 发表于 05-16 14:17 1081次阅读
    使用Percepio的<b class='flag-5'>Tracealyzer</b>和DevAlert实现FreeRTOS的可观察性