5个版本 (3个稳定版)
2.1.0 | 2024年2月27日 |
---|---|
2.0.1 | 2023年7月25日 |
2.0.0 | 2023年5月31日 |
2.0.0-alpha.2 | 2023年5月11日 |
2.0.0-alpha.0 | 2023年4月5日 |
#1093 in 嵌入式开发
5,511 每月下载量
在 10 个crate中使用 (通过 rtic)
175KB
4K SLoC
实时中断驱动并发
硬件加速的Rust RTOS
用于构建实时系统的并发框架。
特性
-
任务 作为并发的基本单元 [^1]。任务可以是 事件触发 的(在异步刺激响应时触发)或由应用程序按需生成。
-
任务间的消息传递。具体来说,可以在生成时将消息传递到软件任务。
-
计时器队列 [^2]。软件任务可以被延迟或安排在未来的某个时间继续运行。此功能可用于实现周期性任务。
-
支持任务的优先级和因此的 抢占式多任务。
-
高效且无数据竞争的内存共享 通过细粒度的 基于优先级的 临界区 [^1]。
-
编译时保证无死锁执行。这是一个比标准 Mutex 抽象提供的更强保证。
-
最小的调度开销。任务调度器具有最小的软件占用空间;硬件执行大部分调度。
-
高效的内存使用:所有任务共享一个调用栈,并且没有对动态内存分配器的硬依赖。
-
支持所有Cortex-M设备.
-
此任务模型适用于已知的WCET(最坏情况执行时间)分析和调度分析技术。
用户文档
开发版本文档
API参考
社区提供的示例仓库
聊天
加入我们,在 Matrix 房间 中讨论RTIC。
每周会议纪要可以在RTIC HackMD上找到。
贡献
新特性和重大变更应通过专用RFC仓库的RFC流程。
本地运行测试
要检查本地所有Run-pass tests
,请运行以下命令在您的thumbv6m-none-eabi
或thumbv7m-none-eabi
目标设备上。
$ cargo xtask --target <your target>
# ˆˆˆˆˆˆˆˆˆˆˆˆ
# e.g. thumbv7m-none-eabi
致谢
此crate基于由Real-Time For the Masses语言创建,该语言由吕勒欧理工大学的嵌入式系统小组开发,由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 License, Version 2.0 (LICENSE-APACHE 或 https://www.apache.org/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许可证定义的,您有意提交以包含在作品中的任何贡献,都应按上述方式许可,没有任何附加条款或条件。
依赖关系
~1–1.7MB
~33K SLoC