新闻  |   论坛  |   博客  |   在线研讨会
Tracealyzer利用CortexM的ITM实现流跟踪
13261589816 | 2023-01-05 14:30:21    阅读:373   发布文章

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


流模式需要提供一个可用于实时传输跟踪事件数据的通讯端口,例如使用J-Linkk RTT、Uart和USB等接口。很多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内的源文件加入到工程。

图 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。

图片

图 2 设置调试接口


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


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

图片

图 3 打开EWARM的SWO配置窗口


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

图片

图 4 EWARM SWO设置


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

图片

图 5 dnx文件

 将ITMLogFile改成如下所示:

 <ITMlogFile>\\.\pipe\Tracealyzer</ITMlogFile>

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


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

图片

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


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


*博客内容为网友个人发布,仅代表博主个人观点,如有侵权请联系工作人员删除。

参与讨论
登录后参与讨论
北京麦克泰软件技术有限公司(中文简称麦克泰,英文简称 BMR)成立于1995年, 是国内专业的嵌入式系统软件企业,与世界领先的嵌入式软件供应商合作有二十多年的时间,为嵌入式研发提供丰富的工具,软件,解决方案和培训服务。
推荐文章
最近访客