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

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

3天内不再提示

Tracealyzer利用CortexM的ITM实现流跟踪

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

用Tracealyzer快照模式,能够跟踪RTOS系统的运行时间受限于硬件可用的RAM大小,通常只能追踪几十秒的时间。使用流模式则不会存在这个问题,只要电脑硬盘空间足够,可用追踪几小时甚至几天的时间。

流模式需要提供一个可用于实时传输跟踪事件数据的通讯端口,例如使用J-Linkk RTT、UartUSB接口。很多CortexM3/M4/M7 等架构的芯片会配有 ITM(Instrument Trace Macrocell),来打包和传输 DWT 产生的事件。ITM有 32个通道,通过SWO进行串行传输。借助ITM来实现流模式的数据传输,可以不受调试器的限制,只要使用的调试器支持SWO调试都可以使用,但推荐使用速率较高的调试器。

ITM能够提供较高的传输速度。经测试,Renesas S7G2运行在240MHz,使用IAR EWARM 7.1和I-jet调试器时,每秒可以传输73 400个事件,达到1175KB/s的传输速率。

使用ARM-ITM流模式

下文将以IAR EWARM 8.40、I-jet调试器和Tracealyzer 4.35为例说明如何配置和使用ITM实现流模式跟踪。

Note

1、只有Tracealyzer v4.1及更新的版本才支持ITM流模式。

2、所使用的MCU须支持ITM。ITM对于MCU来说是一个可选的配置,不是所有的M3/M4/M7芯片都支持,但主流的芯片一般都支持。

一、将streamports下J-Link_RTT内的源文件加入到工程。

383b0816-8013-11ed-8abf-dac502259ad0.png

图 1 ARM ITM实现的源文件

二、在trcConfig.h中配置

#define TRC_CFG_HARDWARE_PORT TRC_HARDWARE

_PORT_ARM_Cortex_M

#define TRC_CFG_RECORDER_MODE TRC_RECORDER

_MODE_STREAMING

三、工程设置中选择调试接口,与实际所使用的一致,这里使用SWD。

384d4cce-8013-11ed-8abf-dac502259ad0.png

图 2 设置调试接口

四、启动Trace,须使用vTraceEnable(TRC_START)。

五、进入IAR EWARM的调试环境,点击上方的SWO配置图标,打开SWO设置。

386f29e8-8013-11ed-8abf-dac502259ad0.png

图 3 打开EWARM的SWO配置窗口

六、设置正确的CPU时钟,并勾选所使用的ITM通道,默认使用通道1,确认之后退出并关闭IAR EWARM。

38876396-8013-11ed-8abf-dac502259ad0.png

图 4 EWARM SWO设置

七、从工程目录下的settings目录,打开工程的*.dnx文件(EWARM 7.x的格式为*.dni)

38cfcd8e-8013-11ed-8abf-dac502259ad0.png

图 5 dnx文件

将ITMLogFile改成如下所示:

\.pipeTracealyzer

保存文件后再打开IAR,进入调试查看SWO中的设置界面进行确认。

八、启动Tracealyzer,PSF Streaming Settings的Target Connection设置为Name Pipe,Name与EWARM *dnx中设置的一致。EWARM与Tracealyzer利用Windows通信机制(命名管道-Named Pipe,在不相关进程之间实现通信)传递数据,由此,Tracealyzer可以通过EWARM来实时获取跟踪数据。

38dfa9de-8013-11ed-8abf-dac502259ad0.png

图 6 设置流模式的连接方式

九、开启实时跟踪。需要先启动Tracealyzer,Live Stream窗口中点“Start Session”之后,EWARM再进入调试,然后就可以实现实时跟踪。

审核编辑:汤梓红

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

    关注

    134

    文章

    8658

    浏览量

    362017
  • ITM
    ITM
    +关注

    关注

    0

    文章

    6

    浏览量

    8863
  • Cortex
    +关注

    关注

    2

    文章

    194

    浏览量

    45768
  • RTOS
    +关注

    关注

    20

    文章

    776

    浏览量

    118812
  • 调试器
    +关注

    关注

    1

    文章

    288

    浏览量

    23416

原文标题:Tracealyzer利用CortexM的ITM实现流跟踪

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

收藏 人收藏

    评论

    相关推荐

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

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

    如何利用ITM实现更快的跟踪?如何在代码中使用ITM呢?

    在大多数固件开发过程中,需要有某种形式的诊断日志/跟踪
    的头像 发表于 01-26 11:27 860次阅读
    如何<b class='flag-5'>利用</b><b class='flag-5'>ITM</b><b class='flag-5'>实现</b>更快的<b class='flag-5'>跟踪</b>?如何在代码中使用<b class='flag-5'>ITM</b>呢?

    Tracealyzer 技术分享

    有两种方式1.Snapshot Mode(快照模式)特点:跟踪的数据保存在目标RAM中,几KB的跟踪缓冲区通常足以获得最新事件的可靠跟踪。基本上任何系统都可以使用。2.Streaming Mode(
    发表于 01-04 21:10

    教你快递入门-Tracealyzer跟踪记录库移植

    。使用Tracealyzer,可以查看到系统的真实运行情况,为开发人员节省排除错误的时间。Tracealyzer由PC应用程序和跟踪组件组成,Percepio提供了跟踪记录库(Trac
    发表于 07-31 14:08

    Tracealyzer利用CortexMITM实现跟踪

    事件,达到1175KB/s的传输速率。使用ARM-ITM模式下文将以IAR EWARM 8.40、I-jet调试器和Tracealyzer 4.35为例说明如何配置和使用ITM
    发表于 12-05 15:34

    如何使用Tracealyzer预先定义的记录器扩展文件实现用户应用程序跟踪

    被记录为“用户事件”。从Tracealyzer V4.2.9版本开始,增加了记录器扩展方式来跟踪用户应用程序。记录器扩展方式可以帮助用户实现中间件、驱动程序API等重要功能函数调用的跟踪
    发表于 12-18 13:37

    出现“丢失事件”?看Tracealyzer模式如何调优

    在使用自己定义的端口实现跟踪时,如果Tracealyzer提示了“丢失事件”,那么你可以参照以下几种方法,来提升
    发表于 02-19 10:06

    通过Tracealyzer用户事件来了解应用程序

    Tracealyzer跟踪记录器库的集成。可视化特定应用程序的自定义信息的第一步是创建一个用户事件通道。这是一个字符串输出通道,允许开发人员添加自己的自定义事件,在Tracealyzer中称为用户事件。例如,如果想要传输
    发表于 08-20 10:11

    使用Tracealyzer跟踪FreeRTOS内核

    程序,还需要可用于周期性任务的定时机制。大多数现有的开源 RTOS 实现了基于树或列表的机制来跟踪哪个任务已就绪。我们知道,基于树的机制在复杂搜索操作方面是高效和极时的,但在处理删除和插入操作上需花费
    发表于 12-01 14:57

    如何使用Tracealyzer模式跟踪ThreadX?

    Tracealyzer是Percepio 公司开发的一款用于RTOS的嵌入式软件系统的可视化跟踪工具,提供了30多种相互关联的可视化运行时行为视图,本文将介绍如何使用Tracealyzer
    发表于 09-23 13:25

    是否需要在iMXRT1060 EVK板上执行任何特定操作才能使tracealyzer正常工作?

    我有 iMXRT1060EVK,想在 FreeRTOS 的模式下使用 Tracealyzer。我正在使用 IAR EW 和 I-jet 调试探针。我已按照以下链接中的步骤进行操作,但数据仍然存在
    发表于 04-17 08:02

    Tracealyzer实现跟踪最简单的方法

    Tracealyzer 实现跟踪最简单的方法就是使用SEGGER J-Link调试器,通过RTT功能来实现数据的传送。RTT需要在RAM上建立一段缓存,在目标系统运行期间,由J-Li
    的头像 发表于 09-02 11:11 1732次阅读

    如何使用Tracealyzer的流模式来跟踪ThreadX应用

    Tracealyzer是Percepio 公司开发的一款用于RTOS的嵌入式软件系统的可视化跟踪工具,提供了30多种相互关联的可视化运行时行为视图,本文将介绍如何使用Tracealyzer的流模式来
    的头像 发表于 09-16 11:14 1093次阅读

    Tracealyzer跟踪记录库移植

    使用Tracealyzer,首先要将跟踪记录库集成到工程。安装了Tracealyzer 4之后,在安装路径下找到以RTOS名称命名的文件夹,将TraceRecorder子文件夹复制到自己的工程目录中。以FreeRTOS为例:
    的头像 发表于 11-08 11:17 1330次阅读

    如何通过Tracealyzer导出的跟踪数据对任务进行分析?

    Tracealyzer是Percepio 公司开发的一款用于RTOS的可视化跟踪工具, 目前Tracealyzer提供了30多种相互关联的运行时行为视图,对系统运行时的行为提供了前所未有的洞察方法。能够帮助开发人员加快固件的开发
    的头像 发表于 02-06 14:13 766次阅读