8 个版本 (稳定版)

1.3.1-alpha.12024 年 5 月 1 日
1.3.0 2024 年 2 月 27 日
1.2.0 2024 年 1 月 10 日
1.1.1 2023 年 12 月 4 日
1.0.0-alpha.02023 年 4 月 5 日

#481嵌入式开发

Download history 273/week @ 2024-05-02 404/week @ 2024-05-09 357/week @ 2024-05-16 270/week @ 2024-05-23 486/week @ 2024-05-30 352/week @ 2024-06-06 606/week @ 2024-06-13 377/week @ 2024-06-20 408/week @ 2024-06-27 322/week @ 2024-07-04 125/week @ 2024-07-11 251/week @ 2024-07-18 135/week @ 2024-07-25 448/week @ 2024-08-01 383/week @ 2024-08-08 427/week @ 2024-08-15

1,412 每月下载次数
stm32-eth 中使用

MIT/Apache

36KB
676 代码行

实时中断驱动的并发

硬件加速的 Rust RTOS

构建实时系统的并发框架。

crates.io docs.rs book matrix Meeting notes

特性

  • 任务 作为并发的基本单位 [^1]。任务可以是 事件触发(响应异步刺激而触发)或由应用程序按需生成。

  • 任务间消息传递。具体来说,消息可以在生成时传递给软件任务。

  • 定时器队列 [^2]。软件任务可以被延迟或安排在未来的某个时间继续运行。此功能可以用于实现周期性任务。

  • 支持任务的优先级,从而实现 抢占式多任务处理

  • 高效且无数据竞争的内存共享,通过细粒度的 基于优先级 的临界区 [^1] 实现。

  • 编译时保证无死锁执行。这是比标准 Mutex 抽象提供的更强的保证。

  • 最小化调度开销。任务调度器具有最小的软件占用;硬件负责大部分的调度。

  • 高效内存使用:所有任务共享一个调用栈,且不依赖于动态内存分配器。

  • 支持所有 Cortex-M 设备.

  • 此任务模型适用于已知的 WCET(最坏情况执行时间)分析和调度分析技术。

用户文档

开发版本文档。

API 参考文档

社区提供的示例仓库

聊天

加入我们,在 Matrix 房间 讨论RTIC。

每周会议纪要可在 RTIC HackMD 找到。

贡献

新特性和重大更改应通过 专用RFC仓库 中的RFC流程进行。

本地运行测试

要在您的 thumbv6m-none-eabithumbv7m-none-eabi 目标设备上本地运行所有 Run-pass tests,请运行

$ cargo xtask --target <your target>
#                       ˆˆˆˆˆˆˆˆˆˆˆˆ
#                   e.g. thumbv7m-none-eabi

致谢

此crate基于由 Real-Time For the Masses语言 创建,该语言由 Luleå University of Technology 的嵌入式系统小组开发,由 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.

许可证

所有源代码(包括代码片段)均根据您的选择采用以下许可证之一:

本书中的书面文字根据Creative Commons CC-BY-SA v4.0许可证的条款进行许可 (LICENSE-CC-BY-SAhttps://creativecommons.org/licenses/by-sa/4.0/legalcode)。

贡献

除非您明确声明,否则您根据Apache-2.0许可证定义的,有意提交以包含在作品中并由您提交的任何贡献,均应按照上述条款进行许可,不附加任何其他条款或条件。


lib.rs:

异步上下文同步原语。

依赖关系

~1.5MB
~31K SLoC