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
    +关注

    关注

    25

    文章

    862

    浏览量

    122570
  • 应用程序
    +关注

    关注

    38

    文章

    3342

    浏览量

    59905
  • 跟踪
    +关注

    关注

    1

    文章

    38

    浏览量

    14601

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

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

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何移植iconv到RT-Thread Studio工程中?

    需要使用到汉字编码转换,请问如何移植iconv,请各位予以指导
    发表于 10-09 08:52

    使用MDK按照官方nano移植的方法建,并移植了pin.h和drv_gpio.c,drv_gpio.h,编译报错缺少文件,怎么解决?

    使用MDK按照官方nano移植的方法建,并移植了pin.h和drv_gpio.c,drv_gpio.h,发现编译报错缺少文件,但是git没有说明 #include #include 这两个文件是什么,因为缺少文件导
    发表于 09-29 07:15

    STM32标准在Keil5移植rtthread nano后无法显示oled内容是怎么回事?

    STM32F103VET6使用标准,在Keil5上移植rtthread nano后OLED_Update()函数在Sys_Init()中放在board.c中可以执行并且显示出logo图像,使用线程
    发表于 09-22 08:28

    AP6181移植到STM32H723,wifi初始化错误怎么解决?

    了wifi_image_0.1.rbl,OTA采用了libota_noalgo_0.1.2_stm32l4_gcc.a. 已经成功移植了FAL、SFUD、easyflash、filesystem,sdio驱动使用了art-pi
    发表于 09-18 08:20

    请问工程移植都有哪些需要注意的地方?

    ST的固件还是挺丰富的,有时候我们直接移植工程还是挺方便的,不过总是会有各种各样的报错存在,在移植的时候有哪些需要注意的吗?或者一些常见的报错如何解决?
    发表于 07-11 06:50

    基于STM32 HAL与标准的esp8266接入机智云方案(二)

    ,我们还将讨论如何移植HAL和标准以实现与机智云的兼容,帮助开发者更高效地完成项目的云平台接入。代码下载注意:此时手机app端的该设备为网页端的虚拟设备仅仅是
    的头像 发表于 05-28 18:02 1102次阅读
    基于STM32 HAL<b class='flag-5'>库</b>与标准<b class='flag-5'>库</b>的esp8266接入机智云方案(二)

    MySQL数据是什么

    开发、企业应用和大数据场景。以下是其核心特性和应用场景的详细说明: 核心特性 关系型数据模型 数据以 表(Table) 形式组织,表由行(记录)和列(字段)构成。 通过 主键、外键 实现表间关联,支持复杂查询和事务处理。 示例 :电商系统中,用户表、订单表、商品表
    的头像 发表于 05-23 09:18 908次阅读

    使用Tracealyzer调试Zephyr中的优先级反转

    Percepio Tracealyzer已经在600多个支持Zephyr的开发板上完成了验证,可以帮助开发人员改进Zephyr应用的调试和性能分析。
    的头像 发表于 04-21 11:31 972次阅读
    使用<b class='flag-5'>Tracealyzer</b>调试Zephyr中的优先级反转

    基于RV1126开发板移植NCNN部署方法

    本文档说明基于EASY EAI Nano移植NCNN部署的方法与基于NCNN成功运行yolov4的Demo。        NCNN是腾讯优图实验室首个开源项目,是一个为手机端极致优化的高性能
    的头像 发表于 04-16 15:24 460次阅读
    基于RV1126开发板<b class='flag-5'>移植</b>NCNN部署<b class='flag-5'>库</b>方法

    Tracealyzer如何简化调试

    如果没有专为多线程代码设计的有效调试和分析工具,开发基于Zephyr的软件可能更具有挑战性。Percepio Tracealyzer可让您快速解决问题并加快日常开发。优化您的系统以获得可靠的实时性能,获取免费评估非常方便,你在15分钟内开始使用这个软件。
    的头像 发表于 02-11 11:11 770次阅读
    <b class='flag-5'>Tracealyzer</b>如何简化调试

    详解Object Detection Demo的移植

    继上一篇移植了 Mediapipe 的 LLM Inference 后,这篇文章我们将继续探索 Object Detection Demo 的移植
    的头像 发表于 02-05 13:42 845次阅读
    详解Object Detection Demo的<b class='flag-5'>移植</b>

    AN136 基于GD32F30x系列的IEC60730 ClassB移植指南

    电子发烧友网站提供《AN136 基于GD32F30x系列的IEC60730 ClassB移植指南.pdf》资料免费下载
    发表于 01-17 16:22 2次下载
    AN136 基于GD32F30x系列的IEC60730 ClassB<b class='flag-5'>库</b><b class='flag-5'>移植</b>指南

    基于GD32F3x0系列的IEC60730 ClassB移植指南

    电子发烧友网站提供《基于GD32F3x0系列的IEC60730 ClassB移植指南.pdf》资料免费下载
    发表于 01-17 14:41 3次下载
    基于GD32F3x0系列的IEC60730 ClassB<b class='flag-5'>库</b><b class='flag-5'>移植</b>指南

    数据数据恢复—Mysql数据记录丢失的数据恢复流程

    Mysql数据故障: Mysql数据记录丢失。 Mysql数据故障表现: 1、Mysql数据表中无任何数据或只有部分数据
    的头像 发表于 12-16 11:05 996次阅读
    数据<b class='flag-5'>库</b>数据恢复—Mysql数据<b class='flag-5'>库</b>表<b class='flag-5'>记录</b>丢失的数据恢复流程

    ElfBoard技术贴|如何移植Mosquitto

    /订阅模式,适用于嵌入式系统和低功耗设备。其小巧的体积和简洁的架构使其成为许多嵌入式应用的理想选择,特别是在资源受限的嵌入式开发板上运行。 将Mosquitto移植
    的头像 发表于 12-13 15:34 2099次阅读
    ElfBoard技术贴|如何<b class='flag-5'>移植</b>Mosquitto<b class='flag-5'>库</b>