FreeRTOS

问:什么是 FreeRTOS?

FreeRTOS 是一款适用于微控制器的开源实时操作系统,让您可以轻松地编写、部署、保护、连接和管理低功耗的小型边缘设备。FreeRTOS 在 MIT 开源许可证下免费分发,包括一个内核和一组不断丰富的软件库,适用于各种行业部门和应用程序。为了支持越来越多的使用案例,AWS 提供了软件库,这些库提供增强的功能,包括连接性、安全性和无线更新。例如,通过 FreeRTOS,您可以将小型低功耗设备安全连接到 AWS IoT Core 等 AWS 云服务或运行 AWS IoT Greengrass 的功能更强大的边缘设备。

问:Amazon FreeRTOS 与 FreeRTOS 之间有何关系?

自 2017 年以来,Amazon FreeRTOS 一直是 FreeRTOS 项目的扩展,因此我们进行了统一命名,以免客户混淆。FreeRTOS 项目现在包括额外的连接库、安全库和 IoT 参考集成。

问:FreeRTOS 在哪些 AWS 区域可用?

请参阅 AWS 区域表,查看已推出 FreeRTOS 的区域的完整列表。 您可以从 GitHub 下载 FreeRTOS 代码,而不受您的地理位置和 AWS 区域可用性的影响。

问:FreeRTOS 有哪些使用案例?

FreeRTOS 可以用于工业、商业和消费者应用场景中的嵌入式系统。例如,智能电表、油泵传感器、家用电器、商业安全系统、运动手环和传感器网络都可以使用 FreeRTOS。智能电表用于实时监控家庭中的用电情况。运动手环通过用户的移动设备,将健康状况数据发送到云端,用于实时监控或分析。利用这一数据,电力公司可以提供负载平衡的效率和发电站输出电力的效率。油泵传感器用在石油钻井平台上,用于检测可能深埋在水下的油井的产量。石油钻井平台可以在这些传感器上部署 FreeRTOS,并使用 AWS IoT Greengrass Core 在本地实时处理来自油泵和阀门的数据。然后,AWS IoT Greengrass Core 可以将经过预处理的油泵传感器数据批量发送到云中,用于分析和数据仓库。要了解有关 AWS IoT Greengrass 的更多信息,请单击此处

问:微控制器开发人员怎样获取 FreeRTOS?

FreeRTOS 开发人员可以从 FreeRTOS 控制台GitHubFreeRTOS.org 下载 FreeRTOS 微控制器设备软件。

问:谁可以受益于 FreeRTOS?

半导体供应商制造用于连接传感器、安全周边设备和以太网控制器等微控制器和模块。OEM 使用这些微控制器和模块来生产 IoT 设备。

OEM 包括工业公司、商业企业和消费者品牌。微控制器开发人员可以使用 FreeRTOS 轻松设计和开发连接的设备和 IoT 应用程序。

企业可以使用由 FreeRTOS 提供支持的 IoT 互联设备来提高业务和运营效率。

问:FreeRTOS 软件有哪些主要组件?

FreeRTOS 包括 FreeRTOS 内核,这是一种适用于微控制器的实时操作系统内核,其附带的各种库可以支持连接性、安全性和无线更新。连接堆栈包括 MQTT、HTTP、TCP/IP、Wi-Fi 和低功耗蓝牙,可以连接到云和本地网络。安全库中包含一个针对 TLS 并基于标准的 Berkeley 套接字接口,还包含一个适用于加密分流的 PKCS#11 标准接口。

  • FreeRTOS 内核:适用于嵌入式微控制器设备的 MIT 许可的实时操作系统 (RTOS) 内核。
  • MQTT:可用于创建发布和订阅 MQTT 主题并连接到基于 MQTT 消息代理的应用程序的 MQTT 客户端库。
  • HTTP 库:可用于创建使用 REST API 连接到 HTTP 服务器的应用程序的 HTTP 客户端库。
  • Wi-Fi 管理库:提取特定于端口的 Wi-Fi 实施并简化应用程序开发的常见 API 层。
  • 低功耗蓝牙管理库:允许您使用通用访问配置文件 (GAP) 和通用属性 (GATT) 配置文件创建低功耗蓝牙应用程序的标准化 API 层。
  • Device Defender 库:允许您将基于 FreeRTOS 的设备与 AWS IoT Device Defender 配合使用。单击此处详细了解 Device Defender。
  • Device Shadows 库:定义用于创建、更新和删除 AWS IoT Device Shadows 的功能。单击此处详细了解 Device Shadows。
  • OTA 代理:让您能够管理 FreeRTOS 设备固件更新的通知、下载及验证。
  • Greengrass 发现:有助于 FreeRTOS 设备发现并连接到 AWS IoT Greengrass Core 的库。
  • TLS:传输层安全性 (TLS) 界面是一个可选包装程序,用于提取底层 TSL 堆栈的加密实施细节。
  • PKCS#11:提取密钥存储、获取/设置加密对象的属性和会话语义的加密 API 层(OASIS 标准)。

问:这类设备必须达到哪些最低硬件规格?

如果您在应用程序微控制器上运行所有 FreeRTOS 库(包括 TLS),则可能需要具有高于 25MHz 处理速度和大于 64KB RAM 内存的微控制器。如果通信和加密堆栈(MQTT 除外)被分流到联网处理器上,那么您的微控制器就只需要 10MHz 的处理速度和 16KB 的 RAM。但上述数值只是近似值,因为 MCU 架构、编译器和编译器优化程度等因素可能会影响对处理速度和 RAM 的要求。对于存储在微控制器上的每个可执行镜像,FreeRTOS 需要 128KB 的程序存储器。对于 OTA 更新功能,程序存储器中必须同时存储两个可执行镜像。

问:FreeRTOS 支持哪些架构?

FreeRTOS 为合作伙伴的各种微控制器提供 IoT 参考集成,具体见 AWS Partner Device Catalog 。FreeRTOS 包括 FreeRTOS 内核,该内核支持 40 多种架构,包括 RISC-V 和 ARMv8-M 的最新架构。

问:怎样开始使用 FreeRTOS?

您可以查看入门指南中的系统性说明,了解如何在符合要求的电路板上运行 FreeRTOS。

问:如何获得技术支持?

您可以通过以下任何一个渠道来获得支持:

FreeRTOS 社区论坛

技术支持

AWS Support

GitHub 问题

问:对 AWS 论坛上的 Amazon FreeRTOS 组有什么影响?

为了给我们的客户打造更好的论坛体验,我们已将 AWS 论坛 Amazon FreeRTOS 组中的所有内容和用户迁移到 FreeRTOS 社区论坛上的 Amazon Web Services 类别。单击此处了解更多信息。

问:有没有用户指南?

可以。您可以按照 FreeRTOS 用户指南开始将 FreeRTOS 设备连接到 AWS。

问:可以使用 FreeRTOS 连接到其他云服务吗?

可以。FreeRTOS 是一款开源软件,因此可以针对应用程序的具体需求进行修改。

问:我可以为项目更改 FreeRTOS 源代码吗?

可以。FreeRTOS 是一款在 MIT 许可证下分发的开源软件,因此可以针对应用程序或项目的具体需求进行修改,无需获得 AWS 的批准。

问:使用 FreeRTOS 需要支付多少费用?

在开源 MIT 许可证下,可免费下载并使用 FreeRTOS。

问:如何在不购买硬件的情况下了解 FreeRTOS?

下载移植到 Windows 上运行的库和示例即可在 Windows 虚拟机上浏览 FreeRTOS 代码和功能。这是一系列称为适用于 Windows 的 FreeRTOS 模拟器的文件(Windows 模拟器)。点击此处开始使用。

问:FreeRTOS 是否包含硬件?

不包含。FreeRTOS 是一种用于微控制器的开源实时操作系统。您可以通过移植 FreeRTOS 代码并使用 AWS IoT 设备测试器验证所移植的代码,在所选微控制器上运行 FreeRTOS。为了让您更轻松,我们在 AWS Partner Device Catalog 中为通用微控制器提供了 IoT 参考集成和合格端口。

问:我该如何理解 FreeRTOS 版本控制?

FreeRTOS 内核和每个单独的库都使用语义版本控制。在语义版本控制中,版本号本身 (X.Y.Z) 表明了版本是主要版本、次要版本还是小版本。第一个版本号数字的增量表示主要版本,第二个版本号数字的增量表示次要版本,第三个版本号数字的增量表示小版本。

对于包含一组 FreeRTOS 库的 FreeRTOS IoT 参考集成版本,使用基于日期的版本控制。此外,包含 FreeRTOS 内核和其他库的下载使用基于日期的版本控制。这种基于日期的版本控制遵循标准版本的格式 YYYYMM.NN,其中 Y 代表年份,M 代表月份,而 N 则代表指定月份内的版本顺序(00 是给定月份的第一个版本)。“Major”的指称表示向多个库添加新功能和/或重要更新。例如,“201906.00 Major”表示 2019 年 6 月发布的第一版,包含新功能和/或重要更新。通过将语义版本控制下移到单独的库,您可以自行评估新版本在应用程序中的范围和影响。

FreeRTOS 内核

问:什么是 FreeRTOS 内核?

FreeRTOS 内核花费了 15 年的时间开发,多家世界领先的芯片公司都参与了开发工作。该内核是市场上领先的实时操作系统内核,也是适用于微控制器和小型微处理器的标准解决方案。

问:AWS 是否维护 FreeRTOS 内核?

是的。FreeRTOS 内核 v10 的最新更新包括对 RISC-V 和 Armv8-M(Cortex-M33 和 Cortex-M23)的支持。

问:MIT 开源许可证与(之前使用的)修改版 GPL 开源许可证有什么区别?

这两种许可证都允许免费使用软件,即使在商业产品中也是如此。而且对于分发二进制 (可执行) 版本,这两种许可证都不会要求用户承担任何义务。MIT 许可证的内容非常简单,让用户可以更自由地使用我们的源代码。使用 MIT 许可证,您仍然可以使用 FreeRTOS(包括内核)来开发和销售商业产品,但是您不再需要对我们的源代码进行开源修改,这意味着您做出的所有修改都归您所有。MIT 许可证的唯一一项要求是,必须在软件(源文件)的所有副本或主要部分中附带版权声明和许可声明。

FreeRTOS 社区

问:我可以向 FreeRTOS 提供代码吗?

可以,您可以通过 GitHub 向 FreeRTOS 提供代码。有关准则,请参阅 GitHub 中的 Contributions.md 文件。

适用于 FreeRTOS 的 AWS IoT 设备测试器

问:什么是适用于 FreeRTOS 的 AWS IoT 设备测试器?

适用于 FreeRTOS 的 AWS IoT 设备测试器是 Windows/Linux/Mac 测试自动化工具,半导体供应商可利用它在其微控制器主板上对 FreeRTOS 进行测试和资格鉴定。使用 AWS IoT 设备测试器,半导体供应商可以验证其微控制器主板是否能运行 FreeRTOS,以及是否能对 AWS IoT 服务进行身份验证并实现互操作。

问:从哪里获取适用于 FreeRTOS 的 AWS IoT 设备测试器?

您可以从此处获取适用于 FreeRTOS 的 AWS IoT 设备测试器。

问:通过 AWS Partner Device Catalog 资格测试并列入目录是否必须具备适用于 FreeRTOS 的 AWS IoT 设备测试器?

是的,您可在此处了解如何列入目录的更多信息。

问:适用于 FreeRTOS 的 AWS IoT 设备测试器测试什么内容?

适用于 FreeRTOS 的 AWS IoT 设备测试器测试 FreeRTOS IoT 参考集成与微控制器板的移植层接口和底层设备驱动程序的组合是否兼容,以及是否能够与 AWS IoT 服务实现互操作。AWS IoT 设备测试器确定 FreeRTOS 库的移植层接口(由半导体供应商实施)在设备驱动程序上是否正常工作。此外,AWS IoT 设备测试器运行端到端测试,以确认微控制器主板可以通过 AWS IoT 服务进行身份验证并实现互操作。

问:如何获取适用于 FreeRTOS 的 AWS IoT 设备测试器的技术支持?

您可以通过以下任何一个渠道来获得支持:

技术支持

客户支持

GitHub 问题

问:如何在 AWS Partner Device Catalog 中列出我的基于微控制器的硬件平台?

AWS 设备资格审查计划定义了在 AWS Partner Device Catalog 中列出您微控制器的流程。简要概述如下:首先,您必须通过适用于 AWS FreeRTOS 的 AWS IoT 设备测试器测试。接下来,登录 AWS 合作伙伴网络门户,并上传适用于 FreeRTOS 的 AWS IoT 设备测试器报告。提供对您移植的 FreeRTOS 接口源代码的引用,以使其可供 OEM 使用。在 AWS 验证了移植的代码和报告并提交了其他设备相关的构件(例如设备镜像、数据表等)之后,该设备将在 AWS Partner Device Catalog 中列出。

问:适用于 FreeRTOS 的 AWS IoT 设备测试器在哪些区域可用?

适用于 FreeRTOS 的 AWS IoT 设备测试器在所有支持 FreeRTOS 的区域中可用。 

问:适用于 FreeRTOS 的 AWS IoT 设备测试器的费用如何?

适用于 FreeRTOS 的 AWS IoT 设备测试器供免费使用。不过,您需要承担资格测试过程中与 AWS 使用相关的所有成本。平均而言,AWS IoT 设备测试器的单次运行成本将低于一分。有关相关成本的信息,请参阅 AWS IoT Core 定价

FreeRTOS 与 AWS IoT Greengrass

问:AWS IoT Greengrass 和 FreeRTOS 有何区别?

AWS IoT Greengrass 是一种允许您以安全方式在互联设备上运行本地计算、消息收发、数据缓存、同步和 ML 推理功能的软件。借助 AWS IoT Greengrass,互联设备可以运行 AWS Lambda 函数、同步设备数据,以及与其他设备安全通信 – 甚至无需连接互联网。通过使用 AWS Lambda,AWS IoT Greengrass 可以确保您的 IoT 设备能够快速响应本地事件,使用在 AWS IoT Greengrass Core 上运行的 Lambda 函数与本地资源进行交互,执行间歇性连接,通过无线更新保持更新状态,最大限度地降低将 IoT 数据传输到云的成本。

FreeRTOS 是用于微控制器的开源实时操作系统,在边缘站点运行,一般不支持可运行 AWS IoT Greengrass 的芯片组。这些微控制器设备可用于各种 IoT 终端,如健身追踪器、起搏器、电表、汽车传动设备和传感器网络。FreeRTOS 设备无法运行 AWS IoT Greengrass Core,但可以触发 Lambda 函数在 AWS IoT Greengrass Core 设备上的执行。

这两个设备的硬件要求和操作系统是不同的。

  FreeRTOS AWS IoT Greengrass
软件 带有各种库的实时操作系统,在微控制器上运行 Linux 设备的运行时和 AWS IoT Greengrass 感知设备的开发工具包
硬件要求 >64KB RAM >128MB RAM
类别 嵌入式系统、IoT 终端 边缘设备、本地网关
使用案例 基于微控制器的设备 工业自动化系统、无线路由器、智能手机

问:FreeRTOS 是否要求使用 AWS IoT Greengrass?

FreeRTOS 不要求使用 AWS IoT Greengrass。FreeRTOS 在 IoT 终端上运行,通常负责 IoT 拓扑中的“感知”和“行为”。FreeRTOS 设备可以直接连接到云,也可以连接到本地的 AWS IoT Greengrass Core 设备。

问:怎样将 FreeRTOS 设备连接到 AWS IoT Greengrass Core 设备?

FreeRTOS 源代码中包含 AWS IoT Greengrass Discovery Library,让您能够发现并连接到 AWS IoT Greengrass Core 设备。有关更多信息,请参阅 FreeRTOS 用户指南

FreeRTOS 与低功耗蓝牙

问:FreeRTOS 中的低功耗蓝牙支持是什么?

FreeRTOS 中的低功耗蓝牙支持为开发人员提供了标准化 API 层,用于写入可在符合条件的 FreeRTOS 主板之间移植的低功耗蓝牙应用程序。它包括配套的 Android 和 iOS 开发工具包,使得 FreeRTOS 设备可以将 Android 或 iOS 设备用作代理来使用 AWS IoT 服务。您可以使用标准的通用接入配置文件 (GAP) 和通用属性 (GATT) 配置文件来编写低功耗蓝牙应用程序,为 MQTT over Bluetooth Low Energy 使用自定义配置文件,以及通过低功耗蓝牙预置 Wi-Fi。您还可以使用其他 AWS IoT 服务和功能,包括 AWS IoT Device Defender、Device Shadows 和 OTA 更新。

问:为什么应该使用 FreeRTOS 低功耗蓝牙?

如果您是需要创建低功耗蓝牙应用程序的嵌入式开发人员,通过 Android 或 iOS 代理将您的低功耗蓝牙设备连接到 AWS IoT,或者使用 AWS IoT Device Shadows 等 AWS IoT 功能,您将受益于使用 FreeRTOS 中的低功耗蓝牙。借助适用于 FreeRTOS 的标准化低功耗蓝牙 API,您可以对符合 FreeRTOS 标准的设备进行应用程序代码移植。如果您决定使用其他微控制器(例如,用于升级产品),则可以使用现有低功耗蓝牙应用程序代码为基础来添加较新的功能。这样,您就可以专心于应用程序代码,而不必担心底层连接和安全库,这些底层内容并不是区分产品的特性。

问:FreeRTOS 中的低功耗蓝牙支持哪些主板?

请访问我们的入门页面了解有关受支持硬件的更多信息。

问:如何查找所需要的库?

您可以从 FreeRTOS 控制台和 FreeRTOS GitHub 存储库下载 FreeRTOS 源代码,您还可以从 GitHub 下载配套的 AndroidiOS 开发工具包。FreeRTOS 源代码具有演示示例,移动开发工具包具有示例应用程序,可帮助您快速入门。

问:FreeRTOS 中的低功耗蓝牙支持是否仅可用于 AWS?

否。低功耗蓝牙的 FreeRTOS 库为开源版本,采用 MIT 许可证,因此开发人员可以根据其具体需求进行修改。

问:哪些蓝牙低功耗版本受支持?

FreeRTOS 支持低功耗蓝牙版本 4.2 和更高版本。低功耗蓝牙版本 4.2 增加了对低功耗蓝牙安全连接的支持,从而提升了安全标杆。这是低功耗蓝牙版本 4.2 中引入的一项增强安全功能,针对对等设备进行身份验证并创建加密通道。

问:Amazon 是否提供低功耗蓝牙堆栈?

否。FreeRTOS 提供标准化低功耗蓝牙 API 库,与第三方(例如,MCU 供应商)低功耗蓝牙堆栈连接。

问:FreeRTOS 对低功耗蓝牙的支持启用了哪些 GATT 服务?

FreeRTOS 中的低功耗蓝牙支持使得开发人员可以根据目标硬件的功能,添加任意数量的标准和自定义 GATT 服务。FreeRTOS 包含两个客户配置文件:1) MQTT over Bluetooth Low Energy,用于允许低功耗蓝牙设备使用 AWS IoT 服务,以及2) 通过低功耗蓝牙的 Wi-Fi 预置,用于使用低功耗蓝牙在 IoT 设备中预置 Wi-Fi 凭证。

问:低功耗蓝牙代理是否可以执行本地操作?

目前,没有任何一种机制可以拦截在低功耗蓝牙设备和 AWS IoT 之间流动的消息。低功耗蓝牙设备仅充当直通式设备。

但是,您可以使用代理库中提供的方法和类别作为起点,修改这些库以拦截消息并执行本地操作。

问:使用 MQTT over Bluetooth Low Energy 有哪些好处?

MQTT over Bluetooth Low Energy 允许低功耗蓝牙设备通过代理设备连接到 AWS IoT,并使您能够使用其他 AWS 服务和功能,包括 AWS IoT Device Defender、AWS IoT Device Shadows 和 FreeRTOS OTA 更新。

问:是否可以在同一个设备上使用多个连接选项?

是的。只要您的设备具有所需的内存,您就可以同步使用 MQTT over Wi-Fi 和 MQTT over Bluetooth Low Energ。

问:如何使用 AWS IoT 对我的代理设备进行身份验证?

AWS IoT 利用 Amazon Cognito 服务通过云服务对移动设备进行身份验证。但是,您还可以使用 FreeRTOS 移动开发工具包支持的 X.509 证书通过 AWS IoT 对代理设备进行身份验证。

FreeRTOS 与 AWS IoT Device Management

问:怎样用新的固件更新我的设备?

您可以使用 FreeRTOS 的无线 (OTA) 更新功能。在 AWS IoT Device Management 控制台中,您只需要提供固件镜像,选择要更新的设备,选择代码签名方式,并创建 FreeRTOS OTA 任务更新。有关 OTA 更新功能和代码签名的更多信息,请参阅 FreeRTOS 用户指南

问:什么是代码签名?

对于准备以 OTA 方式部署到 FreeRTOS 设备的固件镜像,开发人员可以利用代码签名来确认其完整性和来源。这一过程使用一个加密哈希值来确认固件镜像的完整性,该加密哈希值可以证实代码在签名后没有更改或损坏。这一过程还使用公钥加密对镜像签名,来源证明可以在设备上验证。通过 AWS IoT Device Management 控制台中集成的 FreeRTOS OTA 设备更新任务,开发人员可以下载新的固件镜像、对该镜像签名,并将其发送给现场中的一组设备。这些设备会在下载后验证签名,并且只安装可信代码。客户可以使用 IAM 对签名工具进行精细访问控制,因此只有指定的开发人员才可以签名和安排新的固件更新。

问:我是否必须要使用代码签名?

不。您也可以使用自己的签名服务,并将签名后的镜像直接上传到 Amazon S3 中。您需要修改 FreeRTOS OTA 代理,以便接受您要使用的签名格式。

问:哪些硬件支持 OTA?

您可以在 AWS Partner Device Catalog 中找到支持 FreeRTOS OTA 且符合条件的硬件。

FreeRTOS 安全性

问:FreeRTOS 如何保护传输中的数据?

FreeRTOS 使用传输层安全性 (TLS 1.2) 保护与云的连接安全。TLS 协议可确保两个通信应用程序之间的隐私和数据完整性。它确保使用 X.509 证书对 FreeRTOS 设备和云服务器进行相互身份验证,并确保对传输中的数据进行加密。

问:FreeRTOS 如何保护设备内的数据(静态)?

FreeRTOS 使用名为 PKCS #11 的标准应用程序接口进行加密、数字签名和加密对象管理。如果专用存储不可用,则加密对象将会保存在专用存储或主微控制器的闪存中。如果您的设备需要静态数据加密,我们建议您使用专用加密硬件来保护加密密钥。使用 PKCS #11 API 访问密钥并加密和解密应用程序数据。

问:如何随时了解最新的安全补丁?

安全更新通过 FreeRTOS 控制台、FreeRTOS 安全更新页面,以及在 GitHub 上提供。

问:我在哪里可以报告安全问题?

要报告安全问题,请参阅 AWS 的漏洞报告

问:如何使用最新的安全补丁更新我的 FreeRTOS 设备?

我们建议您使用 FreeRTOS 的无线 (OTA) 更新功能向您的 FreeRTOS 设备发送安全补丁。在 AWS IoT Device Management 控制台中,您可以提供固件镜像,选择要更新的设备,并创建 FreeRTOS OTA 作业更新。代码签名功能将验证设备上的签名镜像,从而确保您的设备代码在部署和更新过程中不会受损。有关 OTA 更新功能的更多信息,请参阅 FreeRTOS 用户指南

了解有关 FreeRTOS 的更多信息

访问 FreeRTOS 概览页面
准备好开始使用了吗?
注册
还有更多问题?
联系我们