用途:为 ESP32 上的 no-std Rust 固件开发提供指导,围绕 ESP-RS 生态与 Embassy 异步框架组织。主要能力:给出 esp-hal、esp-rtos、esp-radio、esp-alloc、esp-println 等依赖配置;Embassy 任务定义与 spawn、Channel/Signal 任务间通信;GPIO 与 ADC(含校准与采样预热)等硬件模式;通过 esp-radio 的 wifi::new() 连接、embassy-net 配置 DHCPv4 并等待链路与 IP;深睡眠与 RTC 快速内存保持、WiFi 优雅关闭;模块化错误处理、软件复位;esp-generate 脚手架、序列日志与常见构建/运行错误排查。用法要点:Edition 2024、MSRV 1.88,二进制位于 src/bin/main.rs 并在 Cargo.toml 声明 [[bin]];入口使用 #[esp_rtos::main] 且返回 -> !;先 espup install 并 source $HOME/export-esp.sh,复制 .env.dist 为 .env 填写 WIFI_SSID、WIFI_PSK、MQTT_HOSTNAME、MQTT_USERNAME、MQTT_PASSWORD;构建用 ./run.sh 或 cargo run --release,建议对 dev profile 设 opt-level = "s"。生成项目示例:esp-generate --chip esp32s3 -o unstable-hal -o embassy -o alloc -o wifi -o log my-project。限制:环境变量经 env!() 在编译期读取,修改后需完整重建;esp-rtos 0.3.0 的 start() 需同时传定时器与软件中断;esp-radio 0.18.0 移除了 esp_radio::init(),直接调用 wifi::new();smoltcp 改为直接依赖;堆分配器改用 #[esp_hal::ram(reclaimed)]。GPIO、定时器与特性名等 API 变动较频繁,升级前应查看发行说明。资料未提供具体硬件型号限制、性能数据与价格信息。
esp32-rust-embedded
编程与开发
更新于 10-16 04:53