作为 CoreSight 解决方案的一部分,ARM 提供了一整套实时跟踪宏单元:
- ARM 处理器实时跟踪宏单元 (ETM / PTM),用于观察如何在 ARM 处理器上执行软件。
- 测量跟踪宏单元,用于高级软件测量(输出类型调试、操作系统和应用程序事件)
- 总线跟踪宏单元,显示无法从内核跟踪推断出的总线信息。
为什么选择嵌入式跟踪宏单元?
在调试或优化嵌入式系统时,嵌入式开发人员主要有两个选择:
- 常规调试:通常设置断点和/或观察点以停止处理单元,从该处使用调试连接检查或修改寄存器或内存,并执行一个步骤以了解程序的工作方式。
尽管开发人员可以控制代码执行和调试,但常规调试存在一些缺点:- 干预性:调试将控制系统行为。
- 需要停止处理器:对于某些应用场合,可能无法停止处理器(例如,硬盘、汽车等)。
- 非实时:无法用于实时调试运行的软件。
- 性能不可见:无法观察软件性能。
- 实时跟踪:在系统运行时,跟踪宏单元收集指令和/或数据传输,压缩这些信息,并在芯片外(实时)或芯片上提供这些信息以进行后处理。
然后,跟踪将与开发工作站中的源代码合并,以进行后续分析。
通过使用 CoreSight 嵌入式跟踪宏单元,开发人员可以实时分析软件如何在平台上运行,以加快产品开发速度并提供高质量的优化软件。
ETM 和 PTM 的主要特性和优点如下所示:
主要特性 | 主要优点 |
|---|---|
| 跟踪全速运行的内核,而不会产生任何性能开销 | 实时跟踪和调试正在执行的系统 |
| 周期精确的跟踪 | 收集有关程序执行的重要计时信息,以进行性能优化和“始终准时的”代码验证 |
| 大量的顺序触发器逻辑和片上过滤条件控制捕获的数据 | 捕获有关要查看的事件的程序活动 查看较长时间的跟踪 |
| 很高的跟踪数据压缩率(对于 Cortex-A9,每个指令大约为 0.4 位跟踪) | 更高的可见性,需要更少的针数或更小的跟踪缓冲区 |










