调试端口
调试端口(Debug port)是电子系统或是集成电路中诊断用的接口,可以协助设计、器件制造、固件开发、bootstrapping、自动配置、调试以及在线刻录。一般来说,终端使用的功能不需用到调试端口,成品会隐藏调试端口或是使其无效。
在架构高可用性或是生命攸关系统中的调试端口,可能会在产品的集成验证中当作系统监视器,因此保留下来。在低价或是大量的电子产品中,有可能因为要避免设计变更而产生的成本,而保留调试端口,而黑客或改机者也常会透过调试端口而获取设备的额外机能。因此也有些网络安全的规范或是实务会要求移除产品的调试端口。
硬件调试端口的例子
编辑- UART
- 集成电路上的JTAG端口
- 原始Xbox上的LPC总线调试端口
- 串列调试(SWD),是ARM Cortex-M系列微处理器的共享接口。
- 背景调试模式接口(BDM)
- Atmel AVR的程序及调试接口
- Nexus debug
微控制器上的调试端口
编辑微控制器一般会比主流的中央处理器要小,不过更适合用在单片系统(SoC),有可能微控制器是电路板上仅存的少数复杂芯片之一。
SoC中的微控制器会使用内部的闪存来存储程序,也有可能有以EEPROM为基础的熔丝,存储MCU开机时进入运作模式需要的重要信号。调试端口可能是唯一初始配置定时器信号或是在生产后加载第一个软件的途径。
USB设备固件更新
编辑自从2010年起,有许多MCU集成了USB周边以及设备固件更新(DFU)功能[1]。这类MCU适合一些想接触MCU,但不想购买访问特定调试接口(JTAG)硬件工具的玩家。
这类设备有经过设计,不容易因为刻录不当而变成砖块无法使用。不良的固件更新可以透过送电状态下长按某个钮而清除,系统会用其内部默认的只读存储器中的程序重启 ,后续可以利用内置的USB控制器作为刻录接口。DFU可以视为是一种软件的调试端口,不过其调试能力比专门的硬件调试端口要弱很多,而且这有其脆弱的本质,调试接口是调试软件来实现,若软件无法正常工作,也就无法使用调试接口了。
相关条目
编辑参考资料
编辑- ^ AN10986: USB In-System Programming with the LPC1300 (Rev. 1) (PDF). nxp.com. NXP Semiconductors. 24 September 2010 [5 September 2020]. (原始内容存档 (PDF)于2024-12-04).