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

教程#

参考#

加载中...
此文章数据所有权由区块链加密技术和智能合约保障仅归创作者所有。