分享下我的 Rust 系列博客: https://blog.opsnull.com/rust
另外 blog 还包含 Rust 嵌入式( ESP32S3 处理器)系列文章: https://blog.opsnull.com/rust-embedded/
Enjoy !
1
zeusho871 121 天前
esp32 的 rust 是官方提供的嘛?久了没看既然出这个了 api 都支持还是 想整个 web 配网的
|
2
geekard OP @zeusho871 ESP32 处理器架构分两种类型:RISC-V 和 Xtensa ,其中 RISC-V target 是 Rust 官方工具链 Tier2 支持级别,也即 Rust 官方直接支持的。Xtensa 的 Rust 编译工具链是 Tier3 级别,目前是 Espressif 自己 fork 的一个项目 esp-rs/rust: https://github.com/esp-rs/rust 。
其它 ESP32 官方 Rust 开发库,都在 https://github.com/esp-rs 开源。 web 配网可以参考官方的这个 Rust example: https://github.com/esp-rs/esp-idf-svc/blob/master/examples/wifi.rs |
4
EvanLuo42 121 天前 via iPhone
可以看看 embassy
|
5
geekard OP @EvanLuo42 嗯,ESP32 的 https://github.com/esp-rs/esp-hal/tree/main/esp-hal-embassy 为 esp-hal 提供了 embassy async Executor 实现,两者可以很好的协作。
esp-hal 项目的 example 下有大量 embassy 例子,比如: https://github.com/esp-rs/esp-hal/blob/main/examples/src/bin/embassy_hello_world.rs |
6
ElGordo 121 天前
整理得很用心,感谢分享!
|
7
geekard OP @zeusho871 嗯嗯,我 port 过一个 slint GUI printdemo 项目到 ESP32-S3-Box-3 开发版(附带用 Rust 手撸 了这个开发板使用的触摸屏驱动 https://github.com/opsnull/rust-slint-printdemo/blob/main/mcu-board-support/gt911.rs )整体交互效果还是比较流畅的: https://x.com/geekard_zj/status/1789599892987613295
Repo: https://github.com/opsnull/rust-slint-printdemo/tree/main |
9
geekard OP @zeusho871 从个人的实践看,Rust 和 C 的互操作性,兼容性还是挺好的,而且是 Rust 语言和标准库直接支持的,例如:
1. 使用 Rust 函数可以通过 extern "C" 修饰来生成符合 C ABI 规范的 lib ,从而可以被 C 代码直接调用; 2. 反过来 C lib 中的函数,也可以通过 FFI 机制被 Rust 直接调用; 对于 ESP32 来说,也是同时支持 Rust 和 C 混合开发的,具体可以参考我的 blog: 1. Rust 集成 C Component: https://blog.opsnull.com/rust-embedded/esp-rs-std-app/#%E4%B8%BA-rust-std-%E5%BA%94%E7%94%A8%E6%B7%BB%E5%8A%A0%E7%BB%84%E4%BB%B6-component 2. C 集成 Rust 模块: https://blog.opsnull.com/rust-embedded/esp-rs-std-cmake-app/ |