皆さん こんにちは。
こちらのサイトでは Raspberry Pi Pico(通称ラズピコ)に関する情報やプログラムを紹介していく予定です。
ラズピコを2つ用意して、そのうちの1つをデバッグ用のプロープとすればラズピコのソフトウェア開発環境をつくることができます。
デバッグ用のプローブはPicoprobeと呼ばれています。
今回は開発環境の構築について説明します。
開発環境
以下の通りです。
ホストPC :
Windows10
開発ボード(ターゲット) :
Raspberry Pi Pico 1個
デバッガー(Picoprobe):
Raspberry Pi Pico 1個
USBケーブル :
USB A-MicroB 2本
( AコネクタはPC側を想定していてラズピコ側がMicroBコネクタです )
デバッガー (Software) :
Visual Studio Code (VSCode)
その他 ブレッドボード、ジャンパーワイヤー等
トライしてみようと思われる方は秋月電子等でご購入ください。
ラズピコとは
ラズピコは Raspberry Pi Pico を省略した呼び方で正式名称ではありません。
ただ冗長になるのでこちらのサイトでは「ラズピコ」と呼ぶことにします。
ラズピコは Raspberry Pi財団が独自に開発したRaspberry Piシリーズでは初めての「マイコン」と呼ばれる部類のデバイスを使ったボードです。
最高133MHzのクロックで動作するARM Cortex M0+デュアルコアのRP2040 というマイクロコントローラーを実装しています。
C/C++及びMicroPythonでの開発が可能ですが、ここでは主に C/C++ の記事を紹介していく予定です。
RP2040はデュアルコアでRTOSを使うことが可能でUSBの機能もマイコン内部に持っています。
それからPIO(プログラマブルIO)というI/Oの操作に特化したコアも持っています。
もちろん、一般的なペリフェラルのUART, SPI, I2C, PWM, RTC, ADC, GPIOなどの機能も持っています。
メモリー:
SRAM : 264KB です。
フラッシュはRP2040から見ると外付けになり、ラズピコでは2MByteの部品が実装されています。
それからラズピコはLinuxが動くボードではないので、その点はご注意ください。
ドキュメント
ラズピコのドキュメントはこちらのDocumentsの部分にリンクが貼られています。
いろいろと読みごたえがありそうです。
まずは目を通していきたいですね。
ブロック図
ブロック図を以下に示します。
デバッグ用の信号は SWD です。GNDを除けば信号線は2本なので接続が容易です。
UARTの信号はデバッグ用のインターフェースとしては不要ですが、UARTの通信をPicoprobeを介してPCで確認することができるので図のように接続しておくと便利です。
PicoprobeがUSB-シリアル通信機能の役割を担ってくれます。

接続
ピン配置、信号、接続はそれぞれ以下の通りになります。
ピン配置
ピン番号は以下の画像を参考にしてください。

信号の接続
信号の接続は以下の通りです。
色:次の姿図の配線の色を示しています。
| 信号 | Picoprobe | ラズピコ | 色 |
|---|---|---|---|
| GND | 3 | 3 | 黒色 |
| SWCLK | 4 | D1 | 水色 |
| SWDIO | 5 | D3 | 紫色 |
| UART0 RX | 6 | 2 | 橙色 |
| UART0 TX | 7 | 1 | 黄色 |
接続の姿図
接続した様子を画像にしてみました。
USBケーブルを2本使う構成にします。
左がデバッガーのPicoprobe、右がターゲットのラズピコです。

ソフトウェア
以下の3種類のソフトウェアをインストールしておきます。
・Visual Studio Code (VSCode) ダウンロードサイトはこちら
・Zadig ダウンロードサイトはこちら
・pico-setup-windows v0.3.4 ダウンロードサイドはこちら
(注意)
pico-setup-windowsは本記事の執筆時点ですでに v0.3.5のバージョンがありますが、picoprobeに対応していないようです。
picoprobeを使った開発を行う場合、v0.3.4をお使いください(2022年12月時点での情報です)
セットアップ
まず pico-setup-windows v0.3.4 をインストールします。
私はOneDriveを使っていないので、そうならないように以下のフォルダにインストールしました。
インストールには少し時間がかかります。
C:\Users\m3925\Documents\Pico
m3925 の部分はユーザー名です。
このフォルダに簡単にたどり着くようにショートカットを作成しておくと便利です。
上記フォルダに Visual Studio Code for Pico のショートカットができます。
Picoの開発には、このショートカットから VSCodeを起動するようにしてください。
試しに一度このショートカットからVSCodeを起動して、そのまま終了してみてください。
op.batを編集する
C:\Users\m3925\Documents\Picoのフォルダに以下の内容で op.bat というファイルを新規作成、編集、保存してください。
cd tools\openocd-picoprobe\scripts
openocd.exe -f interface/picoprobe.cfg -f target/rp2040.cfg -s tcl
Picoprobeをデバッガーとして使うためにOpenOCDをバックグラウンドで動作させておく必要があります。
VSCode上から動かす方法がわからなかったので、VSCodeを起動する前に上記のバッチファイルでOpenOCDを動作させます。
次に Pico\tools\openocd-picoprobe にある libusb-1.0.dll , oepnocd.exe を その下の scriptsフォルダにコピーしておきます。
それではバッチファイルが正しく動作するか確認してみましょう。
Picoのフォルダに Developer Command Prompt for Pico のショートカットがあるので起動します。

コマンドプロンプトが起動するので、op と入力して Enter します。

こんな感じで OpenOCD が動いていれば成功です。 Ctrl + C を押した後、 yキー Enter でバッチジョブを終了し、ウィンドウ右上の×を押してコマンドプロンプトを閉じておきます。
Pico Project Generator
Picoフォルダに Pico Project Generator というショートカットがあるので起動します。
これはVSCodeでPico用のプロジェクトを作成してくれる便利なツールです。
Project Name: picoUartConsloe (一番上の赤枠)
Console Options は Console over UART(デフォルト設定のまま)であること
IDE Options
Create VSCode project にチェックを入れる
Debugger: PicoProbe を選択する
そしてOKボタンを押します。

もうひとつ別に cmake のウィンドウが出るので、少し待って処理が終わってからOKボタンを押します。
そして Pico Project Generator の右下 Quitボタンを押して終了します。
VSCodeを起動する
Visual Studio Code for Pico のショートカットを起動しVSCodeを立ち上げます。
File – Open Folder から先ほど作成したプロジェクトを指定します。
フォルダを辿って行き、私の場合は以下を指定しました。
C:\Users\m3925\Documents\Pico\pico-project-generator\picoUartConsole
以下のウィンドウが出たら、左側の Yes, Itrust the authors を選択します。
(このフォルダを信頼して良いか?というような意味だと思います)

次に下のステータスバーにある No kit Selected をクリックし GCC 10.3.1 arm-none-eabi を選択します。
これはビルドツールの選択になります。

続いて左下から歯車アイコンを選択し、settings を選択します。
次に画面上部の検索ボックスに cmake configure environment と入力し、Cmake:Configure Environmentの
Item に PICO_SD_PATH
Value に SDKのパスを入力します。
私の環境では C:\Users\m3925\Documents\Pico\pico-sdk を入力しました。

続いて検索ボックスに cmake generator と入力し、 Cmake Generator に NMake Makefiles を入力します。

ここで一度 Run してみます。
メニューの Run – Start Debugging を選択し検索ボックスが出たら picoUartConsole を選択します。
以下、GDBがスタートできないというエラーウィンドウが出ますが正常です。
Cancelボタンを押して閉じておきます。

VSCode関連ファイルのコピー
一度VSCodeを終了します。
次にC:\Users\m3925\Documents\Pico\pico-examples\.vscode にある settings.json を
C:\Users\m3925\Documents\Pico\pico-project-generator\picoUartConsole\.vscode にコピーします。
またC:\Users\m3925\Documents\Pico\pico-examples\.vscode にある launch-remote-openocd.json を launch.json にリネーム(改名)します。
リネームした launch.jsonを C:\Users\m3925\Documents\Pico\pico-project-generator\picoUartConsole\.vscode にコピーします。
それから私の場合はコンパイラーのパスが違うと言われるので、c_cpp_properties.json の “compilerPath” を以下のように編集しました。
“compilerPath”: “C:/Program Files (x86)/GNU Arm Embedded Toolchain/10 2021.10/bin/arm-none-eabi-gcc.exe”,
arm-none-eabi-gcc.exe をエクスプローラーで検索して指定しておくと良さそうです。
(ここのパスが違っていてもビルドは通りますけれど)
Picoprobeのインストール
C:\Users\m3925\Documents\Pico\picoprobe\build に picoprobe.uf2 というファイルがあります。
これがPicoprobeに書き込むファイルになります。
PicoprobeのBOOTSELボタンを押しながらUSBケーブルでPCとつなぎ、ボタンから指を離します。
そうするとPicoprobeがドライブとして認識されるので picoprobe.uf2 をドラッグ&ドロップします。
こちらの環境では Eドライブとして認識されました。

簡単にプログラムをボードに書き込みができるので便利です。
zadigでドライバーを設定する
インストールしておいた zadig を起動し、Options – List All Devices を選択します。
リスト(コンボボックス)から Picoprobe (Interface 2)を選択し、libsb-win32(v1.2.6.0)を選択します。
そしてその下の大きなボタンを押してドライバーをインストールします。
(大きなボタンは環境によって “Install Driver” とか “Reinstall Driver” と表示されます)

デバイスドライバーでは以下のように確認できました。

OpenOCD, VSCodeを起動する
VSCodeを起動する前に、OpenOCDを動作させておきます。
Picoのフォルダに Developer Command Prompt for Pico のショートカットがあるので起動します。

コマンドプロンプトが起動するので、op と入力して Enter します。

こんな感じで OpenOCD が動いていれば成功で、そのままにしておきます。
次にVisual Studio Code for Pico のショートカットを起動しVSCodeを立ち上げます。
先ほどコピーした launch.json を編集します。
gdbPath の行を削除し、gdbTargetの値を “your-openocd:3333” から “localhost:3333” に変更し Ctrl + s で保存します。
デバッグしてみる
それでは接続を確認して問題がなければデバッグを開始します。
Run – Start Debugging を選択します。
私の環境では以下の通り、無事にデバッグ環境が動作しました。

皆さまの環境ではうまく動きましたか。
ひとつの記事にまとめたかったので長くなってしまいました。
お疲れさまでした。
以下は参考にさせて頂いたサイトです(ありがとうございます)
うまく動かない場合には、こちらのサイトの記事と併せてご確認ください。