大家好,我是渔夫。
今天分享主题,Rust 实现嵌入式异步开发框架,成为今天嵌入式开发的主流选择。采集了 Rust 结合异步编程,给嵌入式领域开发带来了革命性的变化。
Embassy 什么?
Embassy 它是一个用 Rust 语言实现的现代嵌入式异步开发框架,它致力于让 async/await 模式成为嵌入式编程的首选。该框架可以看作是嵌入式版本的 Tokio,后者是 Rust 在服务器端异步编程中广泛使用的运行时环境。
Embassy 也是未来嵌入式应用程序的下一代框架,采集了 Rust 编写、其异步功能和 Embassy 库,从而更快地编写安全、正确且节能的嵌入式代码。
Rust + async ❤️ 嵌入式
大家都知道,Rust 是一种速度极快、内存效率极高的编程语言,它不需要运行时、垃圾收集器或操作系统的介入。Rust 的内存安全保证和强大的类型系统能够在编译时期捕捉各种潜在错误,从而减少运行时的问题。
那么,在嵌入式系统中,Rust 的 async/await 特性使得多任务处理变得异常简单和高效,异步任务在编译时被转换成状态机,避免了动态内存分配的需求,并且所有任务都在单个堆栈上运行,无需担心堆栈大小调整的问题。这种设计消除了传统实时操作系统(RTOS)所需的内核上下文切换,使得系统运行更快、占用空间更小。
Embassy 框架特点
-
专用硬件抽象层(HAL):Embassy 拥有为嵌入式设备定制的硬件抽象层,这有助于简化硬件交互,并为开发者提供一致的接口。 -
统一的 STM32 支持:给所有受支持的 STM32 设备提供统一的 API 和单一库,使得与 STM32 系列微控制器的接口和操作更加直接和高效了。 -
统一 API:Embassy 旨在为所有支持的 STM32 设备提供统一的应用程序接口(API)。这种方法简化了跨不同 STM32 设备的代码移植和适配,因为开发者可以依赖一致的编程模型。 -
独立使用:通过使用独立的 metapac crate 作为单独的库使用,好处就是不用 Embassy 的异步框架或 HAL,开发者也可以根据自己的需求利用 metapac 进行硬件抽象。 -
低功耗就绪:让你轻松构建具有多年电池寿命的设备,当没有工作要做时,异步执行器自动将核心置于睡眠状态。任务由中断唤醒,等待时没有忙碌循环轮询。 -
蓝牙:nrf-softdevice crate 为 nRF52 微控制器提供了蓝牙低功耗 4.x 和 5.x 支持。embassy-stm32-wpan crate 为 stm32wb 微控制器提供了蓝牙低功耗 5.x 支持。 -
网络:embassy-net 网络栈实现了广泛的网络功能,包括如以太网、IP、TCP、UDP、ICMP 和 DHCP。
原创文章,作者:guozi,如若转载,请注明出处:https://www.sudun.com/ask/89770.html