必要なツールをインストールする
サポートする開発環境
本ビルドガイドでは次の3つの環境をサポートします。
- macOS
- Windows
- Ubuntu(Linux)
Windows Subsystem for Linux はサポート対象外
本ビルドガイドでは Windows Subsystem for Linux(WSL) をサポートしません。
WSL の最新版である WSL2 は仮想マシン内の環境であり、ハードウェアを扱わねばならないファームウェア開発には不向きだからです。
Windows でファームウェアを開発する場合は WSL 内ではなく、Windows 上に開発環境を構築してください。
Rust をインストールする
Rust 公式のインストール手順(日本語版)に従ってインストールしてください。
もし既にインストール済みの場合は、以下のコマンドで最新版にアップデートしておきましょう。
$ rustup update
thumbv6m-none-eabi
ターゲットをインストールする
開発環境のコンピュータと、ファームウェアの実行環境の Raspberry Pi Pico には実行できるバイナリに違いがあります。 たとえば、開発環境のコンピュータには OS がありますが、Raspberry Pi Pico にはありません。また、CPU アーキテクチャも異なるでしょう。
Rust のツールチェーンをデフォルトの設定でインストールしただけの状態では、開発環境と同じ環境向けのバイナリしかビルドできません。
Raspberry Pi Pico 向けのバイナリをビルドできるようにするには次のコマンドを実行します。
$ rustup target add thumbv6m-none-eabi
probe-run をインストールする
ビルドしたバイナリを Raspberry Pi Pico 上で実行するためには、後述のデバッグアダプタを通じて Raspberry Pi Pico にバイナリを転送しなければなりません。
probe-run はこのバイナリの転送と実行をするためのツールです。Raspberry Pi Pico のデバッグ出力を開発環境のコンピュータに表示する機能もあります。
probe-run 公式のインストール手順に従ってインストールしてください。
flip-link をインストールする
Raspberry Pi Pico のようなマイコンにはメモリ管理ユニット(MMU)がないため、無限再帰などでスタックオーバーフローを起こしてもそれになかなか気づけません。
flip-link はメモリ上のスタックの位置を工夫することでスタックオーバーフローに気づきやすくできるリンカーです。
flip-link 公式のインストール手順に従ってインストールしてください。
elf2uf2-rs をインストールする
elf2uf2-rs は ELF 形式のバイナリを UF2 形式に変換したり、UF2 形式のバイナリを Raspberry Pi Pico に書き込んだりできるツールです。
自作キーボードのファームウェア開発では使いませんが、後述のデバッグアダプタを作成する際に使います。
以下のコマンドを実行してインストールしてください。
$ cargo install elf2uf2-rs