作者:陸向陽

Raspberry Pi Debug Probe的電路板(圖片來源:樹莓派官網)
2021年1月樹莓派官方推出獨家微控制器晶片RP2040,並用該晶片推出Raspberry Pi Pico(簡稱RPi Pico)控制板。事隔兩年後,樹莓派官方再次用RP2040晶片來實現新硬體,於2023年2月推出Raspberry Pi Debug Probe,或可譯為樹莓派除錯探針、探測器,建議售價12美元(在此打一下預防針,官方每次都標榜低價,但透過配銷、經銷、零售通路上架後,價格都不是這樣)。
為何樹莓派官方會推出這種新硬體?答案是官方對RPi Pico控制板進行除錯時,作法上就是用一片RPi Pico控制板來對另一片RPi Pico控制板除錯。既然如此,乾脆把另一片RPi Pico控制板改做成除錯專用的硬體,如此就成了RPi除錯探測器。
不過,RPi除錯探測器不是只能給RPi Pico控制板除錯,只要是Arm架構的微控制器晶片所構成的電路板都可以用它來除錯。
低階程式開發必然要用硬體除錯器
所謂除錯,其實就是給程式設一些執行中斷點,以便讓程式執行到中斷點時能暫停一下,然後檢查程式變數的值是否如預期的維持或變化?檢查暫存器或記憶體內的值是否如預期的維持或變化?或者也可以讓程式一行一行慢慢執行來觀察變化,稱為單步除錯,或者是一行一行回退執行,或回退執行到前一個中斷點等,以便更詳細觀察執行歷程。一旦發現執行不如預期,就可以進一步追蹤、檢討,然後修正原本撰寫的程式。
如果是撰寫高階程式語言,例如Python,那本來就有軟體的除錯器可用(執行環境內建除錯功能),不需要硬體的除錯探測器。或者,開發者撰寫的是在作業系統上執行的C語言程式,那也是可以使用純軟體除錯器(例如Linux上的gdb除錯器)。
但是,如果撰寫的是直接跑在硬體上的C語言,沒有作業系統層,也稱為Bare Metal(或稱裸機)運作模式,或者你就是在撰寫一套直接跑在硬體上的作業系統,那就沒有軟體除錯器可用,只能用硬體除錯探測器了。
依循CoreSight、CMSIS-DAP等標準
回到硬體的RPi除錯探測器,其實Arm對所有Arm核心的控制器電路都有設計名為CoreSight的除錯架構,每個控制器核心都有一個存取埠(Access Port, AP),透過對該埠的通訊傳輸,就可以對每個核心設置中斷點、單步執行、觀察暫存器值等。
而一個Arm控制晶片內可能不只一個核心,例如RP2040就有兩個Arm核心,所以有兩個AP,但整個晶片對外只有一個除錯埠(Debug Port, DP),兩個AP會匯集到同一個DP,讓除錯相關通訊透過DP進出。

除錯探測器左邊接個人電腦Host,右邊接要除錯的目標開發板Target(圖片來源:樹莓派官網)
USB埠到PC這一段路程走的是Arm制訂的CMSIS-DAP標準,然後電腦上要安裝OpenOCD(Open On-Chip Debugger)之類的除錯軟體,其他除錯軟體也是可以,只要該軟體也支援CMSIS-DAP標準。
另外,我們有時希望電腦端能夠用串列傳輸與目標電路板建立連線,如果電腦端是樹莓派,由於樹莓派本身有GPIO接腳,是可以用UART介面直接連接目標板來實現連線,但若是PC、Mac就沒有外露的GPIO接腳可用,這時若想讓電腦與目標板間建立串列傳輸連線,則可以透過RPi除錯探測器,探測器具有USB-to-UART的傳輸轉換功能,讓PC、Mac也能與目標板建立串列傳輸連線。
由此可知,即便使用者沒有在撰寫低階系統程式,也沒有其他使用除錯探測器的需要,也依然可以買RPi除錯探測器,即單純充當USB轉UART的轉接器來用,價格其實與真的只有USB轉UART功能的轉接器相差無幾。

除錯探測器完整配件內容(圖片來源:樹莓派官網)

蓋上殼蓋的RPi除錯探測器(圖片來源:樹莓派官網)

RPi除錯探測器(左)用灰色SWD線路連接目標板(右)的除錯埠,再用紅黑黃三線提供UART介面連接目標板,讓電腦與目標板建立起串列傳輸連線(圖片來源:樹莓派官網)
開發團隊分工
最後,RPi除錯探測器的專案推動者為James Adams,他也負責設計探測器的硬體電路;軟體方面則由Janathan Bell撰寫,其靈感啟發來自DapperMime專案;至於簡潔的塑膠機構外殼則由John Cowan-Hughes開發,外型藝術設計則為Jack Willis;生產製造的供應鏈主責者為Rose Nott;相關文件則由Alasdair Allan與Andrew Scheller負責編寫。
(責任編輯:謝嘉洵。)
- Hailo在樹莓派上實證LLM技術的語音識別 - 2025/04/18
- GTC 2025技術觀察:GR00T N1、Newton、BDX Blue - 2025/04/09
- DeepSeek真開放?假開放?MOF提供測度參考 - 2025/03/28
訂閱MakerPRO知識充電報
與40000位開發者一同掌握科技創新的技術資訊!