2个版本 (1 个稳定版)

1.0.0 2023年5月31日
1.0.0-alpha.02023年4月5日

#2034嵌入式开发

Download history 895/week @ 2024-03-25 679/week @ 2024-04-01 895/week @ 2024-04-08 1074/week @ 2024-04-15 907/week @ 2024-04-22 625/week @ 2024-04-29 533/week @ 2024-05-06 788/week @ 2024-05-13 574/week @ 2024-05-20 750/week @ 2024-05-27 723/week @ 2024-06-03 860/week @ 2024-06-10 935/week @ 2024-06-17 1624/week @ 2024-06-24 1330/week @ 2024-07-01 1182/week @ 2024-07-08

每月下载量 5,224
用于 8 个包(2 个直接使用)

MIT/Apache

14KB
250 代码行

实时中断驱动的并发

硬件加速的Rust实时操作系统

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

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测试,请运行

$ 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.

许可

所有源代码(包括代码片段)均受以下任一许可协议的约束

供您选择。

本书中的书面文字受Creative Commons CC-BY-SA v4.0许可协议的约束(《LICENSE-CC-BY-SAhttps://creativecommons.org/licenses/by-sa/4.0/legalcode》)。

贡献

除非您明确表示,否则根据Apache-2.0许可证定义的任何有意提交给作品并由您包含的贡献,应按上述方式许可,不附加任何额外条款或条件。


lib.rs:

一些对其他subcrate有用的实用结构体。

依赖关系

~32KB