

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# Amazon-FreeRTOS Github 儲存庫遷移指南
<a name="github-repo-migration"></a>

 如果您現有的 FreeRTOS 專案是以現在已棄用的 amazon-freertos 儲存庫為基礎，請遵循下列步驟：

1.  隨時掌握最新、可公開取得的安全性修正。請查看 [FreeRTOS LTS 程式庫](https://www.freertos.org/lts-libraries.html)頁面以取得更新，或訂閱 [FreeRTOS-LTS](https://github.com/FreeRTOS/FreeRTOS-LTS) GitHub 儲存庫，以接收具有關鍵和安全性錯誤修正的最新 LTS 修補程式。您可以直接從個別 GitHub 儲存庫下載或複製所需的最新 FreeRTOS LTS 修補程式。

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 的建議。


**遷移的程式庫和示範**  

| 名稱 | 類型 | 建議 | 
| --- | --- | --- | 
| **coreHTTP** | 示範和程式庫 | 直接從 [FreeRTOS Github 組織中](https://github.com/FreeRTOS)的 coreHTTP 儲存庫 （如果使用 git，則為子模組） 複製或下載 coreHTTP 程式庫。 [coreHTTP](https://github.com/FreeRTOS/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 儲存庫 （如果使用 git，則為子模組） 複製或下載 [coreMQTT](https://github.com/FreeRTOS/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-代理程式 | 示範和程式庫  | 直接從 [FreeRTOS Github 組織中](https://github.com/FreeRTOS)的 coreMQTT-Agent 儲存庫 （如果使用 git，則為子模組） 複製或下載 [coreMQTT-Agent](https://github.com/FreeRTOS/coreMQTT-Agent) 程式庫。coreMQTT-Agent 示範位於 [coreMQTT-Agent-Demos](https://github.com/FreeRTOS/coreMQTT-Agent-Demos) 儲存庫中。如需詳細資訊，請參閱 [coreMQTT-Agent 頁面](https://www.freertos.org/mqtt-agent/index.html)。  | 
| device\$1defender\$1for\$1aws | 示範和程式庫  |  AWS IoT Device Defender 程式庫位於 [AWS GitHub 組織的](https://github.com/AWS)儲存庫中。直接從 [AWS IoT Device Defender ](https://github.com/aws/Device-Defender-for-AWS-IoT-embedded-sdk)儲存庫複製或下載它 （如果使用 git，則為子模組）。 AWS IoT Device Defender 示範位於[主要 FreeRTOS 分佈](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，則為子模組）。 AWS IoT Device Shadow 示範位於[主要 FreeRTOS 分發](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)。  | 
| job\$1for\$1aws | 示範和程式庫  |  AWS IoT Jobs 程式庫位於 [AWS GitHub 組織的](https://github.com/AWS)儲存庫中。直接從 [AWS IoT Jobs](https://github.com/aws/Jobs-for-AWS-IoT-embedded-sdk) 儲存庫複製或下載它 （如果使用 git，則為子模組）。 AWS IoT 任務示範位於[主要 FreeRTOS 分發](https://github.com/FreeRTOS/FreeRTOS/tree/main/FreeRTOS-Plus/Demo/AWS/Jobs_Windows_Simulator/Jobs_Demo)中。如需詳細資訊，請參閱 [AWS IoT 任務 頁面](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，則為子模組）。OTA AWS IoT 示範位於[主要 FreeRTOS 分佈](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  | 示範和程式庫  | 有一個在 WinSim 上執行的 CLI 範例。如需詳細資訊，請參閱 [ FreeRTOS Plus 命令列界面](https://www.freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_CLI/FreeRTOS_Plus_Command_Line_Interface.html)頁面。[ NXP i.MX RT1060 ](https://github.com/FreeRTOS/iot-reference-nxp-rt1060/tree/main/examples/common/cli)和 [ STM32U5](https://github.com/FreeRTOS/iot-reference-stm32u5/tree/main/Common/cli) 平台上精選的 FreeRTOS IoT 參考整合，也提供實際硬體的 CLI 範例。  | 
| 日誌  | macro | 有些 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)發佈。  | 


**已取代的程式庫和示範**  

| 名稱 | 類型 | 建議 | 
| --- | --- | --- | 
| BLE | 示範和程式庫 | FreeRTOS BLE 程式庫實作專屬的 MQTT 通訊協定，並支援透過行動電話等代理裝置透過低功耗藍牙 (BLE) 發佈和訂閱 MQTT 主題。這不再是強制性的。使用您自己的 BLE 堆疊或第三方選項，例如 [NimBLE](https://mynewt.apache.org/latest/network/)，以最佳化您的專案。  | 
| dev\$1mode\$1key\$1provisioning | 示範 | [ NXP i.MX RT1060](https://github.com/FreeRTOS/iot-reference-nxp-rt1060/blob/main/examples/common/cli/cli.c)、[STM32U5](https://github.com/FreeRTOS/iot-reference-stm32u5/blob/main/Common/cli/cli_pki.c) 或 [ ESP32-C3](https://github.com/FreeRTOS/iot-reference-esp32c3/blob/main/GettingStartedGuide.md) 平台上精選的 FreeRTOS IoT 參考整合提供使用 CLI 的關鍵佈建範例。  | 
| posix | 抽象和示範 | 不建議使用。 | 
| wifi\$1provisioning | example | 此範例示範如何使用 Amazon-FreeRTOS BLE 程式庫在裝置上佈建 WiFi 登入資料。如需透過 BLE 佈建 WiFi 的範例，請參閱 [ESP32C3 平台上](https://github.com/FreeRTOS/iot-reference-esp32c3)的 FreeRTOS 精選 IoT 參考。  | 
| 舊版抽象 APIs | code | 這些 APIs 旨在為來自各種廠商的各種第三方軟體堆疊、連線模組和 MCU 平台提供抽象界面。例如，有用於 WiFi 抽象、安全通訊端等的界面。Amazon-FreeRTOS 儲存庫支援它們，且位於 資料夾 中`/libraries/abstractions/`。使用 [ FreeRTOS LTS 程式庫](https://www.freertos.org/lts-libraries.html)時，不需要這些 APIs。 | 

上表中的程式庫和示範將不會取得安全性修補程式或錯誤修正。

**第三方程式庫**

當 Amazon-FreeRTOS 中的示範使用第三方程式庫時，建議您直接從第三方儲存庫對它們進行子模組。
+ **CMock**：直接從 [Cmock](https://github.com/ThrowTheSwitch/CMock) 儲存庫複製它 （如果您使用 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)或 [STM32U5](https://github.com/FreeRTOS/iot-reference-stm32u5) 上的 FreeRTOS 精選參考整合，了解如何在硬體平台/主機板上實作 lwip\$1osal。
+ **mbedtls**：直接從 [Mbed-TLS](https://github.com/Mbed-TLS/mbedtls) 儲存庫複製它 （如果您使用 git，則為子模組）。mbedtls 組態和公用程式可以重複使用；在此情況下，請進行本機複製。
+ **pkcs11**：直接從 [corePKCS11](https://github.com/FreeRTOS/corePKCS11) 程式庫或 OASIS PKCS 11 [https://github.com/oasis-tcs/pkcs11](https://github.com/oasis-tcs/pkcs11)儲存庫複製它 （如果您使用 git，則為子模組）。
+ **tinycbor**：直接從[tinycbor](https://github.com/intel/tinycbor) 儲存庫複製它 （如果您使用 git，則為子模組）。
+ **tinycrypt**：如果可用，建議您從 MCU 平台使用加密加速器。如果您想要繼續使用 tinycrypt，請直接從 [tinycrypt 儲存庫複製它 ](https://github.com/intel/tinycrypt)（如果您使用 git，則為子模組）。
+ **tracealyzer\$1recorder**：直接從 Percepio 的[追蹤記錄器](https://github.com/percepio/TraceRecorderSource)儲存庫複製它 （如果您使用 git，則為子模組）。
+ **unity**：直接從 [ThrowTheSwitch/Unity](https://github.com/ThrowTheSwitch/Unity) 儲存庫複製它 （如果您使用 git，則為子模組）。
+ **win\$1pcap**：不再維護 win\$1pcap。我們建議您改用 libslirp、libpcap (posix) 或 npcap。

**移植測試和整合測試**

在 資料夾下驗證 FreeRTOS 程式庫整合`/tests`所需的所有測試都會遷移至 [ FreeRTOS-Libraries-Integration-Tests](https://github.com/FreeRTOS/FreeRTOS-Libraries-Integration-Tests) 儲存庫。這些可用於測試 PAL 實作和程式庫整合。 AWS IoT Device Tester (IDT) 會針對 [AWS FreeRTOS 的裝置資格計劃](https://docs.aws.amazon.com/freertos/latest/qualificationguide/afr-qualification.html)使用相同的測試。