はじめに
先日自作キーボードに入門しました。その次として、Raspberry Pi Pico向けにRustでキーボードFWを書きたい思っており、まずはRustでRaspberry Pi PicoをLチカしました。
Raspberry Pi Picoで組込みRust開発(開発環境構築編) - Qiitaにて手順が詳しい情報がありましたので、これを参考に実施しました。
やったこと
クロスビルド環境とツール準備*1
# Raspberry Pi Pico(Cortex M0)向けのターゲット追加 $ rustup target add thumbv6m-none-eabi # ELFからUF2形式への変換ツール $ cargo install elf2uf2-rs # メモリ配置変換ツール $ cargo install flip-link # テンプレートからRustのプロジェクトを生成するCargoサブコマンド $ cargo install cargo-generate
テンプレートのプロジェクト利用
# rp2040のテンプレート取得(main.rsにLチカのプログラム) $ cargo generate --git https://github.com/rp-rs/rp2040-project-template --branch main --name pico-blink $ cd pico-blink/ $ cargo build
ランナーの修正
elf2uf2-rsを利用するように修正します。
-runner = "probe-run --chip RP2040" -# runner = "elf2uf2-rs -d" +# runner = "probe-run --chip RP2040" +runner = "elf2uf2-rs -d"
プログラムの書き込み
BOOTSELボタンを押しながらPicoをPCへ接続すると「RPI-RP2」として認識されます。この状態で書き込みを行います。
$ cargo run Finished dev [optimized + debuginfo] target(s) in 0.03s Running `elf2uf2-rs -d target/thumbv6m-none-eabi/debug/rp2040-project-template` Found pico uf2 disk /media/yu2ta7ka/RPI-RP2 Transfering program to pico 30.50 KB / 30.50 KB [====================================] 100.00 % 110.87 KB/s
確認したこと
Raspberry Pi PicoにはRP2040というマイコンが搭載されています。このマイコン向けのドライバ群が下記になります。このリポジトリの隣に上記のRaspberry Pi Pico向けのテンプレートプロジェクトが用意されています。Raspberry Pi Pico in Rustをする場合、ここらへんを利用すれば良さそうです。
github.com
github.com
github.com
おわりに
便利にドライバも使い方も共有されており、簡単にここまでこれました。ありがとうございます。次はPicoにはんだ付けして、スイッチを認識させていきたいと思います。
*1:前提:Rust環境は構築済み