#real-time #cortex-m #tasks #arm #framework #systems #message

no-std lpc55-rtic

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

3 个版本

0.5.7 2021 年 5 月 2 日
0.5.6 2021 年 4 月 23 日
0.5.5 2021 年 2 月 26 日

#1998 in 嵌入式开发


用于 lpc55-hal

MIT/Apache

85KB
931

实时中断驱动并发

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

以前被称为“大众实时”。

crates.io docs.rs book rustc

功能

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

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

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

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

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

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

  • 最小的调度开销。任务调度器的软件占用空间最小;硬件执行大部分调度。

  • 高效内存使用:所有任务共享单个调用栈,并且没有对动态内存分配器的硬依赖。

  • 完全支持所有 Cortex-M 设备.

  • 此任务模型适用于已知的 WCET(最坏情况执行时间)分析和调度分析技术。(尽管我们尚未开发适用于 Rust 的友好工具。)

要求

  • Rust 1.36.0+

  • 应用程序必须使用 2018 版本编写。

用户文档

API 参考文档

聊天

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

贡献

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

致谢

该软件包基于由Real-Time For the Masses语言创建者Luleå University of Technology的嵌入式系统小组所开发的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许可证定义,您有意提交以包含在作品中的任何贡献均应按上述许可方式授权,不附加任何额外条款或条件。

依赖

~4MB
~77K SLoC