棋子 · 2020年01月08日

从软件读取ETB

是否可以使用软件中的硬件跟踪?

装置启用跟踪并从在同一内核上运行的代码读取ETB的内容。

1 个回答 得票排序 · 时间排序
极术小姐姐 · 2020年01月08日

只要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...

如果您使用这种裸机,您可能还会发现代码提取很有用。

希望这可以帮助 ?

你的回答
关注数
1
收藏数
0
浏览数
2229
极术小姐姐
极术微信服务号
关注极术微信号
实时接收点赞提醒和评论通知
安谋科技学堂公众号
关注安谋科技学堂
实时获取安谋科技及 Arm 教学资源
安谋科技招聘公众号
关注安谋科技招聘
实时获取安谋科技中国职位信息