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. 01Pico 2 のボードとビルドターゲットの選択
  2. 02Debug Probe の接続設定
  3. 03RP2350 ファームウェアの書き込みとデバッグ

インストール

コマンドをコピーしてターミナルで実行します。

$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 パッド
SCオレンジSWCLK
GND黒GND
SD黄SWDIO
Debug Probe の配線(UART)
Debug Probe の「U」ピンワイヤーの色Pico 2 のピンGPIO
TXオレンジピン 2GP1(RX)
RX黄ピン 1GP0(TX)
GND黒ピン 3GND

交差接続に注意してください。プローブの TX を Pico の RX に、プローブの RX を Pico の TX に接続します。

OpenOCD のターゲット設定
ターゲット設定ファイル
Pico 1(RP2040)target/rp2040.cfg
Pico 2(RP2350)target/rp2350.cfg
Pico 2 RISC-V-c "set USE_CORE { rv0 rv1 }" を指定した target/rp2350.cfg
レスキュー(RP2350)-c "set RESCUE 1" を指定した target/rp2350.cfg
一般的なデバッグセッション
# 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 で書き込む場合は、.uf2 ではなく .elf ファイルを使用してください。

注意点

よくある間違いや、分かりにくい動作をまとめています。よく注意してください。

  1. SDK のデフォルトは Pico 1 です。 RP2350 をターゲットにするには、-DPICO_BOARD=pico2 を明示的に渡す必要があります。指定を忘れると RP2040 向けにビルドされ、バイナリは Pico 2 では動作しません。

  2. Raspberry Pi のフォーク版 OpenOCD を使用してください。 上流版の OpenOCD(0.12.0)は、RP2350 を完全にはサポートしていません。ブランチ rpi-common を指定して https://github.com/raspberrypi/openocd.git をクローンしてください。

  3. ターゲット設定が間違っていると接続に失敗します。 Pico 2 で rp2040.cfg を使用すると、エラーが表示されずに失敗します。ターゲット設定は必ずチップに合わせてください。

  4. SWD では .elf、BOOTSEL では .uf2 を使用します。 これらは異なる書き込み方法で使う、別々の形式です。OpenOCD/SWD 経由で .uf2 を書き込もうとしないでください。

  5. 適切なデバッグにはデバッグビルドが必要です。 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 では、オンボード LED に GP25 を使用します。Pico 2 W では、CYW43439 ワイヤレスチップ経由で WL_GPIO0 を使用します。コードでは条件分岐が必要です。

  11. Git サブモジュールが必要です。 pico-sdk で tinyusb、cyw43-driver、lwip、btstack、mbedtls を取得するには、git submodule update --init が必要です。サブモジュールがないと、原因の分かりにくいビルドエラーが発生します。

  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> を指定してください。

コメント