下载 FreeRTOS
 

出色的 RTOS & 嵌入式软件

支持
最新资讯
简化任何设备的身份验证云连接。
利用 CoAP 设计节能型云连接 IoT 解决方案。
11.0.0 版 FreeRTOS 内核简介:
FreeRTOS 路线图和代码贡献流程。
使用 FreeRTOS 实现 OPC-UA over TSN。
主页 | 常见问题

FreeRTOS 常见问题 - GitHub 存储库结构 & 版本控制

以下为常见问题节选

FreeRTOS Git 存储库是如何构建的?
FreeRTOS 库如何进行版本控制?
可以使用哪些库包?
如何获取和使用单一 FreeRTOS 库?
如何获取 FreeRTOS 分发包?

以下为常见问题节选



FreeRTOS Git 存储库是如何构建的?

有两种类型的存储库, 单库存储库和软件包存储库。 每个单库 存储库包含一个库的源代码,不含任何构建项目或示例。 软件包存储库 包含多个库,并且可能包含用于演示该库使用方法的预配置项目。

虽然软件包存储库包含多个库,但不包含这些库的副本。 然而, 软件包存储库会引用所含库的 git 子模块。 其使用子模块确保 每个单个库都具有单一数据源。

单个库的 git 存储库在两个 GitHub 组织间拆分。 含有 FreeRTOS 特定库(如 FreeRTOS-Plus-TCP)或通用库(如 coreMQTT 一类的 跨云库,因其适用于任何 MQTT代理)位于 FreeRTOS GitHub 组织中。 包含 AWS IoT 特定库的存储库(如 AWS IoT over-the-air 更新客户端)则位于AWS GitHub 组织中。 下图为结构演示。

GitHub 存储库结构 - 点击放大



FreeRTOS 库如何进行版本控制?

单个库使用 x.y.z 样式版本号,类似于语义 版本控制x 为主要版本号, y 为次要版本号,并且(从2022年起)z 为补丁号。 2022 年之前,z 曾经是单点发行编号,这也意味着第一个 LTS 库的补丁需要 "x.y.z LTS Patch 2" 形式的单独补丁号。

在 FreeRTOS 库的 LTS 版本中,LTS 补丁的 x.y.z 将保留 z。例如,如果 3.1.0 是 FreeRTOS 库的 LTS 版本,则 3.1.1将是 LTS 版本的补丁。这意味着 3.1.z 版本提交中 FreeRTOS 库的非 LTS 单点发行版本必须递增次要版本(即 y)号,而非 z 编号。如下图所示, 因此,LTS 版本的补丁可以扩展。

仅 LTS 版本的库可保留 z。非 LTS 版本的库单点发布时将递增 z。例如, 例如,在主线的后续版本中,FreeRTOS 库的未来版本,例如 3.3.0 ,可以以 3.3.1 的编号进行单点发布, 而 3.1.0 仍然是 LTS 版本。

库包使用 yyyymm.x 样式日期戳版本号。yyyy 是年份,mm 是发布月份, x 是顺序补丁号。 包中包含的各个库是该库在当天的最新版本 (或者如果是 LTS 包,则是当天最初发布为 LTS 版本的 LTS 库的最新补丁版)。



可以使用哪些库包?

一共有四种库包。

  1. 主要 FreeRTOS 分发包(来自于 FreeRTOS GitHub 组织):

    此包内含大量预配置项目,可演示在不同处理器上运行的 FreeRTOS 内核, 并使用不同的编译器和项目来演示其他 FreeRTOS 库(例如 FreeRTOS-Plus-TCP),这些库在模拟环境中运行。

  2. 精选 FreeRTOS IoT 参考集成(来自 FreeRTOS GitHub 组织) :

    精选 FreeRTOS IoT 集成是预先配置的项目,展示了使 IoT 设备软件更安全、更稳健的最佳实践。这些 FreeRTOS IoT 集成旨在结合使用 FreeRTOS 软件和具有硬件安全功能的合作伙伴提供的板来提高安全性。

  3. 设备的 AWS IoT 嵌入式 C SDK(来自 AWS GitHub 组织) :

    此中包含许多预先配置的项目,可演示在 POSIX 操作系统,而非 FreeRTOS 上运行的 FreeRTOS 和 AWS 库的集成。

  4. FreeRTOS 库的 LTS 版本(来自 FreeRTOS GitHub 组织):

    此包仅供参考和便利用途。 其仅含 FreeRTOS 库的长期支持 (LTS) 版本, 不含示例项目。



如何获取和使用单一 FreeRTOS 库?

使用应用程序中的单个库的推荐方法是,直接从 GitHub 将它们子模块化至应用程序 。 或者,您可以通过下载 Git 存储库(包括 zip 下载)的 zip 文件, 将一个单个库复制到您的应用程序中。 下表含有指向单个库的链接。 包的下载中含有示例。

将单个库复制到您的应用程序中。
FreeRTOS 内核(RTOS 内核) https://github.com/FreeRTOS/FreeRTOS-Kernel
FreeRTOS-Plus-TCP (TCP/IP 堆栈) https://github.com/FreeRTOS/FreeRTOS-Plus-TCP
coreMQTT-Agent(多线程 MQTT 客户端) https://github.com/FreeRTOS/coreMQTT-Agent(包括 coreMQTT)
coreMQTT(基础 MQTT 客户端) https://github.com/FreeRTOS/coreMQTT
coreHTTP (HTTP 客户端) https://github.com/FreeRTOS/coreHTTP
corePKCS11 (PKCS#11 软件模拟) https://github.com/FreeRTOS/corePKCS11
coreJSON (JSON) https://github.com/FreeRTOS/coreJSON
coreSNTP (SNTP) https://github.com/FreeRTOS/coreSNTP
AWS IoT Device Shadow https://github.com/aws/device-shadow-for-aws-iot-embedded-sdk
AWS IoT OTA https://github.com/aws/ota-for-aws-iot-embedded-sdk
AWS IoT Jobs https://github.com/aws/jobs-for-aws-iot-embedded-sdk
AWS IoT Device Defender https://github.com/aws/device-defender-for-aws-iot-embedded-sdk


如何获取 FreeRTOS 分发包?

以下是对各个包的说明。 请注意,如果使用 git 获取库包,则另外遵循包的 readme.md 文件中的存储库克隆说明,以确保您也初始化和同步子模块引用:

  1. 主要 FreeRTOS 分发包:

    大部分人会使用 FreeRTOS.org 网站上的下载按钮 以获取 zip 文件。 该分发包也可在 GitHub 上作为 git 存储库zip 文件进行获取。

  2. 精选 FreeRTOS IoT 集成:

    每个特色集成位于 FreeRTOS github 组织下的一个单独存储库(命名格式为:iot-引用-目标平台 (iot-reference-targetplatform))中。从精选 FreeRTOS IoT 集成页面中查看最新项目的列表。

  3. AWS IoT 用于设备的嵌入式 C SDK:

    此软件包可从 GitHub 作为 git 存储库zip 文件进行获取。

  4. FreeRTOS 库的 LTS 版本:

    类似于主要 FreeRTOS 分发包,大部分人会用 FreeRTOS.org 网站上的下载按钮获取 zip 文件。 该分发包也可在 GitHub 上作为 git 存储库zip 文件进行获取。

Copyright (C) Amazon Web Services, Inc. or its affiliates. All rights reserved.