Raspberry Pi PicoをRustで開発する
組み込みプログラミンとして新しく台頭してきているRustを用いて、RP2040を実行する方法を記述します。
このドキュメントのターゲット
- Rustで組み込みプログラミングを記述したい人
このドキュメントで触れないこと
- Rustの記述方法
環境構築
Rustのインストール
こちらからRustをインストールします。
クロスコンパイラのインストール
ターミナルからコマンドを実行し、ターゲットを追加します。
ターゲットとは、コンパイルされるプログラムが実行される予定のプラットフォームや環境を指します。
例えばターゲットがx86_64-pc-windows-msvc
の場合、x86_64アーキテクチャ用のWindows OS向けのMicrosoft Visual C++ ABIの環境で実行されることを想定してソースコードがコンパイルされます。
Rustでサポートされているターゲットの一覧はこちらで確認できます。
https://doc.rust-lang.org/nightly/rustc/platform-support.html
RP2040はARMのCortex-M0+なので、ターゲットはthumbv6m
を使用します。
こんな特殊な実行環境はデフォルトでは用意されていないので、コマンドを実行してインストールします。
rustup target install thumbv6m-none-eabi
ユーティリティのインストール
開発に便利なユーティリティをインストールします。
- flip-link: スタック・オーバーフローを最初のコアで検出することができます
- probe-rs: runを実行した際に、CMSIS_DAPを使用して実行されるようになります
- elf2uf2-rs: ビルド時に
elf
からuf2
が生成されるようになります
以下のコマンドを実行して上記のユーティリティをインストールします:
cargo install flip-link
cargo install probe-rs --features=cli --locked
cargo install elf2uf2-rs --locked