开发方式总览
在乐鑫芯片上使用 Rust 开发,有以下两种方式:
- 使用
std
库,即标准库。 - 使用
core
库(no_std
),即裸机开发。
两种方式各有各的优缺点,因此需要根据项目需求选取。本章包含对两种开发方式的概述。
另请参阅 The Embedded Rust Book 中对不同运行时的比较。
GitHub 上的 esp-rs 组织 有多个仓库,与在乐鑫芯片上运行 Rust 相关。大多数所需的 crate 的源代码都托管在这里。
仓库命名约定
在 esp-rs 组织中,我们使用以下命名约定:
- 以
esp-
开头的仓库关注no_std
方式。例如esp-hal
no_std
在裸机上运行,因此esp-
代表乐鑫芯片
- 以
esp-idf-
开头的仓库关注std
方式。例如esp-idf-hal
std
在裸机之上,还需要一个额外的封装层,即esp-idf-
对乐鑫产品的支持
⚠️ 注意:
- ✅ - 此功能已实现或支持
- ⏳ - 此功能正在开发
- ❌ - 不支持此功能
- ⚠️ - 有一些支持,但该功能已停止开发
芯片 | std | no_std |
---|---|---|
ESP32 | ✅ | ✅ |
ESP32-C2 | ✅ | ✅ |
ESP32-C3 | ✅ | ✅ |
ESP32-C6 | ✅ | ✅ |
ESP32-S2 | ✅ | ✅ |
ESP32-S3 | ✅ | ✅ |
ESP32-H2 | ✅ | ✅ |
ESP8266 | ❌ | ⚠️ |
⚠️ 注意:ESP8266 系列的 Rust 支持非常有限,而且没有得到 Espressif 官方的正式支持。
在一定情况下支持的产品,在本书中称为“支持的乐鑫产品”。