Raspberry Pi Debug Probe
| ||
Overview
Introduction
Raspberry Pi Debug Probe is an official USB hardware debugger designed for Pico, an all-in-one design, with the features of solderless and plug-and-play, and can be connected to the debug interface of the target board via SWD interface.
Features
- RP2040 microcontroller chip designed by Raspberry Pi in the United Kingdom.
- Onboard Micro-USB port for connecting to PC or other boards.
- Onboard 3PIN SWD interface for connecting to the target board.
- Onboard 3PIN USB to UART bridge.
- Standard CMSIS-DAP interface, compatible with most ARM-based microcontrollers.
- Works with OpenOCD and other tools supporting CMSIS-DAP.
- Follows the Raspberry Pi 3PIN Debug Connector Specification.
- Comes with a high-quality transparent plastic case and connection cables.
- Open-source programs, are more convenient to upgrade the firmware.
Onboard Resource
Dimensions
User Guide
Install OpenOCD
Linux (and Raspberry Pi)
Download the Dependency Library
sudo apt install automake autoconf build-essential texinfo libtool libftdi-dev libusb-1.0-0-dev
Get and Compile
git clone https://github.com/raspberrypi/openocd.git --branch rp2040 --depth=1 --no-single-branch cd openocd ./bootstrap ./configure make -j4 sudo make install
Windows
- 1. As OpenOCD self-compilation is complicated in the windows environment, it is recommended to use the already compiled version.
- 2. Unzip and store in a relatively short directory, e.g. directly in the C drive.
Add Environment Variables
- 1. Click the menu, and search "environment variables".
- 2. Click "Edit the system environment variables":
- 3. Double-click the "Path" variable, and then enter the edit interface.
- 4. Add a new path.
- Create a new variable address.
- Enter the OpenOCD storage address.
- Click OK to save.
- 5. Click "OK" and save the change.
- 6. Reboot the computer.
Install GDB
Linux (and Raspberry Pi)
- 1. Install gdb-multiarch.
sudo apt install gdb-multiarch
Windows
- 1. If you have installed the related pico-sdk environment, you can skip this step as the GDB is included in Arm GNU Toolchain.
- 2. If you have not installed the related pico-sdk environment, it is recommended to install it with the official pico demo.
Program the Demo with Raspberry Pi Debug Probe
- With Pico Debug Probe, you can load the binaries via the SWD port and OpenOCD.
- You do not need to unplug and hold the BOOTSEL button every time you push a new binary to Pico.
- 1. Take RP2040 usage as an example, the commands for programming the demo:
sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program {your elf file name}.elf verify reset exit"
- 2. If there is a blink.elf file in your current file folder.
sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program blink.elf verify reset exit"
Debug the Demo with Raspberry Pi Debug Probe
Open OpenOCD Server
- You can let openocd be used in server mode and connect to GDB, thus providing you with breakpoints and "correct" debugging.
- 1. Here is also an example of debugging the rp2040 by entering the following command:
sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000"
- Take using PowerShell in windows as an example:
- 2. *If you start listening on the local 3333 port at this point, the OpenOCD server has been successfully turned on.
Use GDB Command Line
- This demo is set up based on pico-sdk, and pico-example was compiled.
- 1. Open PowerShell and enter the corresponding "build" file folder, take the blink demo as an example.
- 2. Open GBD and enter the following commands:
- If it is windows, you can input the following commands:
arm-none-eabi-gdb blink.elf
- If it is Linux, you can input the following commands:
gdb blink.elf
- 3. Input the following commands in order:
target remote localhost:3333 load monitor reset init continue
- You can see Pico executes blink, and LED blinks.
Use VSCode to Debug (Advanced)
- Please make sure that the #Open OpenOCD Server and the #Use GDB Command Line are running properly.
- Please make sure the Pico compilation environment is set up normally.
- Please make sure your VSCode can install the following plug-in.
- 1. Cortex-Debug ()
- 2. Cmake-tools
- 3. C/C++
1. First, open the OpenOCD server:
2. Use VSC to open the pico-example file folder and open the blink demo.
3. Use F1 to input the following commands:
open 'launch.json'
4. Put the following content in after opening.
- If it is Windows, please input:
{ "version": "0.2.0", "configurations": [ { "name": "Pico Debug", "type":"cortex-debug", "cwd": "${workspaceRoot}", "executable": "${command:cmake.launchTargetPath}", "request": "launch", "servertype": "external", // This may need to be arm-none-eabi-gdb depending on your system "gdbPath" : "gdb", // Connect to an already running OpenOCD instance "gdbTarget": "localhost:3333", "svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd", "runToMain": true, // Work around for stopping at main on restart "postRestartCommands": [ "break main", "continue" ] } ] }
- If it is a Linux system, please input:
{ "version": "0.2.0", "configurations": [ { "name": "Pico Debug", "type":"cortex-debug", "cwd": "${workspaceRoot}", "executable": "${command:cmake.launchTargetPath}", "request": "launch", "servertype": "external", // This may need to be arm-none-eabi-gdb depending on your system "gdbPath" : "arm-none-eabi-gdb", // Connect to an already running OpenOCD instance "gdbTarget": "localhost:3333", "svdFile": "${env:PICO_SDK_PATH}/src/rp2040/hardware_regs/rp2040.svd", "runToMain": true, // Work around for stopping at main on restart "postRestartCommands": [ "break main", "continue" ] } ] }
- The difference between them is the gdb calls are different.
5. Enter the run and debug interface shortcut key Ctrl + Shift + D.
- ①Select Pico Debug as the debugger.
- ②Select CMake as the debug mode.
- ③Start to debug the key, the shortcut key F5.
- ④Choose the debug object as blink.
6. Click debug key to enter the debug mode, the shortcut key is F5.
7. The Debug Tools show:
- ①Restart the device.
- ②Continue to run the demo.
- ③Execute.
- ④Enter the function to run.
- ⑤Jumping out of function runs.
- ⑥Stop debugging.
8. Continue to run the demo, press F5 and you can see Pico runs the blink demo.
Resource
Firmware
Datasheet
- Raspberry Pi Debug Probe Mechanical Drawing
- Raspberry Pi Debug Probe Schematic Drawing
- Debug Connector Specification
Software
OpenOCD
Pico-SDK Package (Windows)
Support
Technical Support
If you need technical support or have any feedback/review, please click the Submit Now button to submit a ticket, Our support team will check and reply to you within 1 to 2 working days. Please be patient as we make every effort to help you to resolve the issue.
Working Time: 9 AM - 6 PM GMT+8 (Monday to Friday)