除错埠
目录
除错埠
调试端口是集成电路中包含的芯片级诊断接口(类似于计算机端口),用于帮助设计、制造、开发、引导、配置、调试和售后系统内编程。 一般而言,最终使用功能不需要调试端口,并且通常在成品中隐藏或禁用。
当在高可用性或安全关键系统中构成时,调试端口可以继续作为系统xxx器运行以在成品中进行完整性验证。 在低成本或大批量电子产品中,调试端口有时会保持启用状态以避免设计更改的成本,并且可以被改装者和黑客用来控制设备和/或访问额外功能。
由于其高度复杂性,调试端口在微处理器 (CPU) 和微控制器 (MCU) 中几乎是通用的。 这些将在下面讨论。
硬件调试端口
- IC 上无处不在的 JTAG 端口
- 原始 Xbox 上的低引脚数调试端口,供模组制作者使用
- 串行线调试 (SWD),在 Arm Cortex-M 微控制器上无处不在
- 后台调试模式接口 (BDM)
- 编程和调试接口
- Nexus 调试
排除微处理器上的错误
微处理器是非常复杂的设备,内部通常包含超过十亿个晶体管,有时甚至超过一万亿个。
消除微控制器上的错误
微控制器通常比主流 CPU 小,但现在已经发展到片上系统 (SoC) 领域,MCU 几乎可以成为最终用途应用板上xxx保留的复杂芯片(还有专门用于专用电气的额外芯片 电平转换和增强型 ESD 保护等功能)。
SoC MCU 通常将内部闪存作为程序存储,也可能包含内部基于 EEPROM 的配置熔丝,其正确配置对于 MCU 在正确的操作模式下加电至关重要; 调试端口可能是初始配置时钟树或在制造后加载xxx个软件程序的xxx方法。
USB 设备固件升级
自 2010 年左右以来,大量 MCU 现在都在出厂 ROM 中集成了具有设备固件升级 (DFU) 的 USB 外设。 此类 MCU 对不想投资于访问 JTAG 等专用调试端口所需的硬件工具的爱好者很有吸引力。

这些设备被设计成不易变砖。 通过将特殊引脚保持在活动状态,可以轻松恢复错误的固件加载,这会导致芯片使用其内部工厂 ROM 启动,从而通过其内置 USB 控制器提供编程接口。 DFU 可以被视为一种在软件而非硬件中实现的调试端口形式。 然而,这在很大程度上破坏了专用硬件调试端口的调试功能,因为调试软件本身就很脆弱,而调试软件也实现了您的调试接口——但前提是功能正常。