工程实践

JTAG 调试与故障定位:从连接到目标状态

用分层方法排查 JTAG 无法识别、扫描异常和调试连接不稳定等问题。

JTAG 问题常被描述为“工具连不上”,但这个现象可能来自多个层面:主机与探头、探头与目标板、TAP 信号、电源与复位、扫描链配置,或者目标处理器自身状态。把它们混在一起排查,往往会反复更换配置却没有结论。

第一层:确认物理和电气条件

先确认接口方向、地线、目标电压参考和关键电源。检查 TCK、TMS、TDI、TDO 是否接到了预期引脚,是否存在连接器方向或丝印误导。不要把“探头指示灯正常”当作目标板连接正常的证据;必要时用示波器或逻辑分析工具观察实际波形。

此阶段还要记录复位信号的状态。某些目标在复位期间不会按预期响应调试访问,某些板卡的复位电路又可能受外部器件影响。具体阈值、时序和电气限制应以目标器件和探头文档为准,不能使用未经验证的经验数值替代。

第二层:确认 TAP 和扫描链

如果物理连接基本可信,先让 TAP 回到 Test-Logic-Reset,再检查最小访问是否成立。然后核对链中器件的顺序、数量、指令寄存器长度和旁路设置。链中一个器件的 TDO 悬空、供电缺失或长度配置错误,就可能导致整个链的识别结果偏移。

这里需要用到 TAP 状态机:JTAG 访问流程的骨架 的概念:工具不是直接读一个“设备地址”,而是通过状态转换选择指令和数据寄存器。若复位后仍无法得到合理的识别结果,应分别验证 TMS/TCK 控制、TDI/TDO 数据路径和采样边沿,而不是只调整扫描速度。

第三层:分离调试与边界扫描问题

扫描链可访问,不代表处理器调试模块一定可用;边界扫描结果异常,也不必然说明处理器调试功能损坏。可以先使用最小的识别或旁路访问验证链路,再单独测试边界扫描寄存器,最后再进入处理器调试访问。这样能把链路问题、板级互连问题和目标运行状态问题区分开。

边界扫描适合定位部分数字互连故障,适用范围和限制见 Boundary Scan 基础:从扫描链到板级互连检查。调试器则可能受到时钟、复位、启动模式、保护状态和目标软件执行状态影响。每个结论都应绑定到具体观测:识别值、状态转换、寄存器响应或波形,而不是只记录“重试后成功”。

让故障定位可复现

一次有效的故障记录至少应包含目标板版本、器件链顺序、连接方式、供电和复位状态、工具配置、操作步骤以及原始日志。若问题与烧录有关,还应记录镜像来源、地址布局和保护状态,但不要把未验证的推测写成器件能力。需要进一步理解烧录流程时,可阅读 JTAG 固件烧录基础:从镜像到目标存储器。

排查前可先核对 JTAG TAP 接口信号 与 JTAG 连接器和测试访问端口;若关注板级互连测试的适用范围,可对照 Boundary Scan、ICT 与 FCT 的区别。