RP2040のArduino開発でデバッガーを使う【Windows編】

Raspberry Pi/電子工作
スポンサーリンク

RP2040ボード(Raspberry Pi Picoなど)をRaspberry Pi Debug Probe(デバッグプローブ)を使ってArduino IDE 2系(※2.x.x)でデバッグするためのセットアップ手順と簡単な使い方を紹介したいと思います。

本記事はWindows版 Arduino IDE 2系 Raspberry Pi Pico/RP2040ボード(earlephilhower版)を対象にしています。

参考URL:

Raspberry Pi Documentation - Raspberry Pi Debug Probe
The official documentation for Raspberry Pi computers and microcontrollers

Raspberry Pi Debug Probe(以降、デバッガー)とRaspberry Pi Pico(RP2040ボード)

配線について

デバッガー(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 Wの例

SWDにピンをつけずにスルーホール用テストワイヤー(TP-200)で配線してみました。
SWDにピンをつけると邪魔くさくなることもあるかと思いますので、代替案として参考にしてみてください。

TP-200(秋月電子)

テストワイヤーにオレンジがなかったので代わりに白ワイヤーを使っています。

Seeed Studio XIAO RP2040の例

拡張ボードを使うとSWDでデバッグできます。
配線は画像を参考にしてください。

コネクタ – メスソケットで配線しています

Arduino IDEデバッガーの設定ファイルについて

正式な設定方法が分からなかったため、本記事ではRP2040のデバッグ時に使用される設定ファイルを入れ替えるという方法をとることにします。

設定ファイルの場所(Raspberry Pi Pico/RP2040ボード(earlephilhower版) バージョン3.1.1の場合)

C:\Users\ユーザ名\AppData\Local\Arduino15\packages\rp2040\hardware\rp2040\3.1.1\lib
※ドライブ名、ユーザ名、ボードバージョン等はご使用の環境に置き換えてください。

ファイル「picoprobe.tcl」と「picoprobe_cmsis_dap.tcl」のバックアップを取ります。
以下のようにエクスプローラーで同一フォルダ内にコピーを作成すればOKです。

ファイル「picoprobe.tcl」を削除します。

ファイル「picoprobe_cmsis_dap – コピー.tcl」を「picoprobe.tcl」にリネームします。

スケッチ書き込みについて

デバッグ対象のRP2040ボード(例: Raspberry Pi Pico)にはデバッガーを通じてスケッチを書き込みます。

Upload Methodは「Picoprobe (CMSIS-DAP)」を選択します。
ポートはデバッガーの接続ポート(COM*)を選択します。

書き込み先のRP2040ボードも給電のためUSBに接続しておきます。
※USBでの通信はしません。

書き込みに成功すると「出力」タブに赤字(画像参照)のように表示されます。

デバッグについて

デバッグ用コードの埋め込み

こちらの環境にてデバッガーの処理が先走ってデバッグが正常に動作しない現象が見受けられました。
この現象が発生した場合はsetup関数の直後にdelayを挟むよう次のようなデバッグコードを入れるとよいかと思います。

#define __DEBUG__

void setup() {
#ifdef __DEBUG__
  delay(500);
#endif

この例ではdelayの時間(setup開始までのインターバル)を500msとしています。

デバッグコードを無効にするには#define __DEBUG__をコメントアウトします。

// #define __DEBUG__

void setup() {
#ifdef __DEBUG__
  delay(500);
#endif

デバッグの開始

「デバッグの開始」アイコン(画像の赤枠参照)をクリックします。

デバッガーの操作

デバッグ中は最下エリアが画像のようにオレンジになります。

行番号の左をクリックするとブレークポイントを設定できます。

デバッガーは画像赤枠のアイコン群で操作できます。
アイコンは左から次のような機能があります。

継続次のブレークポイントまでスケッチを実行する
ブレークポイントが設定されていない場合は停止/再開
ステップオーバー選択された命令だけ実行しプログラムを停止する
ステップイン命令が関数を呼び出している場合、関数内部の命令をワンステップごとに実行する
ステップアウト呼び出し元の命令まで実行する
再起動リセットしてスケッチの最初から実行する
停止デバッグを停止する

デバッグの動きが悪い場合

DAP init failedなどエラーが発生してデバッグが開始されないなどデバッグがうまく動かない場合、デバッガーとデバッグ対象のRP2040ボードの電源を再投入し、Arduino IDEも再起動してデバッグを開始してみてください。

関連記事

当ブログのマイコン記事です。ぜひご覧ください。

この記事を書いた人
あろっち

元ITエンジニア
エンジニア時代は大手企業などでSE・プログラマを経験してきました。

当ブログでは、経験や日々の暮らしの中で、興味があること、役に立ちそうなこと、気になったことを発信していきます。

IT関係(技術的な内容もあります) / スマホ・PC / ガジェット / 生活に役立ちそうなこと ... etc

あろっちをフォローする
Raspberry Pi/電子工作ITWindows
あろっちをフォローする
あろしーど

コメント

タイトルとURLをコピーしました