Seit der Einführung des Raspberry Pi Pico verwenden ihn Entwickler gerne, um Programme zu debuggen, die auf einem anderen Raspberry Pi laufen. Inspiriert von dem Trend bringt Rasbperry Pi eine eigene Debug Probe für 12 US-Dollar auf den Markt. Sie ist für Arm-basierte Mikrocontroller vorgesehen.
Raspberry Pis Debug Probe bietet eine Brücke von USB zu Serial Wire Debug (SWD), einen generischen USB-Seriell-Adapter sowie Leitungen zum Anschluss an einen Host-Computer und an das zu debuggende Gerät. Obwohl die Raspberry Pi Debug Probe für den Pi Pico und andere »RP2040«-basierte Geräte entwickelt wurde, können Entwickler sie zum Debuggen jedes Arm-basierten Mikrocontrollers verwenden, der einen SWD-Anschluss mit »3V3 I/O« bietet.
Die Raspberry Pi Debug Probe ist 32 mm x 22 mm groß und bietet lötfreies Plug-and-Play-Debugging. Sie verfügt sowohl über eine serielle Debug-Schnittstelle für den Prozessor als auch über eine UART-Schnittstelle nach Industriestandard. Beide Schnittstellen verwenden den 3-Pin-Debug-Anschluss des Raspberry Pi.
Die Probe wurde entwickelt, um das Debuggen und Programmieren von Raspberry Pi Pico und Raspberry Pis eigener MCU RP2040 mit einer Reihe von Host-Plattformen einschließlich Windows, Mac und typischen Linux-Computern zu erleichtern, bei denen kein GPIO-Header vorhanden ist. Zwar ist die Debug Probe für Raspberry-Pi-Produkte konzipiert, bietet aber Standard-UART- und CMSIS-DAP-Schnittstellen über USB. So kann sie auch zum Debuggen von Arm-basierten Mikrocontrollern verwendet werden. Sie arbeitet mit OpenOCD und anderen Tools, die CMSIS-DAP unterstützen. Die Debug Probe basiert auf der Pico Hardware und führt die Open-Source-Software »Raspberry Pi Picoprobe« aus. Sie lässt sich auf die gleiche Weise wie die Raspberry-Pi-Pico-Firmware aktualisieren.
Alle modernen Arm-basierten Mikrocontroller, einschließlich des RP2040, implementieren die CoreSight-Debug-Architektur von Arm. Jeder Prozessorkern, wie der Cortex-M0+, der im RP2040 verwendet wird, bietet einen Access Port (AP). Entwickler können ihn verwenden um Breakpoints zu setzen, die Werte von Prozessorregistern zu beobachten oder auf Speicher und Peripheriegeräte über die Busschnittstelle des Prozessors zuzugreifen.
Der Mikrocontroller selbst bietet einen Debug Port (DP), der extern mit Pins auf dem Gehäuse und intern mit jedem AP im System verbunden ist. Beispielsweise stellt der RP2040 seinen DP über einen Serial Wire Debug (SWD)-Port zur Verfügung: Durch das SWD-Protokoll über diesen Port kann ein Host-Computer den AP jedes Kerns steuern, um ein auf dem Kern laufendes Programm zu debuggen.
Eine Debug-Sonde bildet eine Brücke zwischen USB und dem SWD-Protokoll. Obwohl das nicht unbedingt erforderlich ist, wenn der Host-Computer ein Raspberry Pi ist, ist es viel bequemer, die Verbindung über USB herzustellen. Verwendet man einen PC oder Mac, ist USB die einzige Option.
Die Raspberry Pi Debug Probe stellt die SWD-Signale auf einem dreipoligen JST-Stecker bereit. Er entspricht der Raspberry-Pi-Debug-Connector-Spezifikation. Arm hat das Protokoll für die Kommunikation über USB zwischen einem Host-Computer und einer Debug-Sonde standardisiert. Die Raspberry Pi Debug Probe entspricht diesem »CMSIS-DAP«-Standard und funktioniert daher sofort mit vielen bestehenden Debug-Software-Plattformen, einschließlich »OpenOCD«.
Häufig möchten Entwickler eine serielle Konsolenverbindung zwischen einem Mikrocontroller und einem Host-Computer herstellen. So ist es möglich mit der auf dem Target laufenden Software zu interagieren und Logging- und andere Diagnosedaten abzurufen. Ist der Host-Computer ein Raspberry Pi, kann man eine der UART-Peripherien verwenden, die über den GPIO-Header zugänglich sind. Verwendet man jedoch einen PC oder Mac, ist es sehr unwahrscheinlich, dass man Zugang zu einer eingebauten seriellen Schnittstelle hat.
Die Raspberry Pi Debug Probe funktioniert wie ein serieller USB-Adapter, über denselben USB-Anschluss wie die SWD-Bridge. Er stellt die UART-Signale auf einem zweiten dreipoligen JST-Stecker zur Verfügung, der wiederum der Connector-Spezifikation entspricht. Für Benutzer, die keine Debug-Funktion benötigen, ist die Raspberry Pi Debug Probe aufgrund ihres niedrigen Preises eine kostengünstige Alternative zu seriellen USB-Adaptern.