RaspberryPi PicoのプログラムをC/C++で開発する

RaspberryPi Pico !

RaspberryPi Pico は、Arm Cortex-M0+ を2個積んだマイコンです。Linuxのような高機能なOSを必要とせず、マイクロコントローラが制御します。Boot後はRP2040の中のBootROMに従って動作します。基盤上の唯一のボタンを押しながら起動されればUSBメモリとして振る舞うプログラムが起動します。例えば、MicroPythonの実行実体であるuf2ファイルをコピー操作がそれですな。

※Pico開発に関する公式情報はこの辺にまとまっている。
https://www.raspberrypi.org/documentation/pico/getting-started/

で、ボタンを押さずに起動すると、フラッシュメモリからプログラムを呼ぶためのBootlodader(BootStage2)が起動して、一連のメモリ関連の初期化後SDKで書いたプログラムを起動します。uf2 ファイルは、このフラッシュメモリ側のLoderから起動されるプログラムの実体です。uf2 ファイルを作成するためには C/C++言語のビルド環境が必要なので、以下にMac用の手順をメモしておきます。

RaspberryPi Pico
Pico Pico ♫

といっても、実際にはRaspberry財団の公式ドキュメントに記載されているのでそれに従うだけです。(p.33 〜)
公式文書 https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf

 

コンパイル環境のインストール

私の場合、過去にESP32やら弄っていたので諸々古いARM開発環境の更新作業から実行しました。

brew update
brew upgrade
brew upgrade cmake
brew tap ArmMbed/homebrew-formulae
brew upgrade armmbed/formulae/arm-none-eabi-gcc

新規のMacなどにインストールする場合は upgrade ではなく install
getting-started-with-pico.pdf の p.33 〜 に記載されています。

brew install cmake
brew tap ArmMbed/homebrew-formulae
brew install arm-none-eabi-gcc

PICO-SDKのインストール

ここまでできたら、SDKのインストールに取り掛かります。SDKのインストール手順は getting-started-with-pico.pdf の p.6 〜 に手順が記載されています。ユーザーhomeにpicoを切るのが基本のようです。こういった手順は自身で確立するまではセオリー通りに。

cd ~/
mkdir pico
cd pico

公式のgitリポジトリから pico-sdkpico-examples をクローンします。

git clone -b master https://github.com/raspberrypi/pico-sdk.git
cd pico-sdk
git submodule update –init
cd ..
git clone -b master https://github.com/raspberrypi/pico-examples.git

サンプルのビルド環境を切ります。

cd pico-examples
mkdir build
cd build

で、環境変数PICO_SDK_PATHを設定してpico-sdkのMake

export PICO_SDK_PATH=../../pico-sdk
cmake ..

あとは個々のサンプルフォルダでMakeすればbuildフォルダー下の個々のサンプルフォルダにuf2ファイルが生成されるハズです。

cd blink
make

VisualStudio Codeの環境設定

ここまで確認できたら、VS Code も設定しちゃいます。

これもキチッと公式ドキュメントに記載されています。(p.33 〜)
公式文書 https://datasheets.raspberrypi.org/pico/getting-started-with-pico.pdf

CMakeを支援するVS Codeの拡張機能「CMake Tools」をインストールします。拡張子がC言語の場合、C言語の作成支援拡張機能もインストールするか聞いてくるのでそのままOKしてインストールします。

先程のpico-examplesのサンプルを色々と試したいので、pico-examplesフォルダーを開発の足場にすることにします。VS Codeでpico-examplesフォルダーを開き、直下に「.vscode」フォルダを作成。そのフォルダーの中に「settings.json」ファイルを新規作成します。

settings.json file
{
"cmake.environment":{"PICO_SDK_PATH":"../../pico-sdk"},
"C_Cpp.default.configurationProvider":"ms-vscode.cmake-tools"
}

VisualStudio Codeでビルド

VS Codeで拡張子Cのサンプルファイルを開き、[command+shift+p]を押下するなどしてコマンドパレットを開きます。コマンドパレットでは「CMake:Build」を選択実行します。
ここでコンパイラを聞かれたら「GCC for arm-none-eabi」を選択します。

これでコンソールにはビルドの情報がバ〜っと流れてビルド完了。先程と同様にbuildフォルダー下の個々のサンプルフォルダにuf2が出来上がっていたら完成!

VS Codeからビルドできるのは便利ですね。少し操作に慣れたら、デバッグの仕方もチェックしないとならんですね。その辺については、もう少しこの環境に慣れてから対応する予定です。これにて、C/C++開発環境のできあがり〜!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください