FreeRTOS 是一款市场占有率最高的实时操作系统(RTOS)。它由美国的 Richard Barry 于 2003 年创建并发布,Richard Barry 长期担任其拥有者和核心维护者。

发展历程与生态

在过去的十多年中,FreeRTOS 历经了 9 个主要版本迭代,与众多半导体厂商建立了紧密的合作关系,累积吸引了全球数百万开发者,奠定了其市场领先地位。

代码获取方式

FreeRTOS 的源代码可以通过以下官方渠道获取:

1. 官方网站下载

  • FreeRTOS 官网:访问 FreeRTOS.org 的 “Download” 页面,可以下载到最新的稳定版本(包括 V9 和 V10)。
  • 版本选择:网站通常提供 .zip.tar.gz 格式的完整源代码包,包含内核、演示项目以及移植到不同 MCU 架构的示例。

2. GitHub 仓库

FreeRTOS 在 GitHub 上托管了多个官方仓库,开发者可以根据需要选择:

  • 主仓库(包含完整示例)FreeRTOS/FreeRTOS 是历史最久、内容最全的仓库,包含内核、大量移植示例、演示项目以及配套工具。对于初学者,从这个仓库开始探索通常更方便。
  • 纯内核仓库FreeRTOS/FreeRTOS-Kernel 是后来从主仓库中拆分出来的、只包含核心调度器与内核文件的仓库,结构更清晰,适合集成到其他构建系统中。
  • AWS FreeRTOS 仓库:若需要物联网相关组件(如 AWS IoT 设备 SDK、OTA 更新、安全库等),可访问 aws/amazon-freertos。该仓库基于 V10 版本,并集成了 AWS 云服务。

版本对应关系

  • V9 及以前版本:代码位于主仓库 FreeRTOS/FreeRTOS 的对应分支与标签中(如 V9.0.0)。
  • V10 版本:代码主要位于 aws/amazon-freertos 仓库,内核部分与 FreeRTOS/FreeRTOS-Kernel 同步。

获取方式

  • 使用 git clone 命令克隆上述任一仓库。
  • 若要获取特定版本(如 V9.0.0),可在克隆后使用 git checkout V9.0.0 切换标签,或直接在 GitHub 的 Releases 页面下载该版本的源码压缩包。

3. 包管理器与 IDE 集成

  • 嵌入式开发工具:许多 MCU 厂商的 SDK(如 STM32CubeMX、ESP-IDF、NXP MCUXpresso)已内置 FreeRTOS 选项,可在创建项目时直接勾选并自动配置。
  • 包管理器:部分平台(如 PlatformIO、Arduino)也通过包管理器提供 FreeRTOS 库,方便一键安装和集成。

4. 本书配套代码

本书示例基于 FreeRTOS V9.0.0,读者可从出版社官网或随书资源页面下载完整的示例工程,其中已包含适配常见开发板(如 STM32、ESP32)的移植代码。

提示:建议初学者先从官网下载完整的 V9 版本代码包,以便获得最纯净的内核与官方文档。

重要转折:被亚马逊收购

2018 年,FreeRTOS 被亚马逊(Amazon)收购,并更名为 AWS FreeRTOS,其版本号也随之升级为 V10。

此次收购带来了一个关键变化:开源协议从原有的 GPLv2+ 变更为更加宽松的 MIT 协议。与 GPLv2+ 相比,MIT 协议限制更少,开放性更高,开发者可以更自由地使用、修改和分发。

版本区别与本书选择

  • V9 及以前版本:内核成熟稳定,在收购后仍维持原样,可供需要 GPLv2+ 协议或经典版本的用户使用。
  • V10 版本:在继承 V9 稳定内核的基础上,主要增加了面向物联网(IoT)的组件和功能,以支持亚马逊在物联网和人工智能等领域的战略布局。

本书的讲解将基于 FreeRTOS V9 版本,专注于其经典、稳定的内核原理与应用实践。

Logo

openEuler 是由开放原子开源基金会孵化的全场景开源操作系统项目,面向数字基础设施四大核心场景(服务器、云计算、边缘计算、嵌入式),全面支持 ARM、x86、RISC-V、loongArch、PowerPC、SW-64 等多样性计算架构

更多推荐