FreeRTOS 移植 - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

FreeRTOS 移植

FreeRTOS 是什么?

与世界领先的芯片公司合作开发了 15 年,现在每 175 秒下载一次,FreeRTOS 是面向微控制器和小型微处理器的市场领先的实时操作系统 (RTOS)。FreeRTOS 根据 MIT 开源许可免费分发,其中包含一个内核和一组持续增加的库,可广泛应用于各个行业领域。FreeRTOS 的设计非常注重可靠性和易用性。

FreeRTOS 包含用于连接、安全性和无线 (OTA) 更新的库。FreeRTOS 还包含一些演示应用程序,以在符合条件的主板上显示 FreeRTOS 功能。

FreeRTOS 是一个开源项目。您可以在 GitHub 网站 (https://github.com/aws/amazon-freertos) 上下载源代码,提供更改或增强功能或报告问题。我们根据 MIT 开源许可证发布 FreeRTOS 代码,以便您可以在商业和个人项目中使用这些代码。

我们也欢迎您对 FreeRTOS 文档(FreeRTOS 用户指南FreeRTOS 移植指南FreeRTOS 资格认证指南)提供意见或建议。有关文档的 markdown 来源,请访问 https://github.com/awsdocs/aws-freertos-docs。这是根据知识共享 (CC BY-ND) 许可证发布的。

FreeRTOS 内核和组件是单独发布的,并使用语义版本控制。集成 FreeRTOS 版本定期进行。 所有版本使用基于日期的版本控制,格式为 YYYYMM.NN,其中:

  • Y 表示年份。

  • M 表示月份。

  • N 表示指定月份的版本顺序(00 表示第一个版本)。

  • 主要版本表示为多个库添加了新功能或重要更新。

例如,2021年6月的第二次发布将是202106.01。

以前,FreeRTOS 发行版在主要版本中使用语义版本控制。虽然它已移动到基于日期的版本控制(FreeRTOS 1.4.8更新为 FreeRTOS AWS参考集成201906.00)、Freertos内核和每个个体 FreeRTOS 库仍保留语义版本控制。在语义版本控制中,版本号本身(x.y.z)表示发布是主要、次要或点版本。 您可以使用库的语义版本评估新版本对应用程序的影响以及适用范围。

LTS 版本的维护方式与其他版本类型不同。除了解决缺陷以外,还经常使用新功能更新主要版本和次要版本。LTS 版本仅使用解决严重缺陷和安全漏洞的更改进行更新。在发布后,不会在给定 LTS 版本中引入新功能。它们在发布后至少保留三个日历年,并为设备制造商提供使用稳定基准的选项,而不是使用主要和次要版本表示的更动态的基准。

将 FreeRTOS 移植到您的 IoT 设备

在微控制器主板能够运行 FreeRTOS 之前,必须将部分 FreeRTOS 代码移植到设备的硬件。基本内核端口应参考 FreeRTOS 移植指南www.freertos.org. 对于打算包含用于安全性、连接性等的 FreeRTOS 库的移植,以下说明建立在内核移植之上。

将 FreeRTOS 移植到您的设备

  1. 按照 下载要移植的 FreeRTOS 中的说明,下载要移植的 FreeRTOS 的最新版本。

  2. 按照 为移植设置 FreeRTOS 源代码 中的说明,配置所下载的 FreeRTOS 中的文件和文件夹以进行移植和测试。

  3. 按照 移植 FreeRTOS 库 中的说明,将 FreeRTOS 库移植到您的设备。每个移植主题包含有关测试移植的说明。

系统要求

向其中移植 FreeRTOS 的设备必须是满足以下最低要求的微控制器主板:

  • 25 MHz 的处理速度

  • 64KB RAM

  • 为存储在 MCU 上的每个可执行映像提供 128 KB 程序内存

  • (如果 移植 OTA 库)MCU 上存储两个可执行映像

移植较旧版本的 FreeRTOS

如果您正在移植旧版本的 FreeRTOS,转到 FreeRTOS AWS参考集成存储库,并结账 FreeRTOS 您正在使用其版本标签。tests 文件夹中的资格认证和测试文档为 PDF 格式。请参阅下表中的资格认证和测试文档历史记录。

FreeRTOS 移植和资格认证文档的修订历史记录

Date

移植和资格鉴定指南的文件版本

更改历史记录

FreeRTOS version

2020年7月

202007.00(移植指南)

202007.00(资格认证指南)

  • 版本 202007.00

202007.00

2020 年 2 月 18 日

202002.00(移植指南)

202002.00(资格认证指南)

  • 版本 202002.00

  • 亚马逊 FreeRTOS 现在 FreeRTOS

202002.00

2019 年 12 月 17 日

201912.00(移植指南)

201912.00(资格认证指南)

201912.00

2019 年 10 月 29 日

201910.00(移植指南)

201910.00(资格认证指南)

  • 版本 201910.00

  • 更新了随机数生成器移植信息。

201910.00

2019 年 8 月 26 日

201908.00(移植指南)

201908.00(资格认证指南)

201908.00

2019 年 6 月 17 日

201906.00(移植指南)

201906.00(资格认证指南)

  • 发布版本 201906.00

  • 更新了目录结构

201906.00 主版本

2019 年 5 月 21 日

1.4.8(移植指南)

1.4.8(资格认证指南)

1.4.8

2019 年 2 月 25 日

1.1.6

  • 从“入门指南模板”附录中删除了下载和配置说明(第 84 页)

1.4.5

1.4.6

1.4.7

2018 年 12 月 27 日

1.1.5

  • 使用 CMake 要求更新了“资格认证清单”附录(第 70 页)

1.4.5

1.4.6

2018 年 12 月 12 日

1.1.4

  • 在 TCP/IP 移植附录中添加了 lwIP 移植说明(第 31 页)

1.4.5

2018 年 11 月 26 日

1.1.3

  • 增加了低功耗蓝牙移植附录(第 52 页)

  • 在整个文档中添加了适用于 FreeRTOS 的 AWS IoT Device Tester 测试信息

  • 在“列在 FreeRTOS 控制台上的信息”附录中添加了 CMake 链接(第 85 页)

1.4.4

2018 年 11 月 7 日

1.1.2

  • 更新了 PKCS # 11 移植附录中的 PKCS # 11 PAL 接口移植说明(第 38 页)

  • 更新了 CertificateConfigurator.html 的路径(第 76 页)

  • 更新了“入门指南模板”附录(第 80 页)

1.4.3

2018 年 10 月 8 日

1.1.1

  • aws_test_runner_config.h 测试配置表中新增了“AFQP 所需”列(第 16 页)

  • 更新了“创建测试项目”部分中的 Unity 模块目录路径(第 14 页)

  • 更新了“建议的移植顺序”图表(第 22 页)

  • 更新了 TLS 附录“测试设置”中的客户端证书和密钥变量名称(第 40 页)

  • 更改了 Secure Sockets 库移植附录“测试设置”(第 34 页)、TLS 移植附录“测试设置”(第 40 页)和“TLS 服务器设置”附录(第 57 页)中的文件路径

1.4.2

2018 年 8 月 27 日

1.1.0

  • 添加了 OTA 更新移植附录(第 47 页)

  • 添加了引导加载程序移植附录(第 51 页)

1.4.0

1.4.1

2018 年 8 月 9 日

1.0.1

  • 更新了“建议的移植顺序”图表(第 22 页)

  • 更新了 PKCS # 11 移植附录(第 36 页)

  • 更改了 TLS 移植附录“测试设置”(第 40 页)和“TLS 服务器设置”附录第 9 步(第 51 页)中的文件路径

  • 修补了 MQTT 移植附录“先决条件”中的超链接(第 45 页)

  • 为“创建 BYOC 的说明”附录中的示例添加了 AWS CLI 配置说明(第 57 页)

1.3.1

1.3.2

2018 年 7 月 31 日

1.0.0

初始版本的 FreeRTOS 资格认证计划指南

1.3.0

移植常见问题

什么是 FreeRTOS 端口?

FreeRTOS 移植是指特定于主板的、所需 FreeRTOS 库和您的平台支持的 FreeRTOS 的 API 实现。通过移植,API 可在主板上工作,并实现设备驱动程序与平台供应商提供的 BSP 之间的必需集成。您的移植还应包含主板所需的所有配置调整(如时钟频率,堆栈大小、堆大小)。

我的设备不支持Wi-Fi、蓝牙低功耗或空气(OTA)更新。端口所需的所有库是否都要求 FreeRTOS?

用于移植 FreeRTOS 连接库的主要要求是您的设备可以连接到云。例如,如果您可以通过安全的以太网连接 FreeRTOS 来连接到云,则 Wi-Fi 库不是必需的。请记住,在未导入所有库的情况下,部分测试和演示应用程序将不起作用。

我能否达到Echo服务器来自两个不同的网络(例如,两个不同接入点的两个子网)?

需要 Echo 服务器才能通过 TCP/IP 和 TLS 端口测试。必须通过主板连接的网络访问 Echo 服务器。如果您需要不同子网中的设备都可以与单个 Echo 服务器通信,请咨询您的 IT 支持人员以启用通过子网路由。

需要打开哪些网络端口才能运行 FreeRTOS 端口测试?

运行 FreeRTOS 端口测试需要以下网络连接:

Port

协议

443、8883

MQTT

8443

Greengrass Discovery

如果您有本页或 FreeRTOS 移植指南的其余部分尚未解答的其他移植问题,请联系 FreeRTOS 工程团队