Async 异步任务调度分为 Future 和 Executor 两个组件,其中 Future 是由 Rust 提供的,而 Executor 则是需要自己实现。Future 其实就是一个状态机 (State Machine),把任务状态分为 Pending 和 Ready,这样 Executor 就可以根据任务状态进行调度。
这个视频介绍怎么实现 Future 定义的 trait,完成异步的定时函数。当然,Future 需要搭配 Executor 才能真正实现任务调度,下一个视频会详细介绍怎么写一个 Executor,这个视频暂时使用开源的 Cassette 作为 Executor。
GitHub 源码:
- BBC Microbit 例程: https://github.com/wuhanstudio/bbc-microbit-v2-rust-embedded-hal
- STM32 例程: https://github.com/wuhanstudio/stm32-bluepill-rust-embedded-hal
Rust 嵌入式开发合集:
https://www.youtube.com/playlist?list=PLlRCv8NaDaU-u1tqvVryAp9ZTb7rS_10Y
Rust 嵌入式系统合集:
https://www.youtube.com/playlist?list=PLlRCv8NaDaU8XxW7s7M4qfnb-dzwu5Qs9
00:00 引言
01:59 Future 介绍
08:11 Cassette Executor
11:51 Future 全局变量
16:41 Future Timer
19:43 总结