intent

intent的blog

🚴自行车骑的最远的全栈工程师
github

基於Rust的ESP32環境搭建

安裝 Rust#

參考Rust 安裝 / 更新 / 打包

切換 Rust 到 nightly#

rustup install nightly
rustup default nightly

安裝 ESP32 工具#

Rust 開發 ESP32 有兩種方式

  • 使用std庫進行開發
  • 使用core庫(no_std)進行裸機開發

ldproxy#

使用 Rust 標準庫 std 進行構建應用時,必須安裝的

cargo install ldproxy

espflash#

用於 ESP 設備燒錄的工具

# cargo-espflash用於交叉編譯和燒錄
cargo install cargo-espflash
cargo install espflash

espmonitor#

esp32 和 esp8266 串行監控

# cargo-espmonitor用於esp32和esp8266串行監控
cargo install cargo-espmonitor
cargo install espmonitor

僅針對 RISC-V 目標#

要為基於RISC-V架構的樂鑫芯片構建 Rust 應用時,請執行以下步驟:

  1. 安裝nightly工具鏈和rust-src組件
rustup toolchain install nightly --component rust-src
rustup default nightly
  1. 設置目標
  • 對於no_std裸機應用,運行
# 針對ESP32-C2和ESP32-C3
rustup target add riscv32imc-unknown-none-elf
# 針對ESP32-C6和ESP32-M2
rustup target add riscv32imac-unknown-none-elf

創建新項目#

安裝 cargo-generate:

cargo install cargo-generate

安裝了上面的工具就可以使用對應的模板生成項目了,其中有兩個模板:

  1. esp-template裸機no_std項目模板
  2. esp-idf-template支持std的模板

可以先把兩個模板 clone 到本地,以後創建模板就不用去 github 下載了:

mkdir ~/.espressif
cd ~/.espressif
git clone https://github.com/esp-rs/esp-template
git clone https://github.com/esp-rs/esp-idf-template.git

然後根據模板創建項目,比如使用esp-idf-template模板創建一個項目:

cargo generate ~/.espressif/esp-idf-template/

create espidf project

配置項目#

打開.cargo/config.toml並添加下面幾行到[env]section 的底部。保持其他內容不變。

cd xxx
vi .cargo/config.toml
[env]
ESP_IDF_TOOLS_INSTALL_DIR = { value = "global" }

運行項目#

# 交叉編譯項目
cargo build --release
# 交叉編譯並運行項目
cargo run --release

cargo run

檢查硬件#

如果運行出問題參考檢查硬件

模擬仿真#

官網#

https://wokwi.com/,wokwi 是一個在線模擬仿真的網頁端。

要想本地寫代碼,網頁模擬可以先安裝:

cargo install wokwi-server
  1. 創建新項目
  2. 記下網頁 URL 的 id,

image

  1. 然後本地輸入
# 編譯
cargo build --release
# 運行
wokwi-server -c esp32c3 -i 網頁端的id target/riscv32imac-esp-espidf/release/espidf-demo

教程#

參考#

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。