

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

# Amazon-FreeRTOS Github 存储库迁移指南
<a name="github-repo-migration"></a>

 如果您有一个基于现已弃用的 Amazon FreeRTOS 存储库的 FreeRTOS 项目，请按照以下步骤操作：

1.  随时了解最新的公开可用安全修复程序。[查看 [FreeRTOS LTS](https://www.freertos.org/lts-libraries.html) 库页面以获取更新，或者订阅 GitHub FreerTOS-LTS 存储库以接收包含关键和安全错误修复的最新 LTS 补丁。](https://github.com/FreeRTOS/FreeRTOS-LTS)您可以直接从各个存储库下载或克隆所需的最新 FreeRTOS LTS 补丁。 GitHub 

1.  考虑重构网络传输接口实现以优化您的硬件平台。最新的 [CoreMQTT](https://www.freertos.org/mqtt/index.html) 库不需要 APIs 诸如[安全套接字](https://docs.aws.amazon.com/freertos/latest/userguide/secure-sockets.html)和 [Wifi APIs](https://docs.aws.amazon.com/freertos/latest/userguide/freertos-wifi.html) 之类的摘要。有关更多详细信息，请参阅[传输接口](https://www.freertos.org/network-interface.html)。

## 附录
<a name="appendix"></a>

下表提供了对 Amazon-FreerTOS 存储库 APIs 中所有演示项目、旧库和摘要的建议。


**迁移的库和演示**  

| Name | Type | 建议 | 
| --- | --- | --- | 
| **coreHTTP** | 演示和库 | 直接从 [FreeRTOS Github 组织[中的 ](https://github.com/FreeRTOS/coreHTTP)coreHTTP](https://github.com/FreeRTOS) 存储库（如果使用 git，则为子模块）克隆或下载 coreHTTP 库。coreHTTP 演示在 [FreeRTOS 的主分发](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/coreHTTP_Windows_Simulator)中。有关更多详细信息，请参考 [coreHTTP 页面](https://www.freertos.org/http/index.html)。  | 
| coreMQTT | 演示和库 | 直接从 [FreeRTOS Github 组织[中的 ](https://github.com/FreeRTOS/coreMQTT)coreMQTT](https://github.com/FreeRTOS) 存储库（如果使用 git，则为子模块）克隆或下载 coreMQTT 库。coreMQTT 演示在 [FreeRTOS 主分发](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/coreMQTT_Windows_Simulator)中。有关更多详细信息，请参考 [coreMQTT 页面](https://www.freertos.org/mqtt/index.html)。  | 
| coreMQTT-Agent | 演示和库  | 直接从 [FreeRTOS Github 组织[中的 ](https://github.com/FreeRTOS/coreMQTT-Agent)coreMQTT 代理](https://github.com/FreeRTOS)存储库（如果使用 git，则为子模块）克隆或下载 coreMQTT 代理库。coreMQTT 代理演示在 [coreMQTT 代理演示](https://github.com/FreeRTOS/coreMQTT-Agent-Demos)存储库中。有关更多详细信息，请参考 [coreMQTT 代理页面](https://www.freertos.org/mqtt-agent/index.html)。  | 
| device\$1defender\$1for\$1aws | 演示和库  | De AWS IoT vice Defender 库位于[AWS GitHub 组织](https://github.com/AWS)中的存储库中。直接从 [AWS IoT Device Defender](https://github.com/aws/Device-Defender-for-AWS-IoT-embedded-sdk) 存储库中克隆或下载该库（如果使用 git，则为子模块）。Dev AWS IoT ice Defender 演示在 FreeR [TOS 的主发行版](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Device_Defender_Windows_Simulator/Device_Defender_Demo)中。有关更多详细信息，请参阅 [AWS IoT Device Defender 页面](https://www.freertos.org/iot-device-defender/index.html)。  | 
| device\$1shadow\$1for\$1aws | 演示和库  |  AWS IoT Device Shadow 库位于[AWS GitHub 组织](https://github.com/AWS)中的存储库中。直接从 [AWS IoT Device Shadow](https://github.com/aws/Device-Shadow-for-AWS-IoT-embedded-sdk) 存储库中克隆或下载该库（如果使用 git，则为子模块）。Dev AWS IoT ice Shadow 演示在 FreeR [TOS 的主发行版](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Device_Shadow_Windows_Simulator)中。有关更多详细信息，请参阅 [AWS IoT Device Shadow 页面](https://www.freertos.org/iot-device-shadow/index.html)。  | 
| jobs\$1for\$1aws | 演示和库  |  AWS IoT 作业库位于[AWS GitHub 组织](https://github.com/AWS)中的存储库中。直接从 [AWS IoT Jobs](https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk) 存储库中克隆或下载该库（如果使用 git，则为子模块）。 AWS IoT 任务演示位于[主要的 FreeRT](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo) OS 发行版中。有关更多详细信息，请参考 [AWS IoT Jobs 页面](https://www.freertos.org/iot-jobs/index.html)。  | 
| OTA | 演示和库  |  AWS IoT Over-The-Air (OTA) 更新库位于[AWS GitHub 组织](https://github.com/AWS)中的存储库中。直接从 [AWS IoT OTA](https://github.com/aws/ota-for-aws-iot-embedded-sdk) 存储库中克隆或下载该库（如果使用 git，则为子模块）。 AWS IoT OTA 演示在 FreeR [TOS 的主发行版](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Ota_Windows_Simulator)中。有关更多详细信息，请参考 [AWS IoT OTA 页面](https://www.freertos.org/ota/index.html)。  | 
| CLI 和 FreeRTOS\$1Plus\$1CLI  | 演示和库  | 上面有一个 CLI 示例 WinSim。有关更多详细信息，请参阅 [ FreeRTOS Plus 命令行界面](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/FreeRTOS_Plus_Command_Line_Interface.html)页面。 RT1060恩智浦 [ STM32i.M](https://github.com/FreeRTOS/iot-reference-stm32u5/tree/main/Common/cli) X和U5平台[上的](https://github.com/FreeRTOS/iot-reference-nxp-rt1060/tree/main/examples/common/cli)精选FreeRTOS物联网参考集成还提供了有关实际硬件的CLI示例。  | 
| 日志记录  | 宏 | 某些 FreeRTOS 库提供了适用于特定硬件平台的日志宏的实现。有关如何实现日志宏的信息，请参阅[日志记录页面](https://www.freertos.org/logging.html)。有关在实际硬件上运行的示例，请参阅 [FreeRTOS 精选 IoT 参考之一](https://github.com/FreeRTOS/iot-reference-nxp-rt1060/tree/main/examples/common/logging)。  | 
| greengrass\$1connectivity  | 演示 | [迁移正在进行中] 此演示项目假设在连接到 AWS IoT Greengrass 设备之前可以进行云连接。一个演示本地身份验证和发现能力的新项目正在开发中。预计新演示项目将很快会在 [FreeRTOS Github 组织](https://github.com/FreeRTOS)中发布。  | 


**已弃用的库和演示**  

| Name | Type | 建议 | 
| --- | --- | --- | 
| BLE | 演示和库 | FreeRTOS BLE 库可实现专有的 MQTT 协议并支持通过代理设备（例如手机）使用低功耗蓝牙 (BLE) 功能发布和订阅 MQTT 主题。这不再是强制性的。您可以使用自己的 BLE 堆栈或第三方选项（例如 [NimBLE](https://mynewt.apache.org/latest/network/)）来最大限度优化项目。  | 
| dev\$1mode\$1key\$1provisioning | 演示 |  RT1060[恩智浦 [ STM32i.MX](https://github.com/FreeRTOS/iot-reference-stm32u5/blob/main/Common/cli/cli_pki.c)、U5 ESP32 或-C3平台[上的](https://github.com/FreeRTOS/iot-reference-nxp-rt1060/blob/main/examples/common/cli/cli.c)精选FreeRTOS物联网参考集成提供了使用CLI进行关键配置的示例。](https://github.com/FreeRTOS/iot-reference-esp32c3/blob/main/GettingStartedGuide.md)  | 
| posix | 抽象和演示 | 不建议使用。 | 
| wifi\$1provisioning | 示例 | 此示例演示了如何使用 Amazon-FreerTOS BLE 库在设备上配置 WiFi 凭证。有关通过 BLE 进行配置的 WiFi 示例，请参阅 C3 平台[ESP32上](https://github.com/FreeRTOS/iot-reference-esp32c3)的 FreeRTOS 精选物联网参考资料。  | 
| 遗产摘要 APIs | 代码 | 它们 APIs 旨在为来自不同供应商的各种第三方软件堆栈、连接模块和 MCU 平台提供抽象接口。例如，有 WiFi 抽象接口、安全套接字等。它们在 Amazon-FreeRTOS 存储库中受支持，并且位于 `/libraries/abstractions/` 文件夹中。 APIs 在使用 [FreeRTOS LTS](https://www.freertos.org/lts-libraries.html) 库时，这些都不是必需的。 | 

上表中的库和演示不会获得安全补丁或错误修复。

**第三方库**

当 Amazon-FreeRTOS 中的演示使用第三方库时，我们建议您直接使用第三方存储库中的子模块。
+ **CMock**: 直接从 C [moc](https://github.com/ThrowTheSwitch/CMock) k 存储库中克隆它（如果你使用 git 则为子模块）。
+ **jsmn**：不推荐，也不再受支持。
+ **lwip**：直接从 [lwip-tcpip](https://github.com/lwip-tcpip/lwip) 存储库中克隆（如果使用 git，则为子模块）。
+ **lwip\$1osal**[：请参阅 i [.MX RT1060](https://github.com/FreeRTOS/iot-reference-nxp-rt1060) 或 STM32 U5 上的 FreeRTOS 精选参考集成，了解如何在硬件平台/主板上实现 lwip\$1osal。](https://github.com/FreeRTOS/iot-reference-stm32u5)
+ **mbedtls**：直接从 [Mbed-TLS](https://github.com/Mbed-TLS/mbedtls) 存储库中克隆（如果使用 git，则为子模块）。mbedtls 配置和实用工具可重复使用；在这种情况下，请创建本地副本。
+ **pkcs11**：直接从[核心](https://github.com/FreeRTOS/corePKCS11)库或 O [ASIS PK](https://github.com/oasis-tcs/pkcs11) CS 11 存储PKCS11库中克隆它（如果你使用 git 则为子模块）。
+ **tinycbor**：直接从 [tinycbor](https://github.com/intel/tinycbor) 存储库中克隆（如果使用 git，则为子模块）。
+ **tinycrypt**：我们建议您使用 MCU 平台上的加密加速器（如果有）。如果您想继续使用 tinycrypt，请直接从 [tinycrypt](https://github.com/intel/tinycrypt) 存储库中克隆（如果使用 git，则为子模块）。
+ **tracealyzer\$1recorder**：直接从 Percepio 的 [trace recorder](https://github.com/percepio/TraceRecorderSource) 存储库中克隆（如果使用 git，则为子模块）。
+ **unity**：直接从 [ThrowTheSwitch/Unit](https://github.com/ThrowTheSwitch/Unity) y 存储库中克隆它（如果你使用 git 则为子模块）。
+ **win\$1pcap**：win\$1pcap 已停止维护。我们建议您使用 libslirp、libpcap (posix) 或 npcap。

**移植测试和集成测试**

该`/tests`文件夹下验证FreeRTOS库集成所需的所有测试都已迁移到存储库中。[ FreeRTOS-Libraries-Integration-Tests](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests)它们可用于测试 PAL 实现和库集成。 AWS IoT 设备测试器 (IDT) 在 FreeRTOS 的[AWS 设备认证计划](https://docs.aws.amazon.com/freertos/latest/qualificationguide/afr-qualification.html)中使用相同的测试。