RP2040ボード(Raspberry Pi Picoなど)をRaspberry Pi Debug Probe(デバッグプローブ)を使ってArduino IDE 2系(※2.x.x)でCMSIS-DAPでデバッグするためのセットアップ手順と簡単な使い方を紹介したいと思います。
本記事はMac版 Arduino IDE 2系 Raspberry Pi Pico/RP2040ボード(Arduino-Pico)を対象にしています。
Mac版 Arduino for VSCodeのデバッグ方法は次の記事を参考にしてください。
Windowsの場合は次の記事を参考にしてください。
参考URL:
Raspberry Pi Debug Probe(以降、デバッガー)とRaspberry Pi Pico(RP2040ボード)
Arduino IDEデバッガーが使用できるRaspberry Pi Pico/RP2040ボード(Arduino-Pico)のバージョンについて
Macの場合Raspberry Pi Pico/RP2040ボード(Arduino-Pico) バージョン3.7.0よりデバッガーが使用できるようになりました。
これ以前のバージョンでデバッガーが使えないのでご注意ください。
配線について
デバッガー(Dコネクタ CMSIS-DAP
)とRP2040ボードはSWD(Serial Wire Debug)
で接続します。
Raspberry Pi Picoの例
Raspberry Pi Picoをデバッグ対象とする場合の配線
Raspberry Pi Pico Hの例
Raspberry Pi Pico HはSWDがコネクタなので接続しやすくデバッグに向いていますね。
Raspberry Pi Pico WHの例
Raspberry Pi Pico H同様SWDがコネクタなのでコネクタ-コネクタケーブルで接続します。
Raspberry Pi Pico Wの例
SWDにピンをつけずにスルーホール用テストワイヤー(TP-200)で配線してみました。
SWDにピンをつけると邪魔くさくなることもあるかと思いますので、代替案として参考にしてみてください。
TP-200(秋月電子)
テストワイヤーにオレンジがなかったので代わりに白ワイヤーを使っています。
Seeed Studio XIAO RP2040の例
拡張ボードを使うとSWDでデバッグできます。
配線は画像を参考にしてください。
スケッチ書き込みについて
デバッグ対象のRP2040ボード(例: Raspberry Pi Pico)にはデバッガーを通じてスケッチを書き込みます。
Upload Methodは「Picoprobe (CMSIS-DAP)」を選択します。
ポートはデバッガーの接続ポート(/dev/cu.usbmodem*)を選択します。
書き込み先のRP2040ボードも給電のためUSBに接続しておきます。
※USBでの通信はしません。
書き込みに成功すると「出力」タブに赤字(画像参照)のように表示されます。
デバッグについて
デバッグ用コードの埋め込み
こちらの環境にてデバッガーの処理が先走ってデバッグが正常に開始しない現象が見受けられました。
この現象が発生した場合はsetup関数の直後にdelayを挟むよう次のようなデバッグコードを入れるとよいかと思います。
#define __DEBUG__
void setup() {
#ifdef __DEBUG__
delay(500);
#endif
この例ではdelayの時間(setup開始までのインターバル)を500msとしています。
500msでデバッグが正常に開始しない場合は1000msにするなど長めに設定してみてください。
デバッグコードを無効にするには#define __DEBUG__
をコメントアウトします。
// #define __DEBUG__
void setup() {
#ifdef __DEBUG__
delay(500);
#endif
デバッグの開始
「デバッグの開始」アイコン(画像の赤枠参照)をクリックします。
デバッガーの操作
デバッグ中は最下エリアが画像のようにオレンジになります。
行番号の左をクリックするとブレークポイントを設定できます。
デバッガーは画像赤枠のアイコン群で操作できます。
アイコンは左から次のような機能があります。
継続 | 次のブレークポイントまでスケッチを実行する ブレークポイントが設定されていない場合は停止/再開 |
ステップオーバー | 選択された命令だけ実行しプログラムを停止する |
ステップイン | 命令が関数を呼び出している場合、関数内部の命令をワンステップごとに実行する |
ステップアウト | 呼び出し元の命令まで実行する |
再起動 | リセットしてスケッチの最初から実行する |
停止 | デバッグを停止する |
デバッグの動きが悪い場合
エラーが発生してデバッグが開始されないなどデバッグがうまく動かない場合、デバッガーとデバッグ対象のRP2040ボードの電源を再投入し、それでもうまく動かない場合はArduino IDEも再起動してデバッグを開始してみてください。
関連記事
当ブログのマイコン記事です。ぜひご覧ください。
コメント