嵌入式操作系统:实时应用与低功耗系统解析
1. 实时应用平台
在嵌入式操作系统中,尤其是生命关键和高可靠性系统,硬实时调度器是备受期望的特性之一。实时调度器能在系统负载不超过可用资源的情况下,为实时任务提供确定性和短反应时间。因此,系统开发者常基于具有静态优先级的实时调度器进行设计。
一个坚实且设计良好的调度器实现是抢占式实时系统最基本的部分,也是构建其他功能的基础。为运行具有静态优先级的固定任务集而设计的嵌入式操作系统,通常不实现应用程序的标准接口,并且通过保持小的代码库和有限的功能集,在代码大小和内存使用方面往往较小。硬件抽象和高级功能的库可以与内核分开开发和维护。
这些系统的设计通常不将安全作为目标,但有些实现提供了对MPU区域和任务内存分段的基本支持,并且在内核中主要或仅使用静态内存分配。专为定制嵌入式解决方案集成而设计的实时调度器,通常基于非常简单的扁平模型,内核和用户空间之间没有真正的分离。它们是从裸机应用程序过渡到多线程环境的理想解决方案,适用于具有固定数量任务和确定性截止日期的场景。
2. FreeRTOS
FreeRTOS是嵌入式设备开源操作系统中最受欢迎的之一,拥有超过15年的开发历史,并且在众多嵌入式平台上具有极高的可移植性,有超过30个特定硬件的端口。
该系统设计注重小代码占用和简单接口,不提供完整的驱动程序平台或高级CPU特定功能,而是专注于两件事:线程的实时调度和堆内存管理。其设计的简单性便于移植到大量平台,并使开发专注于经过充分测试和可靠的有限操作。
第三方库和硬件制造商提供的示例代码经常集成FreeRTOS,这有助于基于其调度器构建更复杂的系统。虽然FreeRTOS