近年來,RUST成為了嵌入式編程的熱門語言,本文通過實現(1)LED閃燈,以及(2)在console(終端)實現“Hello Rust World”兩項功能來完成實操的入門。
深入學習可以參考RUST語言圣經,以及嵌入式RUST之書
一、前期準備
Arduino板是基于AVR控制器的一類板卡總稱。為了用RUST對Arduino板卡進行編程,我們需要安裝特定的build工具,默認已經安裝rustup和XCode tools的前提下,需要通過下列命令行進行安裝nightly compiler:
rustup toolchain install nightly
然后安裝avr相關的工具:
brew tap osx-cross/avr
brew install avr-gcc avrdude
avr-gcc是一個基于gcc的用于AVR控制器的編譯器,avrdude是燒錄(flashing)程序用的。
針對RUST編程,需要通過下列命令安裝ravedude(基于avedude,所以得先安裝avedude之后再安裝ravedude),即RUST版的avedude
cargo +stable install ravedude
以上工作完成后,編程環境就搭建好了。
二、RUST編程
基于arduino的基本crate是avr-hal,所以需要利用avr-hal創建工程工作區:
mkdir helloworld
cd helloworld
cargo install cargo-generate
cargo generate --git https://github.com/Rahix/avr-hal-template.git
之后在console會彈出對話框,對項目名稱,arduino板卡進行選擇(我的Mega 2560),回車確認!
以上工作完成之后,就會在helloworld文件夾里創建默認的工程文件:
可以進入main.rs進行查看相應代碼:
以上代碼實現了LED閃燈操作。
在終端運行
cargo run
即可在Arduino板卡上看到LED閃爍。
將相應地方增加以下兩行代碼即可實現在每次LED閃爍時打印一條“Hello, Rust world!”
let mut serial = arduino_hal::default_serial!(dp, pins, 57600);ufmt::uwriteln!(&mut serial, "Hello, Rust world!").unwrap();
最終效果如下:
在終端運行
cargo run
即可實現LED閃爍,并在終端顯示“Hello, Rust world!”