Raspberry Pi Microcontrollers
Raspberry Pi Pico Series
- Raspberry Pi Pico
- Dual Arm Cortex-M0+ with Armv6-M programming model, up to 133 MHz
- Raspberry Pi Pico 2
- Dual Arm Cortex-M33 with Armv8-M programming model, up to 150 MHz
Debugging
Using the Raspberry Pi Debug Probe
The Debug Probe is a RP2040 based USB-to-UART/SWD board for connecting the USB slot of a development machine to the SWD or UART pins of a target device.
Using A Pico To Debug Another Pico
A Pico can be used to debug another Pico (a.k.a. target device) by flashing it with the debugprobe binary and wiring to the target Pico as shown below.
From the debugger Pico to the target Pico,
- pin #4 (GP2) connects to pin SWCLK,
- pin #5 (GP3) connects to SWDIO,
- pin #6 (GP4, UART1 TX) connects to pin #2 (GP1, UART0 RX),
- pin #7 (GP5, UART1 RX) connects to pin #1 (GP0, UART0, TX).
The debugger Pico serves both as a USB-to-SWD and USB-to-UART bridge to the target device. The development machine, therefore, needs to be connected via USB only to the debugger Pico. Console output on the target Pico is relayed through the debugger. It is possible, though, to connect a second USB cable from the development machine to the target device for (simultaneous) direct access to the console output. This debugger setup works not just with Pico targets but with any microcontroller that supports the CMSIS-DAP protocol over SWD.
Software Tools for Debugging
Whether we use the Raspberry Pi Debug Probe or a spare Pico as debug probe, the software tools used for debugging are the same:
- openocd