Skip to main content

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

依存関係の記載