ARM嵌入式跟踪宏单元(ETM)详解

需积分: 0 84 下载量 95 浏览量 更新于2024-08-10 收藏 5.26MB PDF 举报
"嵌入式跟踪宏单元-史上最直白的ica教程" 嵌入式跟踪宏单元(Embedded Trace Macrocell,简称ETM)是ARM处理器中用于实时调试的一种硬件设施,尤其适用于深度嵌入式系统。它能精确追踪CPU执行的指令,这对于软件调试和性能分析极其重要。本文档主要围绕LPC23xx系列微控制器中的ETM功能进行讲解,该系列由广州周立功单片机发展有限公司提供技术支持。 30.1 特性 - ETM能够准确追踪ARM内核执行的每一条指令。 - 具有一个外部触发输入,用于启动或停止跟踪。 - 使用10线接口与外部设备通信。 - 所有寄存器都可通过JTAG接口编程,方便配置和调试。 - 在未使用跟踪功能时,ETM不消耗额外电源,有利于节能。 - 支持THUMB指令集,涵盖了广泛的应用场景。 30.2 应用场景 由于现代微控制器内部集成大量内存,传统的外部观察方法无法有效分析处理器行为。ETM提供实时指令跟踪,将处理器执行的信息输出到跟踪端口。通过软件调试器,用户可以配置ETM,并以易于理解的格式查看捕获的跟踪信息,从而理解和优化程序的执行流程。 30.3 工作原理及描述 ETM直接连接到ARM内核,而非主AMBA系统总线,以减少对系统性能的影响。它通过压缩技术将跟踪信息输出,由外部跟踪端口分析仪捕获。这些信息包括指令跟踪,显示了程序的执行路径和所有已执行的指令。由于信息被高度压缩,软件调试器需要原始的执行代码映像以解码跟踪数据。值得注意的是,自修改代码由于其动态性,无法通过ETM完全跟踪。 30.3.1 ETM配置 LPC23xx的ETM配置如表30.1所示,包括1个地址比较器对,用于设定触发条件;没有数据比较器,意味着不支持数据跟踪;配备4个存储器映射译码器、1个计数器和1个时序发生器。此外,还有2个外部输入和10字节深度的FIFO,以及4/8位宽的跟踪包。 总结起来,ETM是LPC23xx微控制器中一个强大的调试工具,它通过实时追踪指令执行,帮助开发者理解程序行为,优化代码性能。虽然存在一定的限制,如无法跟踪自修改代码,但在大多数常规应用中,ETM提供的信息对于系统调试和性能分析极具价值。配合软件调试器,ETM能为开发过程带来极大的便利,降低了问题定位的难度。