作者:陸向陽
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進出。
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除錯探測器的專案推動者為James Adams,他也負責設計探測器的硬體電路;軟體方面則由Janathan Bell撰寫,其靈感啟發來自DapperMime專案;至於簡潔的塑膠機構外殼則由John Cowan-Hughes開發,外型藝術設計則為Jack Willis;生產製造的供應鏈主責者為Rose Nott;相關文件則由Alasdair Allan與Andrew Scheller負責編寫。
(責任編輯:謝嘉洵。)
- 創客積木M5Stack加入LLM戰局 - 2024/11/29
- MLPerf大語言模型、生成式AI測項觀察 - 2024/11/27
- Sony強力加持!樹莓派發表專屬AI攝影機 - 2024/10/28