#cortex-m #arm #tasks #queue #timer #analysis #rtfm

无 std cortex-m-rtfm-macros

cortex-m-rtfm crate 的过程宏

10 个版本

0.5.1 2020 年 6 月 12 日
0.5.0 2019 年 11 月 14 日
0.5.0-beta.1 2019 年 10 月 17 日
0.4.3 2019 年 4 月 21 日
0.2.0 2017 年 7 月 29 日

#165#tasks

Download history 97/week @ 2024-03-14 86/week @ 2024-03-21 129/week @ 2024-03-28 119/week @ 2024-04-04 109/week @ 2024-04-11 153/week @ 2024-04-18 148/week @ 2024-04-25 82/week @ 2024-05-02 75/week @ 2024-05-09 82/week @ 2024-05-16 86/week @ 2024-05-23 101/week @ 2024-05-30 80/week @ 2024-06-06 70/week @ 2024-06-13 89/week @ 2024-06-20 46/week @ 2024-06-27

每月 294 次下载
cortex-m-rtfm 中使用

MIT/Apache

115KB
2.5K SLoC

已弃用,请使用 cortex-m-rtic 代替 - Real Time For the Masses

根据 RFC https://github.com/rtic-rs/rfcs/pull/33,RTFM 的名称已更改,现在将更名为实时中断驱动并发 (RTIC)。 一个用于构建实时系统的并发框架。

功能

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

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

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

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

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

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

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

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

  • 支持所有 Cortex-M 设备.

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

需求

  • Rust 1.36.0+

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

用户文档

API 参考文档

聊天

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

贡献

新功能和重大更改应通过专门的RFC存储库的RFC流程。

致谢

此crate基于RTFM语言,由吕勒奥理工学院的嵌入式系统小组创建,由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许可证定义的您有意提交以包含在作品中的任何贡献,均按上述方式许可,不附加任何额外条款或条件。

依赖项

~2.5MB
~55K SLoC