LoginSignup
3
2

Raspberry Pi Pico の VSCode による SWD デバッグ環境を Ubuntu PC 上に構築する

Last updated at Posted at 2024-01-21

Raspberry Pi Pico のSWDデバッグ環境を Ubuntu 上に作るときにいくつかハマったので備忘録

ハードウェア構成

Raspberry Pi Pico のSWDデバッグ環境を作るには2つのRaspberry Pi Pico を準備します。接続は次のように行います。(出典:https://datasheets.raspberrypi.com/pico/getting-started-with-pico-JP.pdf)

image.png

picoprobe の書き込み

上記のUSBケーブルがついている側がSWDデバッグ用の Raspberry Pi Pico になります。picoprobe というプログラムを書き込むことで使えるようになります。

picoprobe
https://github.com/raspberrypi/picoprobe/releases/latest/download/picoprobe.uf2

プログラムの書き方はBootSELボタンを押しながらUSBケーブルをつながるとストレージとして見えるので、そこでダウンロードしたpicoprobe.uf2ファイルを放り込むだけです。

Windows版ですが次のサイトが非常にわかりやすいです。Arduino IDEでのデバッグ環境の構築方法も書いてあります。

pico-sdkのダウンロード

pico-sdk をダウンロードします。詳しくはこちらのドキュメントを参照してください。

$ wget https://raw.githubusercontent.com/raspberrypi/pico-setup/master/pico_setup.sh
$ chmod +x pico_setup.sh
$ ./pico_setup.sh

ラズパイ出ない場合、セットアップの最後に raspi-config エラーと出ますが、ラズパイを使っているわけではないので問題ないです。

udev ルールの追加

picoprobe を認識させるために、/etc/udev/rules.d/99-picoprobe.rurles を作成し、次の内容を記述します。

# Picoprobe settins
ATTRS{idVendor}=="2e8a", ATTRS{idProduct}=="000c", MODE="0666"

念の為、idVendor と idProduct の値は、lsusb で確認をしてください。古い記事だと異なる値のときもあったようです。

$ lsusb
Bus 001 Device 004: ID 2e8a:000c Raspberry Pi Picoprobe (CMSIS-DAP)

VSCode プロジェクト”pico-examples”のセットアップ

pico-examples を VSCode のプロジェクトとしてセットアップします。~/pico/pico-examples に移動して、VSCode を起動します。

$ cd ~/pico/pico-examepls
$ code .

CMake Tools 拡張機能がインストールされていると、1〜2秒後に、VSCode ウインドウの右下にポップアップが表示されるので、「Yes」を押します。そのあと、コンパイラの選択画面が表示されるので、ドロップダウンメニューで「GCC for arm-none-eabi」を選択します。

image.png

ここで、VSCode を一旦閉じます。

VSCode によるデバッグ環境の設定

VSCode によるデバッグを行うために ~/pico/pico-examples に設定ファイルをコピーします。

$ cd ~/pico/pico-examples
$ mkdir .vscode
$ cp ide/vscode/launch-raspberrypi-swd.json .vscode/launch.json
$ cp ide/vscode/settings.json .vscode/settings.json

ここで、.vscode/launch.json ファイルを修正する必要があります。15行目の "raspberrypi-swd.cfg" を "cmsis-dap.cfg" に変更します。

launch.json
 14             "configFiles": [
 15                 // "interface/raspberrypi-swd.cfg",
 16                 "interface/cmsis-dap.cfg",
 17                 "target/rp2040.cfg"
 18             ],

あと、~/pico/openocd/tcl/interface/cmsis-dap.cfg も次のように変更します。

cmsis-dap.cfg
  1 # SPDX-License-Identifier: GPL-2.0-or-later
  2 
  3 #
  4 # ARM CMSIS-DAP compliant adapter
  5 #
  6 # http://www.keil.com/support/man/docs/dapdebug/
  7 #
  8 
  9 adapter driver cmsis-dap
 10 adapter speed 5000
 11 
 12 # Optionally specify the serial number of CMSIS-DAP usb device.
 13 # adapter serial 02200201E6661E601B98E3B9

VSCode によるデバッグ

これで、デバッグできる環境になりました。pico-examples フォルダでVSCode を立ち上げます。左のペインの一番下のCMakeセッティングでデバッグするサンプルを選択します。

image.png

設定が終わったら、左のペインの上から4つ目のデバッグセッティングを選択し、パラメータビューの上にある小さな三角形のデバッグ開始ボタンでデバッグを開始します。しばらくすると、main関数の直後で止まってくれます。あとは適当なところでブレイクポイントを設定してデバッグを行います。

image.png

環境設定のポイント

グダグダと書きましたが、今回はまったポイントは以下の3点です。

  1. /etc/udev/rules.d/99-picoprobe.rurles の idVendor と idProduct の値は、lsusb で確認
  2. launch.json の raspberrypi-swd.cfg を cmsis-dap.cfg に変更
  3. cmsis-dap.cfg に "adapter speed 5000" を追加

いろいろと環境が変わっているようなので、今後も注意が必要です。

上記3点に注意して、次のドキュメントを参考に環境セットアップをしてみてください。

Raspberry Pi Pico をセットアップしよう

3
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
2