Arm ETM记录道和STM记录道

Arm ETM记录道和STM记录道,arm,trace32,Arm,Trace32,需要了解STM记录道和ETM记录道之间的区别吗?还想了解coresight设备中的源、汇、链接吗 请分享这些查询的任何链接/博客这里有一个介绍性的“”,但这更旨在为SoC设计者提供一些上下文。但是,我可以尝试在这里提供一些以开发人员为中心的信息 STM或ITM都是软件驱动的跟踪源(实际上是一个优化的/专用的UART)。在Cortex-M中,有一个额外的硬件跟踪层,它以某种方式补偿较小部件中缺少性能监视器计数器的情况。STM的访问速度相当快,软件可以将原始有效负载转储到特定通道。这比UART的开销

需要了解STM记录道和ETM记录道之间的区别吗?还想了解coresight设备中的源、汇、链接吗

请分享这些查询的任何链接/博客

这里有一个介绍性的“”,但这更旨在为SoC设计者提供一些上下文。但是,我可以尝试在这里提供一些以开发人员为中心的信息

STM
ITM
都是软件驱动的跟踪源(实际上是一个优化的/专用的UART)。在Cortex-M中,有一个额外的硬件跟踪层,它以某种方式补偿较小部件中缺少性能监视器计数器的情况。STM的访问速度相当快,软件可以将原始有效负载转储到特定通道。这比UART的开销低(并且带宽的安排应该允许流式写入,而不必担心握手。此跟踪的捕获通常内置在低端工具中

ETM
非常复杂。它实时提供程序执行流的非侵入性视图。除Cortex-R外,这通常只是指令流,并且流被严重压缩。根据设备的不同,可能有一个选项可以在流中包含计时信息。ETM跟踪可供使用d用于分析、代码覆盖和诊断硬问题或竞争条件(因为采取的异常序列等是明确的)

ETM还具有触发逻辑,有助于将捕获范围缩小到感兴趣的特定序列

CoreSight是一种用于实现跟踪/调试的体系结构和一组组件。在这个术语中,
STM
ETM
是跟踪源。它们通过宽总线以基于字节的协议传输跟踪数据。挑战是从芯片外提取此数据。数据可以存储在缓冲区中,也可以通过调试接口读取e之后,或实时流式传输。小型Cortex-M设备通常有一个4位跟踪端口,这需要运行至少一半的核心频率才能跟上。基本4/8/16/32位跟踪端口的捕获硬件非常重要,因为它们通常在高频下运行

在CoreSight术语中,跟踪接收器是存储或导出跟踪数据的端点。外部跟踪端口、跟踪到内存桥接器或片上缓冲区

跟踪链路是互连的一部分(除了有可配置的路由外,大多数情况下仅对设计人员可见)。链路可以是1:n或n:1连接、时钟/电源桥或FIFO

跟踪/调试设计用于外部(在工作台上)使用和自托管用例(前提是有软件可访问的缓冲区)。如果需要,后者可以通过操作系统公开给用户空间

软件驱动的跟踪源的目的是允许开发人员在其代码中嵌入
printf
类似的功能。当然,将printf嵌入uart是昂贵的,存在masive库开销(在嵌入式应用程序中),函数调用和格式化成本,uart的异常处理程序等。STM跟踪可能要简单得多。在代码中的关键位置,STM通道地址的单个存储足以发送消息(因此开销大约为2-3条指令)。通道可以被禁用,这使得消息对定时的影响是静态的(即使在生产代码中)。工具可以标记消息以获得更好的用户体验(我猜大多数调试printf都是静态消息)。在Cortex-M中使用这样的ITM有很好的支持,因为捕获硬件可以很容易地与调试探针集成。虽然此跟踪是实时的,并且开销较低,但粒度降低了,开发人员需要修改关键代码部分以包括插装跟踪。

有介绍性的“”,但是这更多的是为了给SoC设计者提供一些上下文。不过,我可以尝试在这里提供一些以开发人员为中心的信息

STM
ITM
都是软件驱动的跟踪源(实际上是一个优化的/专用的UART)。在Cortex-M中,有一个额外的硬件跟踪层,它以某种方式补偿较小部分中缺少性能监视器计数器的情况。访问STM的速度相当快,软件可以将原始有效负载转储到特定通道。这比UART的开销低(并且带宽的安排应该允许流式写入,而不必担心握手。此跟踪的捕获通常内置在低端工具中

ETM
非常复杂。它实时提供程序执行流的非侵入性视图。除Cortex-R外,这通常只是指令流,并且流被严重压缩。根据设备的不同,可能有一个选项可以在流中包含计时信息。ETM跟踪可供使用d用于分析、代码覆盖和诊断硬问题或竞争条件(因为采取的异常序列等是明确的)

ETM还具有触发逻辑,有助于将捕获范围缩小到感兴趣的特定序列

CoreSight是一种用于实现跟踪/调试的体系结构和一组组件。在这个术语中,
STM
ETM
是跟踪源。它们通过宽总线以基于字节的协议传输跟踪数据。挑战是从芯片外提取此数据。数据可以存储在缓冲区中,也可以通过调试接口读取e之后,或实时流式传输。小型Cortex-M设备通常有一个4位跟踪端口,这需要运行至少一半的核心频率才能跟上。基本4/8/16/32位跟踪端口的捕获硬件非常重要,因为它们通常在高频下运行

在CoreSight术语中,跟踪接收器是存储或导出跟踪数据的端点