本文详细记录了如何利用一块树莓派 Pico 作为 picoprobe 调试器,对另一块 Pico 进行调试的完整流程。开发环境采用 CLion,工程文件基于 RT-Thread BSP。整个过程虽然不算复杂,但几个关键环节容易遇到问题,这里将全流程梳理清晰,方便大家快速上手。
准备 IDE 环境
首先介绍 IDE 环境。我使用的是 CLion 2023.2.2,它自带了 MinGW 和 GDB 等基础工具,但 OpenOCD 需要额外安装。需要注意:针对 Pico 必须使用专用的 OpenOCD 版本,最稳妥的方式是从 Raspberry Pi 官方源码自行编译。
好在我的 OpenOCD 目录中已包含 openocd_rp2040.exe,在 CLion 中直接选择该文件即可。

(早期配置时目录路径不够严谨,后续调整未做修正,各位可自动忽略)
接下来需要添加一个运行/调试配置。

该面板的配置文件需要手动编写:
source [find interface/picoprobe.cfg]
source [find target/rp2040.cfg]
然后在对应的 interface 和 target 目录下放置好配置文件。整体文件结构如下:
├── interface
│ └── picoprobe.cfg ---- OpenOCD 配置文件(用于 picoprobe 接口)
├── openocd.exe ---- 专门编译的 OpenOCD 可执行文件
├── target
│ └── rp2040.cfg ---- OpenOCD 配置文件(针对 RP2040 目标)
└── zadig-2.7.exe ---- 用于安装 USB 驱动的工具
到这里,CLion 侧的准备工作就完成了。
picoprobe 固件烧录
picoprobe.uf2 固件已包含在资源包中。按住 Pico 的 BOOTSEL 键,连接 USB 至电脑,将 .uf2 文件拖入出现的磁盘即可,操作非常简单。
Windows 用户需注意:还需要使用 zadig-2.7.exe 安装 picoprobe 的 USB 驱动,否则无法正常连接。
Linux 下可以通过 dmesg 确认加载是否成功:
dmesg | grep usb

注:每次加载成功后,需要为 USB 设备设置权限:
sudo chmod -R 777 /dev/bus/usb/
完成这些步骤后,picoprobe 部分就准备就绪了。
开发板接线
使用一块 Pico 作为 picoprobe 调试另一块 Pico 时,接线方式请直接参考下图。

将 SWD 和 UART 接口都连接好,后续调试会更加方便。
将 USB 接上电脑,就可以愉快地开始调试了。

最后还有一点需要注意:要在 CLion 中顺利开发 RT-Thread BSP 工程,需要先在 env 工具中执行以下命令,生成对应的 CMake 工程:
scons --target=cmake
