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