从版本 1.4.x 迁移到版本 201906.00(和更高版本) - FreeRTOS
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

从版本 1.4.x 迁移到版本 201906.00(和更高版本)

有关 FreeRTOS 发布版本的列表,请参阅 https://github.com/aws/amazon-freertos/releases

迁移应用程序

FreeRTOS 版本 201906.00 对 FreeRTOS 目录结构进行了一些更改,从而拆分在以前版本的 FreeRTOS 上构建的项目文件。要使在以前版本的 FreeRTOS 上构建的应用程序能够用于 FreeRTOS 版本 201906.00 或更高版本,您必须将应用程序代码移动到新的项目中,并在应用程序中包含 201906.00 标头文件。

版本 201906.00 为 MQTT、Device Shadow 和 Device Defender 库引入了新的 API。这些库的早期版本 API 可通过这些库的 201906.00 实施的标头文件访问,使得 FreeRTOS 版本 201906.00 实现向后兼容。

注意

如果从以前版本迁移到 201906.00 或更高版本,您可能需要重新配置 iot_config.hFreeRTOSConfig.h 文件以适合新的库实施。有关全局配置设置的信息,请参阅全局配置文件参考

迁移移植项

如果移植了在 201906.00 版本之前发布的 FreeRTOS 版本,则需要迁移移植的代码,以便与 201906.00 和更高版本保持兼容。有关移植的信息,请参阅 FreeRTOS 移植指南

FreeRTOS 代码目录结构

在 201906.00 之前发布的版本中,/lib/third_party/mcu_vendor/vendor 文件夹保留供应商移植的代码。一个或多个项目文件 vendor 编译代码的文件夹。在 201906.00 和更高版本中,供应商代码位于 /vendors/vendor 文件夹中,项目文件位于 /projects/vendor 文件夹中。

注意

不会在版本 201906.00 中更改移植代码,而仅更改代码的位置。将现有移植项移动到新文件夹结构。

CMake 构建系统

版本 201906.00 引入了对使用 CMake 生成项目文件的支持。有关将 CMake 用于 FreeRTOS 的信息,请参阅建筑 FreeRTOS 配 CMake

资格认证需要 CMake 列表文件。有关创建 CMake 列表文件的信息,请参阅创建 CMake 列表文件

迁移 Wi-Fi 库移植项

FreeRTOS Wi-Fi 库具有四个新的 API 用于添加、删除和检索 Wi-Fi 网络,以及接收 Wi-Fi 网络状态更改的通知。所有这些新 API 是可选的,其目的是支持通过低功耗蓝牙的 Wi-Fi 凭证预置。如果您的设备不支持低功耗蓝牙,则无需实施这些 API。

  • WIFI_NetworkAdd

    WIFIReturnCode_t WIFI_NetworkAdd( const WIFINetworkProfile_t * const pxNetworkProfile, uint16_t * pusIndex );
  • WIFI_NetworkGet

    WIFIReturnCode_t WIFI_NetworkGet( WIFINetworkProfile_t * pxNetworkProfile, uint16_t usIndex );
  • WIFI_NetworkDelete

    WIFIReturnCode_t WIFI_NetworkDelete( uint16_t usIndex );
  • WIFI_RegisterNetworkStateChangeEventCallback

    WIFIReturnCode_t WIFI_RegisterNetworkStateChangeEventCallback( IotNetworkStateChangeEventCallback_t xCallback );

使用以下 typedef 语句:

typedef void ( *IotNetworkStateChangeEventCallback_t ) ( uint32_t ulNetworkType, AwsIotNetworkState_t xState );
typedef enum AwsIotNetworkState { eNetworkStateUnknown = 0, eNetworkStateDisabled, eNetworkStateEnabled } AwsIotNetworkState_t;

有关移植 Wi-Fi 库的信息,请参阅 FreeRTOS 移植指南中的移植 Wi-Fi 库