#rtos #async #run-time #no-std #critical-section #compile-time

no-std dev rtic

实时中断驱动并发 (RTIC):构建实时系统的并发框架

4 个版本 (1 个稳定版)

2.1.1 2024年3月13日
2.1.0 2024年2月27日
2.0.1 2023年7月25日
2.0.0 2023年5月31日
2.0.0-alpha.12023年4月9日

59嵌入式开发

Download history 631/week @ 2024-04-04 986/week @ 2024-04-11 682/week @ 2024-04-18 632/week @ 2024-04-25 466/week @ 2024-05-02 617/week @ 2024-05-09 524/week @ 2024-05-16 608/week @ 2024-05-23 877/week @ 2024-05-30 661/week @ 2024-06-06 1086/week @ 2024-06-13 1391/week @ 2024-06-20 1640/week @ 2024-06-27 1308/week @ 2024-07-04 1382/week @ 2024-07-11 891/week @ 2024-07-18

5,481 每月下载
用于 9 个包

MIT/Apache

120KB
1.5K SLoC

实时中断驱动并发

硬件加速的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语言创建,该语言由吕勒奥理工学院的嵌入式系统小组创建,由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许可证的定义,应按上述方式许可,无需任何附加条款或条件。

依赖关系

~1.1–3MB
~61K SLoC