Raspberry Pi 调试器
关于 Debug Probe
在 GitHub 上修改

Raspberry Pi Debug Probe是一款USB设备,提供通用异步收发设备串行端口和标准Arm Serial Wire Debug(SWD)接口。该Probe专为简单、无焊料、即插即用的调试而设计。它具有以下特点:
-
USB 至 ARM Serial Wire Debug (SWD) port
-
USB 至 UART 桥接器
-
兼容 CMSIS-DAP标准
-
可与 OpenOCD和其他支持 CMSIS-DAP 的工具配合使用
-
开源、易于升级的固件
Note
|
有关Raspberry Pi三针debug连接器的更多信息,请参阅 规格。 |
这使得在缺少GPIO标头的Windows、macOS和Linux等平台上使用Raspberry PiPico可以轻松地直接连接到Pico的串行通用异步收发设备或SWD端口。
Debug Probe
probe在3.3V标称I/O电压下工作。
Debug Probe随附一根USB电源线和三根调试线:
-
三针 JST-SH 连接器转 3 针 JST-SH 连接器电缆
-
三针 JST-SH 连接器转 0.1 英寸接头(母头)
-
三针 JST-SH 连接器转 0.1 英寸接头(公头)
两条0.1英寸的接头电缆-用于面包板(公头)或直接连接到带有接头引脚(母头)的板-颜色如下:
- 橙色
-
TX/SC(Probe输出)
- 黑色
-
GND
- 黄色
-
RX/SD(输入到Probe或I/O)
虽然带有三引脚JST-SH连接器的电缆旨在与 standard three-pin connector 一起使用,但较新的Raspberry Pi板用于SWD调试端口和通用异步收发设备连接器。
调试Probe有五个LED,一个红色LED指示电源,还有四个活动指示灯LED

Note
|
OpenOCD在目标连接时打开两个DAP LED,并在调用 DAP_DISCONNECT 时关闭它们。
|
入门指南
在 GitHub 上修改
根据您的设置,有几种方法可以将 Debug Probe 连接到 Pico系列设备。下面,我们将 Debug Probe 连接到树莓派PicoH,它具有用于SWD的较新的三引脚JST-SH连接器。
按照以下方式连接:
-
Debug Probe "D" 端口与 Pico H SWD JST-SH 连接器连接
-
Debug Probe "U" 端口,三针 JST-SH 连接器连接至 0.1 英寸接头(公头):
-
Debug Probe
RX
连接到 Pico HTX
引脚 -
Debug Probe
TX
连接到 Pico HRX
引脚 -
Debug Probe
GND
连接到 Pico HGND
引脚
-
Note
|
如果您有非H Pico或Pico W(没有JST-SH连接器),您仍然可以将其连接到 Debug Probe 。将公连接器焊接到板上的 SWCLK 、GND 和 SWDIO 接头引脚上。使用替代的3针JST-SH连接器连接到 Debug Probe 随附的0.1英寸接头(母)电缆,连接到 Debug Probe "D"端口。分别将Pico或PicoW上的 SWCLK 、GND 和 SWDIO 连接到 Debug Probe 上的 SC 、GND 和 SD 引脚。
|
安装工具
在 GitHub 上修改
要使用 Debug Probe,请安装以下工具。
安装OpenOCD
您需要安装OpenOCD。
要安装OpenOCD,请在终端中运行以下命令:
$ sudo apt install openocd
要运行OpenOCD,请在终端中使用 openocd
命令。
在macOS上安装OpenOCD
首先,安装 Homebrew 包管理器:
$ /bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install.sh)"
要在macOS上安装OpenOCD,请运行以下命令:
$ brew install openocd
要运行OpenOCD,请在终端中使用 openocd
命令。
安装GDB
我们还需要安装GNU调试器(GDB)。
MS Windows
GDB 可作为 Pico-setup-for-Windows-installer的一部分提供。它也包含在 Arm GNU 工具链中。
关于手动安装的其他信息可以在我们 Getting Started with Raspberry Pi Pico 书的第9章和附录A中找到。
Note
|
不建议在Windows上手动安装GDB。 |
串口调试 (SWD)
在 GitHub 上修改
串行线调试(SWD)是JTAG四针或五针调试接口标准的两针接口(https://developer.arm.com/documentation/101761/1-0/Debug-and-trace-interface/Serial-Wire-Debug-signals[SWDIO and SWCLK])替代品。
上传新程序到Pico
Pico Debug Probe 允许通过SWD端口和OpenOCD加载二进制文件:每次将新二进制文件推送到Pico时,您不需要拔掉BOOTSEL按钮再按住按钮。使用Debug Probe上传新文件无需额外操作。
构建二进制文件后:
$ sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program blink.elf verify reset exit"
Note
|
当您使用Debug Probe上传二进制文件时,使用的是文件的ELF版本,而不是您在拖放时使用的UF2文件。 |
使用SWD调试
它还允许您在服务器模式下使用 openocd
,并连接GDB,从而为您提供断点和“正确”调试。
Important
|
要允许调试,您必须将二进制文件构建为 $ cd ~/pico/pico-examples/ $ rm -rf build $ mkdir build $ cd build $ export PICO_SDK_PATH=../../pico-sdk $ cmake -DCMAKE_BUILD_TYPE=Debug .. $ cd blink $ make -j4 在调试构建中,当您在调试器下运行它时,您将获得更多信息,因为编译器使用这些信息构建您的程序以告诉GDB您的程序在做什么。 有关详细信息,请参阅 Raspberry Pi Pico 入门 的第6章。 |
要启动OpenOCD服务器,请运行以下命令:
$ sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000"
然后打开第二个终端窗口,切换到包含您构建的二进制文件的目录,并启动调试器以将其附加到OpenOCD服务器:
$ gdb blink.elf
> target remote localhost:3333
> monitor reset init
> continue
GDB并非适用于所有平台。根据您的操作系统和设备,使用以下替代方案之一而不是 gdb
:
-
在 非 Raspberry Pi 的 Linux 设备上,使用
gdb-multiarch
。 -
在 macOS 设备上,使用
arm-none-eabi-gdb
。
连接串口
在 GitHub 上修改
确保 Debug Probe 已连接到Raspberry PiPico的通用异步收发设备引脚。
Raspberry Pi Pico UART0的默认引脚如下:
Default UART0 | Physical Pin | GPIO Pin |
---|---|---|
GND |
3 |
N/A |
UART0_TX |
1 |
GP0 |
UART0_RX |
2 |
GP1 |
连接后,树莓派Pico的通用异步收发设备上的流量将通过 Debug Probe 中继到您的计算机,并作为CDC通用异步收发设备公开。在树莓派上,这将显示为 /dev/ttyACM0
;在其他平台上,此串行端口将显示不同(例如,在macOS上,它将显示为 /dev/cu.usbmodemXXXX
)。
如果您还没有这样做,您应该安装minicom:
$ sudo apt install minicom
并打开串口:
$ minicom -b 115200 -o -D /dev/ttyACM0
Tip
|
要退出 minicom ,请使用CTRL-A后按X。
|
要测试串行通信,您可以构建和上传 “Hello World” 示例应用程序。
将目录更改为 pico-examples
树内的 hello_world
目录,并运行 make
。之后,您可以使用 openocd
将其上传到您的Raspberry PiPico。有关构建 hello_serial
示例程序的完整走查,请参阅 Getting started with Raspberry Pi Pico 的第4章。
$ cd pico-examples
$ mkdir build
$ cd build
$ export PICO_SDK_PATH=../../pico-sdk
$ cmake ..
$ cd hello_world/serial
$ make -j4
$ sudo openocd -f interface/cmsis-dap.cfg -f target/rp2040.cfg -c "adapter speed 5000" -c "program hello_serial.elf verify reset exit"
$ minicom -b 115200 -o -D /dev/ttyACM0
打开 minicom
时,您应该会看到 "Hello, world!" 打印到控制台。
对于支持它的终端程序,USB串行通用异步收发设备的描述在USB设备描述中公布。

此描述中的唯一序列号意味着在Windows上,您的COM端口编号对于每个设备是“固定的”,并允许您编写 udev
规则以将命名设备节点与特定 Debug Probe 相关联。
在Debug Probe上更新固件
在 GitHub 上修改
Debug Probe 的固件可作为Raspberry Pi分发的UF2文件获得。
Debug Probe固件的最新版本是2.2版。如果您运行的是旧版本,或者您不小心覆盖了Debug Probe上的固件,您可以在 the debugprobe GitHub repository 中找到固件的最新版本。
从最新版本下载 debugprobe.uf2
。
捏住,取下Debug Probe外壳的顶部。
当您将Debug Probe插入计算机以挂载名为“RPI-RP2”的卷时,按住BOOTSEL按钮。
将 debugprobe.uf2
复制到“RPI-RP2”卷上。文件完成复制到设备后,该卷将自动卸载。
您的Debug Probe将重新启动,现在运行Debug Probe固件的更新版本。它现在已准备好进行调试。
原理图
在 GitHub 上修改
Debug Probe 的原理图和机械图可供选择:
-
Schematics (PDF)
-
Mechanical Diagram (PDF)
原理图上显示的测试点(TP)如下图所示。
