当前位置:网站首页>ARM Cortex-M上的Trace跟踪方案
ARM Cortex-M上的Trace跟踪方案
2022-08-05 06:42:00 【Rainmicro】
ARM Cortex-M上的Trace跟踪方案
本文介绍Coresight在Cortex-M上的一些常用的Trace模块以及劳特巴赫TRACE32如何抓取并分析这些模块产生的Trace数据。
ETM模块
ETM模块,全称Embedded Trace Macrocell,用于为内核上运行的程序记录并输出程序流(Program Flow )

DWT模块
DWT模块,全称Data Watchpoint and Trace Unit,可以产生如下trace信息:
- 为有限数量的变量的变化,记录数据流
- 中断入口和出口的相关信息
- PCSampler,用于对PC指针进行抽样,从而统计CPU负载等
- 时间性能相关的信息,例如中断开销、睡眠周期等
这些信息会经由ITM送到Trace Sink(跟踪数据接收器)
ITM模块
**ITM模块,全称Instrumentation Trace Macrocell。**除了用于传输DWT产生的Trace数据外,ITM还可以将软件实时测试的一些信息进行输出,并且对系统实时性没有任何干扰。但是需要修改目标源代码,例如将printf输出到ITM通道中。


上面介绍的几个模块,都是Trace数据的产生源(trace source)。数据产生后,需要传输至相应的Trace数据接收器(trace sink)。常见的Trace数据接收器有:
- Onchip Trace Sink (片上Trace)
- Offchip Trace Sink (片外Trace)

片上Onchip Trace
**对于Onchip Trace,**跟踪数据一般存储在芯片内部专门的存储器中或者重定向到系统内存中,一般这些存储空间都非常小。

然后,TRACE32调试器可以直接通过JTAG或者SWD等调试口,读出这些跟踪数据进行分析。
片外Offchip Trace
**对于片外Offchip Trace,**跟踪数据会通过不同的接口,传输给外部跟踪工具,例如劳特巴赫TRACE32 μTRACE(MicroTrace)

ETM数据和ITM数据都可经由TPIU接口发送出来,通过1-4条并行跟踪数据线,输出到TRACE32 μTRACE设备中。
如果仅有ITM数据,可以使用单路SWO管脚进行导出到调试器设备中。但由于此时管脚复用等原因,调试协议就不能使用JTAG了,只能使用SWD。
Trace数据的应用和分析
跟踪数据收集到劳特巴赫调试器中后,TRACE32便可以针对这些数据进行统计、分析等,例如:
- 基于操作系统资源的TRACE数据分析
- 条件、判定、MC/DC等多维度的代码覆盖率统计
- 内核、函数、中断等详细的数据统计
- 系统性能评估的图形分析
- 以及其他更多功能

关于CortexM的调试和跟踪,可以参考TRACE32相应的帮助文档:
- <T32安装目录>\pdf\microtrace_cortexm.pdf
- *<T32安装目录>\pdf*app_arm_coresight.pdf
- *<T32安装目录>\pdf*training_cortexm_etm.pdf
- *<T32安装目录>\pdf*debugger_cortexm.pdf
边栏推荐
猜你喜欢

在anaconda Promat界面import torch通过,在jupyter notebook中报错的问题(仅提供思路理解!)

游戏思考19:游戏多维计算相关:点乘、叉乘、点线面距离计算

UDP group (multi)cast

typescript65-映射类型(keyof)

typescript60-泛型工具类型(readonly)

re正则表达式

Why does Mysql fail to create a database

(2022杭电多校六)1010-Planar graph(最小生成树)

AI + video technology helps to ensure campus security, how to build a campus intelligent security platform?

It turns out that Maya Arnold can also render high-quality works!Awesome Tips
随机推荐
Promise (三) async/await
[Tool Configuration] Summary of Common Uses of VSCode
Falsely bamboo brother today and found a localization of API to use tools
任务流调度工具AirFlow,,220804,,
武田公司2022财年第一季度业绩强劲;正稳步实现全年的管理层指引目标
typescript68-索引查询类型(查询多个)
17-VMware Horizon 2203 虚拟桌面-Win10 手动桌面池浮动(十七)
开源中国活动合作说明书
Bluetooth gap protocol
2022 crane driver (limited bridge crane) exam question bank and simulation test
Rapid Medical超小体积且唯一可调的取栓器获得FDA核准
4520. 质数
IO process thread -> communication between processes -> day7
Source code analysis of Nacos configuration service (full)
Promise (3) async/await
Flink学习11:flink程序并行度
Shiny04---Application of DT and progress bar in shiny
MySQL: order by sorting query, group by grouping query
Flink学习12:DataStreaming API
PCI Pharma Services宣布斥资数百万美元扩建英国制造设施,以满足市场对支持肿瘤治疗的全球高效药制造服务日益增长的需求