使用标准库(std
)
乐鑫提供了一个基于 C 的开发框架,称为 ESP-IDF。它支持(或将会支持)所有名称以 ESP32 开头的乐鑫芯片。注意,该框架 不 支持 ESP8266。
ESP-IDF 提供了一个功能强大的 newlib 环境,足以在其上构建 Rust 标准库(std
)。这就是在乐鑫设备上启用 std
支持的方法。
当前支持情况
只要是 ESP-IDF 框架支持的乐鑫产品,就支持 Rust std
开发。有关 ESP-IDF 的不同版本,以及乐鑫芯片支持的详细信息,请参阅此表格。
使用 std
时,可以访问 ESP-IDF 中存在的许多功能,包括线程、互斥锁和其他同步原语、集合、随机数生成、套接字等。
esp-rs
相关的 Crate
仓库 | 描述 |
---|---|
embedded-svc | 嵌入式服务的抽象 trait(WiFi 、Network 、Httpd 、Logging )。 |
esp-idf-svc | 用 esp-idf 驱动实现的 embedded-svc。 |
esp-idf-hal | 用 esp-idf 框架实现的 embedded-hal 和其他 trait。 |
esp-idf-sys | esp-idf 开发框架的 Rust 绑定(binding)。提供了对驱动、Wi-Fi 和其他功能的原始(unsafe )访问。 |
上述 crate 的相互依赖关系如下图所示。
graph TD; esp-idf-hal --> esp-idf-sys & embedded-svc esp-idf-svc --> esp-idf-sys & esp-idf-hal & embedded-svc
何时适合使用标准库(std
)
- 丰富的功能:如果你的嵌入式系统需要大量功能,例如支持网络协议、文件 I/O 或复杂的数据结构,使用宿主环境(hosted-environment)会是一个较好的方法。因为
std
库提供了丰富的功能,便于构建复杂的应用程序。 - 可移植性:
std
crate 提供了一组标准化的 API,可以跨不同平台和架构使用,使你能够更轻松地编写可移植和可重用的代码。 - 快速开发:
std
crate 提供了一组丰富的功能,可用于快速高效地构建应用程序,而无需过多担心底层细节。