除错埠
除错埠(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].