关于 raspberry-pi-pico2
面向 Raspberry Pi Pico 2(RP2350)开发及 Raspberry Pi Debug Probe 使用的参考技能,涵盖 SDK 构建配置、刷写和调试流程,供嵌入式开发者查阅。
主要功能
- 01RP2350 硬件与板卡说明
- 02SDK 和 CMake 构建配置
- 03SWD 与 UART 接线指南
- 04OpenOCD 和 GDB 调试流程
- 05常见构建及硬件问题
适用场景
- 01选择 Pico 2 板卡和构建目标
- 02连接 Debug Probe
- 03刷写并调试 RP2350 固件
安装
复制下面的命令,在终端中运行。
npx skills add https:/ / github.com/ sammcj/ agentic-coding --skill raspberry-pi-pico2安装后在 Claude Code 中输入/raspberry-pi-pico2确认已加载。
包含的文件
除 SKILL.md 外,安装时一起下载的参考资料和脚本。
references/debug-probe.mdpico2-hardware.mdsdk-toolchain.md详细介绍
Raspberry Pi Pico 2 和 Debug Probe
本技能介绍如何使用 Raspberry Pi Pico 2(RP2350)开发板和 Raspberry Pi Debug Probe 进行开发。内容包括硬件规格、SDK 设置、构建配置、调试工作流和常见问题。
参考文件
如需了解详细技术内容,请查阅以下文件。只需阅读与当前任务相关的文件:
references/pico2-hardware.md- RP2350 规格、RP2040 与 RP2350 对比、引脚布局、无线版本、安全功能、芯片变体references/debug-probe.md- Debug Probe 硬件、接线图、OpenOCD 设置、GDB 工作流、UART 串口、RTT、VS Code 集成、救援模式、故障排查references/sdk-toolchain.md- pico-sdk 设置、CMake 配置、ARM 与 RISC-V 构建、picotool 命令、MicroPython/CircuitPython、项目结构
快速参考
开发板选择(CMake)
| 开发板 | CMake 标志 | 平台 |
|---|---|---|
| Pico 1 | -DPICO_BOARD=pico(默认) | rp2040 |
| Pico 1 W | -DPICO_BOARD=pico_w | rp2040 |
| Pico 2 | -DPICO_BOARD=pico2 | rp2350-arm-s |
| Pico 2 W | -DPICO_BOARD=pico2_w | rp2350-arm-s |
| Pico 2 RISC-V | -DPICO_BOARD=pico2 -DPICO_PLATFORM=rp2350-riscv | rp2350-riscv |
Debug Probe 接线(SWD)
| Debug Probe 的“D”引脚 | 导线颜色 | Pico 2 SWD 焊盘 |
|---|---|---|
| SC | Orange | SWCLK |
| GND | Black | GND |
| SD | Yellow | SWDIO |
Debug Probe 接线(UART)
| Debug Probe 的“U”引脚 | 导线颜色 | Pico 2 引脚 | GPIO |
|---|---|---|---|
| TX | Orange | Pin 2 | GP1 (RX) |
| RX | Yellow | Pin 1 | GP0 (TX) |
| GND | Black | Pin 3 | GND |
请注意交叉连接:探针 TX 接 Pico RX,探针 RX 接 Pico TX。
OpenOCD 目标配置
| 目标 | 配置文件 |
|---|---|
| Pico 1(RP2040) | target/rp2040.cfg |
| Pico 2(RP2350) | target/rp2350.cfg |
| Pico 2 RISC-V | 使用 target/rp2350.cfg,并添加 -c "set USE_CORE { rv0 rv1 }" |
| 救援模式(RP2350) | 使用 target/rp2350.cfg,并添加 -c "set RESCUE 1" |
典型调试会话
# Terminal 1: OpenOCD
openocd -f interface/cmsis-dap.cfg -f target/rp2350.cfg -c "adapter speed 5000"
# Terminal 2: GDB
arm-none-eabi-gdb my_app.elf
(gdb) target remote localhost:3333
(gdb) monitor reset init
(gdb) load
(gdb) break main
(gdb) continue
通过 SWD 烧录
openocd -f interface/cmsis-dap.cfg -f target/rp2350.cfg \
-c "adapter speed 5000" \
-c "program my_app.elf verify reset exit"
通过 SWD 烧录时,请使用 .elf 文件,而不是 .uf2 文件。
易踩问题
以下是最常见的错误和容易忽略的行为。请特别留意。
-
SDK 默认使用 Pico 1。 必须显式传入
-DPICO_BOARD=pico2才能针对 RP2350 构建。如果忘记设置,构建结果会针对 RP2040,无法在 Pico 2 上运行。 -
使用 Raspberry Pi 分支的 OpenOCD。 上游 OpenOCD(0.12.0)缺少完整的 RP2350 支持。请从
https://github.com/raspberrypi/openocd.git克隆rpi-common分支。 -
目标配置错误会导致连接失败。 在 Pico 2 上使用
rp2040.cfg会静默失败。请始终确保目标配置与芯片匹配。 -
SWD 使用 .elf,BOOTSEL 使用 .uf2。 这两种格式分别用于不同的烧录方式。不要尝试通过 OpenOCD/SWD 烧录 .uf2。
-
有意义的调试需要 Debug 构建。 使用 cmake 时始终传入
-DCMAKE_BUILD_TYPE=Debug。Release 构建会优化掉变量状态并重排代码,导致断点不可靠。 -
RISC-V 模式没有 FPU。 硬件浮点单元仅在 Cortex-M33 上可用。RISC-V 模式使用软件浮点,对于大量使用浮点的代码来说速度会慢很多。
-
RISC-V 需要干净的构建目录。 在 ARM 和 RISC-V 之间切换时,请删除构建目录并重新运行 cmake。直接在现有目录中切换不起作用。
-
调试 RISC-V 前必须先选择模式。 RP2350 默认启动到 Cortex-M33。要调试 RISC-V,请执行:
picotool reboot -u -c riscv,然后使用 OpenOCD 并设置set USE_CORE { rv0 rv1 }。 -
Debug Probe 不为目标设备供电。 Pico 2 必须通过自身的 USB 或 VSYS 供电。SWD 接口不提供电源。
-
无线型号的 LED 引脚不同。 不带无线功能的 Pico 2 使用 GP25 作为板载 LED 引脚。Pico 2 W 通过 CYW43439 无线芯片使用 WL_GPIO0。代码必须采用条件判断。
-
必须使用 Git 子模块。 pico-sdk 需要运行
git submodule update --init来拉取 tinyusb、cyw43-driver、lwip、btstack 和 mbedtls。缺少子模块会导致难以理解的构建失败。 -
OTP 操作不可逆。 写入 OTP 位是永久性的。安全启动配置错误(在没有启动密钥且禁用 PICOBOOT 的情况下设置
SECURE_BOOT_ENABLE)会导致设备永久损坏。 -
无线 SPI 引脚共享。 在 Pico 2 W 上,向无线芯片执行 SPI 事务期间,VSYS ADC 读取和 CYW43439 IRQ 检查会被阻止。
-
先连接 GND。 如果 Pico 2 由独立电源供电,请在连接任何信号线之前,先连接目标设备和 Debug Probe 之间的 GND。电压差可能损坏探针。
-
macOS:OpenOCD 需要 hidapi 和 libusb。 通过
brew install hidapi libusb安装。如果 OpenOCD 找不到探针,请检查是否有其他进程(VS Code、另一个 OpenOCD 实例)占用 USB 设备。 -
多个调试探针。 如果连接了多个 CMSIS-DAP 设备,请在 OpenOCD 配置中指定序列号:
adapter serial <serial_number>。