是否可以使用软件中的硬件跟踪?
装置启用跟踪并从在同一内核上运行的代码读取ETB的内容。
只要CoreSight跟踪组件(生成跟踪数据即ETM或PTM的跟踪宏单元,关联的跟踪链接和接收器组件)都包含在主系统内存映射中,就应该可行。
如果是,则可以通过编程方式进行访问。
如果您尝试在“裸机”上或在RTOS下进行此操作,那么我们有一个示例,说明如何在以下位置对ETM进行编程
https://developer.arm.com/doc...
秒 4.5“程序示例”
正如您已经找到了Cortex-M33 ETB的程序员模型一样,我猜这是一个Cortex-M33系统,所以1核,没有跟踪漏斗(即跟踪链接),因此是一个相当简单的系统。
您想要:
首先启用跟踪接收器(ETB),
然后是ETM
然后运行要跟踪的代码
然后停止ETM
停止ETB,
清除ETB中所有未完成的跟踪。
请注意,轨迹是高度压缩的,因此您需要<某种方式>对其进行解码,将其导入工具或创建分析工具。
但是,如果您想在Linux下执行相同的操作,则可以使用CoreSIght访问库(CSAL),该库可在Arm的github帐户上找到,网址为
https://github.com/ARM-softwa...
如果您使用这种裸机,您可能还会发现代码提取很有用。
希望这可以帮助 ?