2023年3月30日木曜日

Raspberry Pi Debug Probe を使ったデバッグ環境の構築

Raspberry Pi Debug Probe を購入したので、使い方のメモを残しておきます。

今回はスイッチサイエンスで購入した Raspberry Pi Debug Probe を使用して Raspberry Pi Pico のデバッグをJTAGで行う手順をまとめます。なお、個人用の備忘録のため必要最低限の項目のみ書いておこうと思います。

スイッチサイエンス
「Raspberry Pi デバッグプローブ — スイッチサイエンス」
https://www.switch-science.com/products/8708?variant=42505487450310

公式サイト
「Raspberry Pi Documentation - Raspberry Pi Debug Probe」
https://www.raspberrypi.com/documentation/microcontrollers/debug-probe.html

開発環境
「Arduino IDE 2.0.4」
https://www.arduino.cc/en/software

実行環境
Windows 11 バージョン 22H2

1.Raspberry Pi Pico と Debug Probe の接続


Raspberry Pi Pico の「SWD」端子と Debug Probe の「D(Debug)」端子を接続する。今回は「U(UART)」端子はケーブルは刺さっていますが何も接続していません。また、Raspberry Pi Picoを紫色の基板に刺していますが、基板の機能は使用していないので、なくても問題ありません。

2.Arduino の設定


ボードのインストール
[基本設定]の[追加のボードマネージャ]の以下のURLを追加する。
https://github.com/earlephilhower/arduino-pico/releases/download/global/package_rp2040_index.json


ボードマネージャを開き「Raspberry Pi Pico/RP2040 by Earle F.Philhower, III」をインストールする。

Lチカのプロジェクトを作成し、ボード「Raspberry Pi Pico/RP2040」から「Raspberry Pi Pico」を選択する。

3.アップロードの設定


[ツール]の[Upload Meyjod: "Default(UF2)"]から[Picoprobe(CMSIS-DAP)]を選択する。


4.プログラムのアップロード


Arduino IDE の書き込みボタンを押し、アップロードします。

5.デバッグの実行


ブレークポイントを設定し、「デバッグの開始」ボタンを押します。 しかし、以下のエラーが発生しデバッグできません。

調べてみたところ、以下にそれらしい記事がありました。
Debugging in Arduino IDE 2.0 with PicoProbe (Raspberry Pi Debug Probe/OpenOCD/CMSIS-DAP) · earlephilhower/arduino-pico · Discussion #1299

これによると、デバッグの設定ファイル「picoprobe_cmsis_dap.tcl」が使用されるべきところ「picoprobe.tcl」が使用されているため、デバッグできないとのこと。boards.txt を修正すると良いらしいので修正を試みましたが上手くいかなかったので、「picoprobe.tcl」の内容を「picoprobe_cmsis_dap.tcl」の内容に置き換えました。

picoprobe.tcl 変更前:
source [find interface/picoprobe.cfg]
source [find target/rp2040.cfg]

picoprobe.tcl 変更後:
source [find interface/cmsis-dap.cfg]
adapter speed 5000
source [find target/rp2040.cfg]

自分の環境では「picoprobe.tcl」はここにありました。
C:\Users\(ユーザー名)\AppData\Local\Arduino15\packages\rp2040\hardware\rp2040\3.1.0\lib\picoprobe.tcl

Arduinoを起動しデバッグを実行します。

これでデバッグが出来るようになりました。意図した通りブレークポイントで停止しています。
今回は、デバッグ設定ファイルを書き換えて動くようにしましたが、もっと良い方法があるのかもしれません。また、Debug Probe にはUARTを使用したデバッグメッセージの表示機能も付いていますが今回は利用していません。今度チャレンジしてみようと思います。

では・・・

0 件のコメント:

コメントを投稿

Raspberry Pi 3 Model A+ で広告ブロックサーバーを作る(その2)

前回作成した 広告ブロックサーバー の稼働状況をAmbientにアップロードするスクリプトを書いたのでメモを残しておきます。