Cortex M7-TRM 翻译系列之ITM(十二)
12 指令跟踪宏单元(ITM)12.1 ITM概述仪器跟踪宏单元ITM是可选的、由应用程序驱动的跟踪源支持类似 printf 打印风格的调试手段可用于跟踪操作系统与应用程序事件并输出系统诊断信息。12.2 ITM功能描述ITM 以数据包形式生成跟踪信息共有四类数据源可产生数据包。若多个数据源同时输出数据包ITM 会仲裁数据包的输出顺序。四类数据源的优先级从高到低依次为软件跟踪软件可以直接写入ITM激励寄存器去生成跟踪数据包硬件跟踪数据包由DWT生成再经由ITM对外输出时间戳数据包会附带相对时间戳。ITM 内置一个 21 位计数器用于生成时间戳该计数器由处理器时钟驱动计数。全局系统时间戳可选采用系统级 64 位计数值生成时间戳该计数值同样用于为 ETM 跟踪流插入时间戳实现粗粒度的多模块跟踪数据关联比对。12.3 ITM程序模型下表列出了本处理器专属实现的 ITM 寄存器。其余寄存器的相关说明请参阅《Arm® v7-M 架构参考手册》。根据处理器的硬件实现方案部分 ITM 寄存器可能未集成。读取任何硬件未实现的寄存器时读出值恒为 0。注意在配置或使用 ITM 之前必须置位调试异常与监控控制寄存器DEMCR的 TRCENA 位。若 ITM 跟踪流需要同步数据包则必须在 DWT 中配置同步数据包发送速率。地址范围寄存器名称读写属性复位值功能说明0xE0000000 ~ 0xE000007CITM_STIM0 ~ ITM_STIM31可读可写 (RW)—0~31 号激励端口寄存器0xE0000E00ITM_TER可读可写 (RW)0x00000000跟踪通道使能寄存器0xE0000E40ITM_TPR可读可写 (RW)0x00000000ITM 跟踪权限寄存器0xE0000E80ITM_TCR可读可写 (RW)0x00000000跟踪控制寄存器0xE0000EF0ITM_ITATRDY只读 (RO)未定义集成测试模式ATB 就绪状态读寄存器0xE0000EF8ITM_ITATVAL只写 (WO)—集成测试模式ATB 有效信号写寄存器0xE0000F00ITM_TCTRL可读可写 (RW)0x00000000集成测试模式控制寄存器0xE0000FB0ITM_LAR只写 (WO)—ITM 锁访问寄存器0xE0000FB4ITM_LSR只读 (RO)未定义ITM 锁状态寄存器0xE0000FD0PID4只读 (RO)0x00000004外设识别寄存器组0xE0000FD4PID5只读 (RO)0x00000000保留0xE0000FD8PID6只读 (RO)0x00000000保留0xE0000FDCPID7只读 (RO)0x00000000保留0xE0000FE0PID0只读 (RO)0x00000001外设识别寄存器 00xE0000FE4PID1只读 (RO)0x000000B0外设识别寄存器 10xE0000FE8PID2只读 (RO)0x0000000B外设识别寄存器 20xE0000FECPID3只读 (RO)0x00000000外设识别寄存器 30xE0000FF0CID0只读 (RO)0x0000000D组件识别寄存器组0xE0000FF4CID1只读 (RO)0x000000E0组件识别寄存器 10xE0000FF8CID2只读 (RO)0x00000005组件识别寄存器 20xE0000FFCCID3只读 (RO)0x000000B1组件识别寄存器 3备注特权模式下可完整访问全部 ITM 寄存器。用户模式中所有寄存器均支持读取但仅激励寄存器与跟踪使能寄存器允许写入且写入的前提是跟踪权限寄存器对应位置 1。用户模式下对 ITM 寄存器执行非法写操作时写入数据会被硬件丢弃。12.3.1 ITM跟踪特权寄存器项目内容功能用途供操作系统管控用户代码可访问的激励端口。使用约束仅能在特权模式下对该寄存器执行写操作。配置版本若硬件实现中集成了 ITM 模块则该寄存器可用。属性说明见下表位域名称功能说明[31:4]—保留位[3:0]PRIVMASK中断线路总数以 32 路为一组划分BIT[0]激励端口[7:0]BIT[1]激励端口[15:8]BIT[2]激励端口[23:16]BIT[3]激励端口[31:24]该部分内容需看ARM v7架构手册TRM描述的太少