适用于 ARM Cortex M3 (SAM3N4X) 的简单任务调度程序

non*_*kle 1 embedded arm rtos

在过去的两天里,我一直在为上述 ARM Cortex M3 寻找一个简单的调度程序,尽管我找到了一些 RTOS 解决方案,但我没有找到独立的任务调度程序。

我不需要任何太花哨的东西,因为我的应用程序不一定需要它,但它将有助于产品的未来证明(不要激怒最后这句话,我很清楚它的问题)。

编辑:

正如@Clifford 所建议的,我不太清楚简单是什么意思。我想说它的代码非常少,并且不会消耗太多 SRAM。

Cli*_*ord 5

最简单的 RTOS 内核包括一个调度程序和许多任务同步和 IPC 机制。由于这些通常作为库提供,因此如果您仅使用此类库的调度程序组件,则不会将任何其他内容链接到您的代码。此外,稍后添加同步、计时器和 IPC 的选项将更真正地“面向未来”应用程序,或者至少是其架构。

目前尚不清楚“简单调度程序”的含义,但大多数 RTOS 调度程序都支持对相同优先级的任务进行循环调度(uC/OS-II 是一个值得注意的例外);如果你将所有任务设置为相同的优先级,事情不会变得比这简单得多。

另请注意,ARM CMSIS包含一个 RTOS API,该 API 级别非常低,旨在作为高级操作系统的基础,但它提供了根据您的精确需求创建内核所需的所有构建块,包括线程控制(即调度)。

如果您确实想完全避免使用 RTOS,那么状态机架构(例如Quantum Leaps 的 QP 框架支持的架构)是一种替代方案。