mcpField
R
raspberry-pi-pico2

raspberry-pi-pico2

github.com/sammcj开发16783 次安装1 天前更新
代码仓库

关于 raspberry-pi-pico2

面向 Raspberry Pi Pico 2(RP2350)开发及 Raspberry Pi Debug Probe 使用的参考技能,涵盖 SDK 构建配置、刷写和调试流程,供嵌入式开发者查阅。

主要功能

  1. 01RP2350 硬件与板卡说明
  2. 02SDK 和 CMake 构建配置
  3. 03SWD 与 UART 接线指南
  4. 04OpenOCD 和 GDB 调试流程
  5. 05常见构建及硬件问题

适用场景

  1. 01选择 Pico 2 板卡和构建目标
  2. 02连接 Debug Probe
  3. 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.md
pico2-hardware.md
sdk-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_wrp2040
Pico 2-DPICO_BOARD=pico2rp2350-arm-s
Pico 2 W-DPICO_BOARD=pico2_wrp2350-arm-s
Pico 2 RISC-V-DPICO_BOARD=pico2 -DPICO_PLATFORM=rp2350-riscvrp2350-riscv
Debug Probe 接线(SWD)
Debug Probe 的“D”引脚导线颜色Pico 2 SWD 焊盘
SCOrangeSWCLK
GNDBlackGND
SDYellowSWDIO
Debug Probe 接线(UART)
Debug Probe 的“U”引脚导线颜色Pico 2 引脚GPIO
TXOrangePin 2GP1 (RX)
RXYellowPin 1GP0 (TX)
GNDBlackPin 3GND

请注意交叉连接:探针 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 文件。

易踩问题

以下是最常见的错误和容易忽略的行为。请特别留意。

  1. SDK 默认使用 Pico 1。 必须显式传入 -DPICO_BOARD=pico2 才能针对 RP2350 构建。如果忘记设置,构建结果会针对 RP2040,无法在 Pico 2 上运行。

  2. 使用 Raspberry Pi 分支的 OpenOCD。 上游 OpenOCD(0.12.0)缺少完整的 RP2350 支持。请从 https://github.com/raspberrypi/openocd.git 克隆 rpi-common 分支。

  3. 目标配置错误会导致连接失败。 在 Pico 2 上使用 rp2040.cfg 会静默失败。请始终确保目标配置与芯片匹配。

  4. SWD 使用 .elf,BOOTSEL 使用 .uf2。 这两种格式分别用于不同的烧录方式。不要尝试通过 OpenOCD/SWD 烧录 .uf2。

  5. 有意义的调试需要 Debug 构建。 使用 cmake 时始终传入 -DCMAKE_BUILD_TYPE=Debug。Release 构建会优化掉变量状态并重排代码,导致断点不可靠。

  6. RISC-V 模式没有 FPU。 硬件浮点单元仅在 Cortex-M33 上可用。RISC-V 模式使用软件浮点,对于大量使用浮点的代码来说速度会慢很多。

  7. RISC-V 需要干净的构建目录。 在 ARM 和 RISC-V 之间切换时,请删除构建目录并重新运行 cmake。直接在现有目录中切换不起作用。

  8. 调试 RISC-V 前必须先选择模式。 RP2350 默认启动到 Cortex-M33。要调试 RISC-V,请执行:picotool reboot -u -c riscv,然后使用 OpenOCD 并设置 set USE_CORE { rv0 rv1 }。

  9. Debug Probe 不为目标设备供电。 Pico 2 必须通过自身的 USB 或 VSYS 供电。SWD 接口不提供电源。

  10. 无线型号的 LED 引脚不同。 不带无线功能的 Pico 2 使用 GP25 作为板载 LED 引脚。Pico 2 W 通过 CYW43439 无线芯片使用 WL_GPIO0。代码必须采用条件判断。

  11. 必须使用 Git 子模块。 pico-sdk 需要运行 git submodule update --init 来拉取 tinyusb、cyw43-driver、lwip、btstack 和 mbedtls。缺少子模块会导致难以理解的构建失败。

  12. OTP 操作不可逆。 写入 OTP 位是永久性的。安全启动配置错误(在没有启动密钥且禁用 PICOBOOT 的情况下设置 SECURE_BOOT_ENABLE)会导致设备永久损坏。

  13. 无线 SPI 引脚共享。 在 Pico 2 W 上,向无线芯片执行 SPI 事务期间,VSYS ADC 读取和 CYW43439 IRQ 检查会被阻止。

  14. 先连接 GND。 如果 Pico 2 由独立电源供电,请在连接任何信号线之前,先连接目标设备和 Debug Probe 之间的 GND。电压差可能损坏探针。

  15. macOS:OpenOCD 需要 hidapi 和 libusb。 通过 brew install hidapi libusb 安装。如果 OpenOCD 找不到探针,请检查是否有其他进程(VS Code、另一个 OpenOCD 实例)占用 USB 设备。

  16. 多个调试探针。 如果连接了多个 CMSIS-DAP 设备,请在 OpenOCD 配置中指定序列号:adapter serial <serial_number>。

评论

支持 Markdown