Cortex M7-TRM 翻译系列之TPIU(十三) 📅 2026/8/2 12:29:56 13 跟踪端口接口单元(TPIU)13.1 Cortex-M7 TPIU简介Cortex‑M7 跟踪端口接口单元TPIU为可选硬件组件用于对接片内嵌入式跟踪宏单元ETM与仪器跟踪宏单元ITM输出的跟踪数据两类数据源带有各自独立标识 IDTPIU 会将多路数据整合为单一流式数据。Cortex‑M7 TPIU 会按需封装数据源 ID输出的跟踪数据流可由外部跟踪端口分析仪TPA捕获采集。Cortex‑M7 TPIU 是 CoreSight SoC‑400 TPIU 的简化衍生版本专为低成本调试场景设计。若芯片硬件方案需要 CoreSight SoC‑400 TPIU 的扩展增强功能可在硬件设计阶段使用其他 CoreSight 组件替换 Cortex‑M7 TPIU。注意CM7TPIU 仅支持 ETM 指令跟踪接口对应硬件配置参数 ETM 需置为 1。本章中术语 TPIU 均指代 Cortex‑M7 专用跟踪端口接口单元。如需了解 CoreSight SoC‑400 标准跟踪端口接口单元的相关信息请查阅《Arm® CoreSight™ SoC‑400 技术参考手册》。13.2 TPIU功能介绍TPIU 共有两种硬件配置方案仅支持 ITM 调试跟踪的配置同时支持 ITM 与 ETM 调试跟踪的配置。若芯片硬件方案无需跟踪功能则可不集成 TPIU 模块。注意若你的系统设计选用了可选 ETM 组件则该 TPIU 配置同时支持 ITM 与 ETM 调试跟踪。详情请参阅《Arm® CoreSight™ ETM-M7 技术参考手册》。13.2.1 TPIU框图下图展示了两种配置下的TPIU组件布局13.2.2 TPIU 格式器格式器会将数据源标识信号插入数据包流中以便能够将跟踪数据与其对应的跟踪数据源重新关联识别。当跟踪端口模式处于开启状态时格式器将持续工作。格式化协议相关规范可查阅《Arm® CoreSight™ 架构规范v2.0》。 必须在 DWT 中使能同步包功能为格式器提供时序同步基准。格式器使能状态下若已启动一帧传输但暂无待输出数据硬件会插入半同步包。由 DWT 分发同步信号产生的同步机制可确保补齐所有不完整帧且至少生成一帧完整同步包。13.2.3 串行输出格式SWOTPIU 可按照串行线输出SWO格式输出跟踪数据TPIU_DEVID 寄存器标识硬件支持的输出格式详见第 13-12 页「器件配置寄存器」小节。TPIU_SPPR 寄存器用于选定当前生效的 SWO 输出格式相关说明参阅《Arm® v7‑M 架构参考手册》。当选用两种 SWO 模式中的任意一种时可配置 TPIU 使跟踪输出直通(bypass)格式器。若开启格式器直通功能仅有 ITM 与 DWT 产生的跟踪数据能够正常输出TPIU 会接收来自 ETM 的数据并直接丢弃。当需要将集成 ETM 模块的芯片接入仅支持采集 SWO 数据流的跟踪捕获设备时可使用该功能。13.3 TPIU编程模式下表列出了 TPIU 相关寄存器。根据处理器的硬件实现方案芯片可能未实现这组 TPIU 寄存器或是替换为标准 CoreSight TPIU 寄存器。所有未实现的寄存器读取结果均为 0。地址寄存器名称访问类型复位值寄存器中文说明0xE0040000TPIU_SSPSR只读-a支持的并行端口尺寸寄存器0xE0040004TPIU_CSPSR读写0x01当前并行端口尺寸寄存器0xE0040010TPIU_ACPR读写0x0000异步时钟预分频寄存器0xE00400F0TPIU_SPPR读写0x01引脚协议选择寄存器0xE0040300TPIU_FFSR只读0x08格式化器与刷新状态寄存器0xE0040304TPIU_FFCR读写0x102格式化器与刷新控制寄存器0xE0040308TPIU_FSCR只读0x00格式化器同步计数器寄存器0xE0040EE8TRIGGER只读0x0触发寄存器0xE0040EECFIFO data 0只读0x0集成测试 ETM 数据寄存器0xE0040EF0ITATBCTR2只读0x0集成测试 ATB 控制寄存器 20xE0040EFCFIFO data 1只读0x0集成测试 ITM 数据寄存器0xE0040EF8ITATBCTR0只读0x0集成测试 ATB 控制寄存器 00xE0040F00ITCTRL读写0x0集成模式控制寄存器0xE0040FA0CLAIMSET读写0xF占用标签置位寄存器0xE0040FA4CLAIMCLR读写0x0占用标签清除寄存器0xE0040FC8DEVID只读0xCA0/0xCA1器件配置寄存器0xE0040FCCDEVTYPE只读0x11器件类型标识寄存器0xE0040FD0PID4只读0x04外设标识寄存器组0xE0040FD4PID5只读0x00外设标识寄存器组0xE0040FD8PID6只读0x00外设标识寄存器组0xE0040FDCPID7只读0x00外设标识寄存器组0xE0040FE0PID0只读0xA9外设标识寄存器组0xE0040FE4PID1只读0xB9外设标识寄存器组0xE0040FE8PID2只读0x0B外设标识寄存器组0xE0040FECPID3只读0x00外设标识寄存器组0xE0040FF0CID0只读0x0D组件标识寄存器组0xE0040FF4CID1只读0x90组件标识寄存器组0xE0040FF8CID2只读0x05组件标识寄存器组0xE0040FFCCID3只读0xB1组件标识寄存器组注全部寄存器说明查看arm v7架构手册查看13.3.1 Asynchronous Clock Prescaler Register项目内容功能用途对异步输出的波特率进行分频缩放。使用约束无使用约束。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:13]—保留位[12:0]PRESCALER对TRACECLKIN进行PRESCALER1的分频处理13.3.2 Formatter and Flush Status Register项目内容功能用途指示TPIU格式器的状态使用约束无使用约束。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:4]—保留位[3]FtNonStop格式化器不可停止[2]TCPresent该位读取恒为 0[1]FtStopped该位读取恒为 0[0]FlInProg该位读取恒为 013.3.3 Formatter and Flush Control Register项目内容功能用途控制TPIU格式器使用约束无使用约束。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:9]—保留位[8]TrigIn该位恒读为 1RAO表示当外部触发引脚有效时会插入触发标记[7:2]—保留位[1]EnFCont使能连续格式化可选配置0关闭连续格式化1开启连续格式化[0]—保留位备注TPIU 可按照串行线输出SWO格式输出跟踪数据。当选择两种 SWO 模式中的任意一种时可通过 TPIU_FFCR 寄存器的第 1 位配置直通格式器。若开启格式器直通仅 ITM 与 DWT 的跟踪数据流能够直通输出TPIU 会接收 ETM 发来的数据并直接丢弃。该功能可用于将搭载 ETM 模块的芯片接入仅支持采集 SWO 数据流的跟踪捕获设备。开启或关闭格式器会短暂造成跟踪数据错乱。若配置 TPIU_SPPR 寄存器选择并行跟踪端口模式格式器会自动使能若后续切换至任意一种 SWO 模式TPIU_FFCR 寄存器配置将恢复为此前软件写入的值。13.3.4 TRIGGER Register项目内容功能用途控制集成测试触发TRIGGER输入信号使用约束无使用约束。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:1]—保留位[0]TRIGGER input value读取该位时返回 TRIGGER 输入引脚电平13.3.5 Integration ETM Data Register项目内容功能用途控制跟踪数据集成测试功能使用约束使用该寄存器前必须置位 TPIU_ITCTRL 寄存器的第 1 位。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:30]—保留位[29]ITM ATVALID input返回 ITM 模块 ATVALID 信号的电平值[28:27]ITM byte count自上次读取集成 ITM 数据寄存器以来产生的 ITM 跟踪数据字节数[26]ETM ATVALID input返回 ETM 模块 ATVALID 信号的电平值[25:24]ETM byte count自上次读取集成 ETM 数据寄存器以来产生的 ETM 跟踪数据字节数[23:16]ETM data 2ETM 跟踪数据读取本寄存器时硬件会丢弃该段数据[15:8]ETM data 1ETM 跟踪数据读取本寄存器时硬件会丢弃该段数据[7:0]ETM data 0ETM 跟踪数据读取本寄存器时硬件会丢弃该段数据13.3.6 Integration Test ATB Control Register 2项目内容功能用途控制集成测试使用约束使用该寄存器前必须置位 TPIU_ITCTRL 寄存器的第 0 位。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:1]—保留位[0]ATREADY1, ATREADY2当 TPIU 处于集成测试模式时该位用于同时配置 ETM 与 ITM 两路 ATREADY 输出信号的电平13.3.7 Integration ITM Data Register项目内容功能用途控制跟踪数据集成测试功能使用约束使用该寄存器前必须置位 TPIU_ITCTRL 寄存器的第 1 位。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:30]—保留位[29]ITM ATVALID input返回 ITM 模块 ATVALID 信号电平[28:27]ITM byte count自上次读取集成 ITM 数据寄存器后产生的 ITM 跟踪数据总字节数[26]ETM ATVALID input返回 ETM 模块 ATVALID 信号电平[25:24]ETM byte count自上次读取集成 ETM 数据寄存器后产生的 ETM 跟踪数据总字节数[23:16]ITM data 2ITM 跟踪数据读取该寄存器时TPIU 会丢弃本段数据[15:8]ITM data 1ITM 跟踪数据读取该寄存器时TPIU 会丢弃本段数据[7:0]ITM data 0ITM 跟踪数据读取该寄存器时TPIU 会丢弃本段数据13.3.8 Integration Test ATB Control 0 Register项目内容功能用途控制集成测试使用约束使用该寄存器前必须置位 TPIU_ITCTRL 寄存器的第 0 位。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:1]—保留位[0]ATVALID1, ATVALID2读取该位将返回 ATVALIDS1 与 ATVALIDS2 做逻辑或运算后的结果13.3.9 Integration Mode Control项目内容功能用途明确TPIU的普通模式或者是集成模式使用约束无使用约束。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:2]—保留位[1:0]Mode配置 TPIU 当前工作模式0b00正常工作模式0b01集成测试模式0b10集成数据测试模式0b11保留配置13.3.10 Device Configuration Register项目内容功能用途指示TPIU所提供的硬件功能使用约束无使用约束。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:12]—保留位[11]NRZVALID标识硬件支持采用 UART/NRZ 编码的 SWO 输出该位恒读为 1RAO代表该输出功能已实现[10]MANCVALID标识硬件支持采用曼彻斯特编码的 SWO 输出该位恒读为 1RAO代表该输出功能已实现[9]PTINVALID标识并行跟踪端口功能支持状态该位恒读为 0RAZ代表支持跟踪数据与跟踪时钟并行输出模式[8:6]FIFOSZ标识 TPIU 跟踪输出 FIFO 的最小硬件实现深度0b0104 字节[5:0]Number of trace inputs定义跟踪输入通道数量0b0000001 路输入0b0000012 路输入补充说明若处理器硬件集成 ETM 模块该位域固定为 0b00000113.3.11 Device Type Identifier Register项目内容功能用途当调试器无法识别部件编号字段时向调试器提供该组件的类型信息调试器可上报该识别信息。使用约束无使用约束。配置版本全部配置模式均可使用属性说明见下表位域名称功能说明[31:8]—保留位[7:4]Sub type标识该调试组件的细分类型[3:0]Major type固定值 0x11表明本器件为跟踪接收端具体为 TPIU 模块知识点占坑后面更新1、TPIU和DWT的信号互联