Diary/2021-5-4
Rust/Wio Terminal
基礎から学ぶ組み込みRustで,RustとWio Terminalに入門.
- 環境設定
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh source $HOME/.cargo/env rustup target add thumbv7em-none-eabihf sudo apt install git minicom libusb-1.0-0-dev libsdl2-dev libssl-dev cargo install cargo-generate cargo install hf2-cli cargo install cargo-hf2 echo 'ATTRS{idVendor}=="2886", ENV{ID_MM_DEVICE_IGNORE}="1"' | sudo tee /etc/udev/rules.d/99-seeed-boards.rules echo 'SUBSYSTEM=="usb", ATTRS{idVendor}=="2886", MODE="0666"' | sudo tee -a /etc/udev/rules.d/99-seeed-boards.rules echo 'SUBSYSTEM=="tty", ATTRS{idVendor}=="2886", MODE="0666"' | sudo tee -a /etc/udev/rules.d/99-seeed-boards.rules sudo udevadm control --reload-rules
- ブートローダーモード
2回,素早くリセットする.ユーザLED(青い方)がゆっくり点滅する.
- Lチカ
cargo generate --git https://github.com/tomoyuki-nakabayashi/wio-blink-template.git
で,src/main.rsを編集する.
loop { // TODO: ここにLチカのコードを書く delay.delay_ms(1_000u16); user_led.toggle(); }
ちなみに,vscodeのrust-analyzerが,
can't find crate for `test` can't find craterustc(E0463)
とかってエラーを出してたのだけど,.vscode/settings.jsonを用意して
{ "rust-analyzer.checkOnSave.allTargets": false, "rust-analyzer.checkOnSave.extraArgs": [ "--target", "thumbv7em-none-eabihf" ] }
と書いたらエラーがでなくなった.
(cf. https://github.com/rust-analyzer/rust-analyzer/issues/3801)
- wio_terminalクレートとatsamd-halクレートを使う
cargo generate --git https://github.com/tomoyuki-nakabayashi/wio-examples-template.git