FreeRTOS

问:什么是 FreeRTOS?

FreeRTOS 是一款开源实时操作系统,让您可以轻松地编写、部署、保护和维护基于微控制器的边缘设备。FreeRTOS 在 MIT 开源许可证下免费分发,包括一个内核和一组不断丰富的软件库,适用于各种行业部门和应用程序。其中包括将低功耗的小型设备安全地连接到 亚马逊云科技 云服务(例如 Amazon IoT Core)或功能更强大、运行 Amazon IoT Greengrass 的边缘设备。FreeRTOS 的构建侧重于可靠性和易用性。

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

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

问:FreeRTOS 在哪些 亚马逊云科技 区域可用?

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

问:FreeRTOS 有哪些使用案例?

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

问:微控制器开发人员如何获取 FreeRTOS?

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

问:谁可以从 FreeRTOS 中获益?

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

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

企业可以使用连接 IoT 并采用 FreeRTOS 的设备来提高业务效率和运营效率。

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

Amazon FreeRTOS 扩展了 FreeRTOS 内核,这是一种适用于微控制器的实时操作系统内核,其中包括支持连接、安全和无线更新的库。连接堆栈包括 MQTT、HTTP、TCP/IP、Wi-Fi 和低功耗蓝牙,用于云和本地连接。安全库包括用于 TLS 的基于标准的伯克利套接字接口和用于加密卸载的 PKCS #11 标准接口。

  • 用户(应用程序)代码:定义应用程序的业务逻辑和功能。
    FreeRTOS 内核:面向嵌入式微控制器设备的 MITS 许可实时操作系统 (RTOS) 内核。
  • MQTT:MQTT 客户端库,您可以使用该库创建发布和订阅 MQTT 主题以及连接到基于 MQTT 的消息代理的应用程序。
  • HTTP 库:可用于创建使用 REST API 连接到 HTTP 服务器的应用程序的 HTTP 客户端库。
  • Wi-Fi 管理库:一个通用的 API 层,用于抽象特定于端口的 Wi-Fi 实现并简化应用程序开发。
  • 低功耗蓝牙管理库:标准化 API 层,可让您使用通用访问配置文件 (GAP) 和通用属性 (GATT) 配置文件创建低功耗蓝牙应用程序。
  • 设备后卫库:允许您的基于亚马逊免费托斯的设备与 Amazon IoT 设备后卫一起工作。 
  • 设备阴影库:定义用于创建、更新和删除 Amazon IoT 设备阴影的函数。 
  • OTA 代理:让您能够管理 Amazon FreeRTOS 设备固件更新的通知、下载和验证。
  • Greengrass 发现:帮助 Amazon FreeRTOS 设备发现并连接到 Amazon IoT 绿色核心的库。
  • 亚马逊免费内部库:包括 TLS、PKCS #11 和 TCP/IP 等库。
    • TLS:传输层安全性 (TLS) 接口是一个可选的包装器,用于抽象底层 TLS 堆栈的加密实现细节。 
    • PKCS #11:一个加密 API 层(OASIS 标准),用于抽象密钥存储、获取/设置加密对象属性以及会话语义。
  • 供应商提供的库:包含驱动程序、板支持包 (BSP) 和连接堆栈(例如低功耗蓝牙、Wi-Fi)。

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

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

问:FreeRTOS 支持哪些架构?

FreeRTOS 当前支持 Amazon Partner Device Catalog 中由合作伙伴提供的多种微控制器。FreeRTOS 支持 40 多种架构。

问:如何开始使用 FreeRTOS?

您可以参阅入门指南,获取在合格主板上运行 FreeRTOS 的系统化说明。

问:如何获得技术支持?

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

FreeRTOS 社区论坛

技术支持

客户支持

GitHub 问题

问:是否有用户指南?

是。您可以从入门页面的文档部分访问 FreeRTOS 用户指南

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

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

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

是。Amazon FreeRTOS 是一款采用 MIT 许可证分发的开源软件,因此可以在未经我们许可的情况下对其进行修改以适应您的应用程序或项目的任何特定需求。

问:FreeRTOS 如何收费?

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

问:如何在不购买硬件的情况下探索亚马逊 FreeRTOS?

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

问:FreeRTOS 是否包含硬件?

不包含。FreeRTOS 是一种适用于微控制器的开源实时操作系统。您可以通过移植 FreeRTOS 代码并使用 Amazon IoT 设备测试器验证所移植的代码,在所选微控制器上运行 FreeRTOS。为了让您更轻松,我们在 Amazon 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 年的时间开发,并与世界领先的芯片公司合作开发。

问:Amazon 是否维护 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 的 Amazon IoT 设备测试器

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

适用于 FreeRTOS 的 Amazon IoT 设备测试器是一款基于 Windows/Linux/Mac 的测试自动化工具,可让半导体供应商在其微控制器主板上自行测试 FreeRTOS 并验证其是否符合要求。通过 Amazon IoT 设备测试器,半导体供应商可以验证其微控制器主板是否可以运行 FreeRTOS,并通过 Amazon IoT 服务进行身份验证并与之互操作。

问:适用于 FreeRTOS 的 Amazon IoT 设备测试器会测试哪些方面?

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

问:如何使基于微控制器的硬件平台列入 Amazon Partner Device Catalog ?

亚马逊云科技 设备认证计划定义了您的微控制器列入 Amazon Partner Device Catalog 的流程。下面简要概述了这一流程:首先,您必须通过适用于 Amazon FreeRTOS 的 Amazon IoT 设备测试器测试。接下来,登录 亚马逊云科技 合作伙伴网络门户并上传适用于 FreeRTOS 的 Amazon IoT 设备测试器报告。为已移植的 FreeRTOS 接口提供源代码参考,使其可供 OEM 使用。当 亚马逊云科技 验证了移植的代码和报告且您提交其他设备相关构件(如设备映像、数据表等)后,该设备将列入 Amazon Partner Device Catalog。

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

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

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

使用适用于 FreeRTOS 的 Amazon IoT 设备测试器无需付费。不过,您需要承担资格评估测试过程中因使用 亚马逊云科技 产生的所有费用。平均而言,Amazon IoT 设备测试器的单次运行成本将低于一分。如需了解相关费用,请参阅 Amazon IoT Core 定价

FreeRTOS 与 Amazon IoT Greengrass

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

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

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

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

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

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

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

问:如何将 FreeRTOS 设备连接到 Amazon IoT Greengrass Core 设备?

Amazon IoT Greengrass Discovery 库包含在 FreeRTOS 源代码中,使您能够查找并连接到 Amazon IoT Greengrass Core 设备。有关更多信息,请参阅 FreeRTOS 用户指南

FreeRTOS 和低功耗蓝牙

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

FreeRTOS 中的低功耗蓝牙支持提供标准化的 API 层,可让开发人员编写能在符合 FreeRTOS 要求的主板之间移植的低功耗蓝牙应用程序。它包括配套的 Android 和 iOS 软件开发工具包,使 FreeRTOS 设备能够使用 Android 或 iOS 设备作为代理,从而使用 Amazon IoT 服务。您可以使用标准的通用接入配置文件 (GAP) 和通用属性 (GATT) 配置文件来编写低功耗蓝牙应用程序,为 MQTT over Bluetooth Low Energy 使用自定义配置文件,以及通过低功耗蓝牙预置 Wi-Fi。

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

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

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

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

问:如何查找所需的库?

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

问:FreeRTOS 中的低功耗蓝牙支持是否仅可用于 亚马逊云科技?

否。 适用于低功耗蓝牙的 Amazon FreeRTOS 库是开源的,并采用 MIT 许可证,因此开发人员可以根据他们的特定需求进行修改。

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

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

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

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

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

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

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

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

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

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

低功耗蓝牙 MQTT 使低功耗蓝牙设备能够通过代理设备连接到 Amazon IoT,并使您能够使用其他 亚马逊云科技 服务和功能,包括 Amazon IoT 设备防护、Amazon IoT 设备阴影和 Amazon FreeRTOS OTA 更新。

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

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

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

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

FreeRTOS 和 Amazon IoT Device Management

问:如何使用新固件更新我的设备?

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

问:什么是代码签名?

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

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

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

问:哪些硬件支持 OTA?

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

FreeRTOS 安全性

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

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

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

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

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

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

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

我们建议您使用亚马逊 FreeRTOS 的无线 (OTA) 更新功能向您的亚马逊 FreeRTOS 设备发送安全补丁程序。在 Amazon IoT 设备管理控制台中,您可以提供固件映像、选择要更新的设备以及创建 Amazon FreeRTOS OTA 任务更新。代码签名功能将验证设备上的已签名映像,以确保您的设备代码在部署和更新期间不会受到损害。有关 OTA 更新功能的更多信息,请参阅亚 马逊 FreeRTOS 用户指南

了解有关 FreeRTOS 的更多信息

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

开始使用亚马逊云科技免费构建

开始使用亚马逊云科技免费构建

关闭
热线

热线

1010 0766
由光环新网运营的
北京区域
1010 0966
由西云数据运营的
宁夏区域