16 个版本
0.5.3 | 2020 年 6 月 12 日 |
---|---|
0.5.1 | 2019 年 11 月 19 日 |
0.4.3 | 2019 年 4 月 21 日 |
0.4.2 | 2019 年 2 月 27 日 |
0.2.1 | 2017 年 7 月 29 日 |
#1187 在 并发 中
每月 266 次下载
在 不到 11 crates 中使用
95KB
1K SLoC
已弃用,请使用 cortex-m-rtic
代替 - 面向大众的实时系统
根据 RFC https://github.com/rtic-rs/rfcs/pull/33,RTFM 已更名为实时中断驱动的并发 (RTIC)。这是一个用于构建实时系统的并发框架。
特性
-
任务 是并发的单位 [^1]。任务可以是 事件触发的(响应异步刺激而触发)或者由应用程序按需产生。
-
任务间消息传递。具体来说,消息可以在产生时传递给软件任务。
-
定时器队列 [^2]。软件任务可以被安排在未来的某个时间运行。这个特性可以用来实现周期性任务。
-
支持任务优先级,因此可以实现 抢占式多任务。
-
高效且无数据竞争的内存共享 通过细粒度的 基于优先级的临界区 [^1]。
-
编译时保证无死锁执行。这是一个比标准 Mutex 抽象提供的更强的保证。
-
最小的调度开销。任务调度器具有最小的软件占用;硬件完成大部分的调度。
-
高效的内存使用:所有任务共享一个单一的调用栈,并且没有对动态内存分配器的硬依赖。
-
支持所有 Cortex-M 设备.
-
此任务模型适用于已知的 WCET(最坏情况执行时间)分析和调度分析技术。(尽管我们尚未开发适用于 Rust 的工具。)
要求
-
Rust 1.36.0+
-
应用程序必须使用 2018 版本编写。
用户文档
API 参考
聊天
加入我们,在 Matrix 房间 讨论RTFM。
贡献
新功能和重大变更应通过专用RFC存储库中的RFC流程。
致谢
此crate基于由RTFM语言创建,该语言由吕勒奥理工学院的嵌入式系统小组开发,由Per Lindgren教授领导。
参考文献
[^1]: Eriksson, J., Häggström, F., Aittamaa, S., Kruglyak, A., & Lindgren, P. (2013, June). Real-time for the masses, step 1: Programming API and static priority SRP kernel primitives. In Industrial Embedded Systems (SIES), 2013 8th IEEE International Symposium on (pp. 110-113). IEEE.
[^2]: Lindgren, P., Fresk, E., Lindner, M., Lindner, A., Pereira, D., & Pinho, L. M. (2016). Abstract timers and their implementation onto the arm cortex-m family of mcus. ACM SIGBED Review, 13(1), 48-53.
许可证
所有源代码(包括代码片段)均受以下其中一项许可证的约束:
- Apache许可证2.0版(LICENSE-APACHE 或 https://apache.ac.cn/licenses/LICENSE-2.0)
- MIT许可证(LICENSE-MIT 或 https://opensource.org/licenses/MIT)
任选其一。
书中包含的书面文本受Creative Commons CC-BY-SA v4.0许可证的约束(LICENSE-CC-BY-SA 或 https://creativecommons.org/licenses/by-sa/4.0/legalcode)。
贡献
除非您明确说明,否则任何有意提交以包含在作品中的贡献,根据Apache-2.0许可证的定义,均应按上述方式许可,不附加任何额外的条款或条件。
依赖项
~4MB
~77K SLoC