3. 目标芯片与调试接口准备

Trace 数据采集能否成功,往往在打开 TRACE32 之前就已经决定了大半。目标芯片是否具备指令 Trace 或数据 Trace 能力、调试探头与芯片之间的物理链路是否可靠、所选接口是否支持所需的 Trace 带宽、上电时序是否满足调试器识别条件——这些前置条件中任何一项不成立,后续的采集与分析都会表现为“无数据”“数据不连续”或“时间戳异常”。本节围绕“能力确认—物理连接—接口配置—上电检查”这条准备链展开,重点说明每一步实际要查什么、怎么查、看到什么才算通过。

一、确认目标芯片的 Trace 能力边界

不同芯片的 Trace 能力差异很大,不能默认“有调试口就有 Trace”。需要从三个层面确认:Trace 类型(指令 Trace、数据 Trace、两者兼有)、Trace 输出通道(专用 Trace 引脚、复用调试引脚、片上缓冲)、Trace 带宽与深度(引脚位宽、时钟频率、片上 FIFO/ETB 容量)。

以常见的 Cortex-M7 与 Cortex-A 系列为例:Cortex-M7 通常通过 TPIU 输出 1/2/4 位并行 Trace 数据,配合 SWO 可做低带宽指令流;Cortex-A 系列则多采用 ETM/PTM 加 TPIU 或 HSSTP 高速串行 Trace。若芯片只提供 SWO(单线),则只能做有限的指令采样和 ITM 打印,无法做全指令流 Trace。确认方式通常是查阅芯片数据手册的“Debug and Trace”章节,或直接查看 TRACE32 安装目录下对应芯片的 peripheral 描述文件与 trace 配置模板。

判断依据:如果芯片手册中只列出 SWD/JTAG 引脚而未列出 TRACECLK、TRACEDATA[0..3]、TRACESWO 或 HSSTP 差分对,则该芯片大概率不支持全指令 Trace,只能做调试与有限采样。

二、调试探头与目标板的物理连接

物理连接是 Trace 准备中最容易被低估的环节。TRACE32 支持多种探头,如 LA-3505、LA-3743、CombiProbe 等,不同探头支持的接口和 Trace 通道不同。连接前需核对三件事:

  • 探头型号与芯片接口匹配:例如 HSSTP 需要探头具备高速串行 Trace 接收能力,普通 JTAG 探头无法直接解析 HSSTP 数据流。
  • 引脚定义与目标板丝印一致:JTAG 的 TCK/TMS/TDI/TDO/nTRST、SWD 的 SWCLK/SWDIO、Trace 的 TRACECLK/TRACEDATA 必须一一对应,尤其注意 VTREF 参考电压引脚。
  • 地线与参考电压:Trace 高速信号对地回流敏感,探头地线应尽量短且多点接地;VTREF 用于探头电平匹配,必须连接到目标板 I/O 电压。

连接完成后,可用 TRACE32 的 SYStem.CONFIG 命令查看探头识别状态。若探头未被识别,优先检查 VTREF 是否正常、JTAG/SWD 线序是否接反、目标板是否已上电。

三、JTAG/SWD/HSSTP 接口配置要点

接口配置的核心是让 TRACE32 的调试通道与 Trace 通道分别正确建立。JTAG 与 SWD 用于调试访问(读写寄存器、下载程序、控制 CPU),Trace 通道用于搬运 Trace 数据。两者可以共用引脚,也可以独立。

以 SWD + 4 位并行 Trace 为例,典型配置如下:

SYStem.CONFIG DEBUGPORT.TYPE SWD
SYStem.CONFIG TRACEPORT.TYPE PARALLEL
SYStem.CONFIG TRACEPORT.WIDTH 4
SYStem.CONFIG TRACECLK.FREQUENCY 100MHz
SYStem.CONFIG VTREF 3.3V
SYStem.Up

若使用 HSSTP,则需将 TRACEPORT.TYPE 改为 HSSTP,并配置差分对速率与通道数。配置完成后执行 SYStem.Up,观察是否返回 SYStem state: debug 或类似成功状态。若报 debug port fail,说明调试通道未建立;若报 trace port fail,说明 Trace 通道未同步。

四、上电检查与信号质量确认

上电检查不是简单“通电即可”,而是按顺序确认:目标板电源正常 → VTREF 电压在探头允许范围 → 调试通道可识别 → Trace 时钟与数据信号质量满足采样要求。对于并行 Trace,TRACECLK 频率越高,对走线长度匹配和阻抗控制要求越严;若 Trace 数据出现间歇性丢失,可用示波器观察 TRACECLK 与 TRACEDATA 的建立/保持时间,或降低 Trace 时钟频率做对比测试。

下面这张图把本节的关键准备关系整理为一条“能力—连接—配置—上电”的检查链,便于在实际操作时逐项对照。

目标芯片与调试接口准备检查链 ① 芯片 Trace 能力 指令 Trace / 数据 Trace TPIU / ETB / HSSTP 引脚位宽与 FIFO 深度 ② 调试探头连接 探头型号匹配接口 TCK/TMS/TDI/TDO VTREF 与地线回流 ③ 接口配置 JTAG / SWD / HSSTP TRACEPORT.TYPE 时钟频率与位宽 ④ 上电检查 电源与 VTREF SYStem.Up 状态 信号质量确认 常见失败反馈:debug port fail(调试通道未建立) / trace port fail(Trace 通道未同步) / 数据间歇丢失(信号质量不足) 排查顺序:先确认 VTREF 与地线 → 再确认接口类型与线序 → 最后降低 Trace 时钟做对比 TRACE32 配置示例(SWD + 4 位并行 Trace) SYStem.CONFIG DEBUGPORT.TYPE SWD SYStem.CONFIG TRACEPORT.TYPE PARALLEL SYStem.CONFIG TRACEPORT.WIDTH 4 SYStem.CONFIG TRACECLK.FREQUENCY 100MHz SYStem.CONFIG VTREF 3.3V SYStem.Up

五、准备完成后的最小验证

在正式采集 Trace 之前,建议先做一次最小验证:执行 SYStem.Up 后读取 CPU ID 或内核寄存器,确认调试通道可用;再执行 Trace.List 或 Trace.STATistic 观察是否有 Trace 数据流入。若 Trace.List 为空但 SYStem.Up 成功,说明调试通道正常而 Trace 通道未配置或未触发,应回到接口配置与 Trace 触发条件检查。

只有上述四项检查全部通过,才进入后续的 Trace 采集与分析环节。把准备阶段做扎实,可以避免大量“采集不到数据”的无效排查。