

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

# FreeRTOS 程式庫
<a name="dev-guide-freertos-libraries"></a>

FreeRTOS 程式庫為 FreeRTOS 核心及其內部程式庫提供額外的功能。您可以使用 FreeRTOS 程式庫在內嵌應用程式中進行聯網和安全性。FreeRTOS 程式庫也可讓您的應用程式與 AWS IoT 服務互動。FreeRTOS 包含程式庫，可讓您：
+ 使用 MQTT 和裝置陰影將裝置安全地連線至 AWS IoT 雲端。
+ 探索並連接至 AWS IoT Greengrass 核心。
+ 管理 Wi-Fi 連線。
+ 聆聽和處理 [FreeRTOS Over-the-Air更新](freertos-ota-dev.md)。

`libraries` 目錄包含 FreeRTOS 程式庫的原始程式碼。helper 函數可協助您實作程式庫功能。我們不建議您變更這些 helper 函數。

## FreeRTOS 移植程式庫
<a name="dev-guide-freertos-porting-libraries"></a>

下列移植程式庫包含在可在 FreeRTOS 主控台下載的 FreeRTOS 組態中。這些程式庫與平台相依。其內容會根據您的硬體平台而變更。如需將這些程式庫移植到裝置的詳細資訊，請參閱 [FreeRTOS 移植指南](https://docs.aws.amazon.com/freertos/latest/portingguide/)。


**FreeRTOS 移植程式庫**  

| 程式庫 | API 參考 | Description | 
| --- | --- | --- | 
| 低功耗藍牙 |  [低功耗藍牙 API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/ble/index.html)  | 使用 FreeRTOS 低功耗藍牙程式庫，您的微型控制器可以透過閘道裝置與 AWS IoT MQTT 代理程式通訊。如需詳細資訊，請參閱[低功耗藍牙程式庫](freertos-ble-library.md)。 | 
| 無線更新 | [AWS IoT Over-the-air更新 API 參考](https://docs.aws.amazon.com/embedded-csdk/latest/lib-ref/libraries/aws/ota-for-aws-iot-embedded-sdk/docs/doxygen/output/html/index.html) |  FreeRTOS AWS IoT Over-the-air (OTA) 更新程式庫可讓您管理更新通知、下載更新，以及在 FreeRTOS 裝置上執行韌體更新的密碼編譯驗證。 如需詳細資訊，請參閱[AWS IoT 無線 (OTA) 程式庫](ota-update-library.md)。  | 
| FreeRTOS\$1POSIX | [FreeRTOS\$1POSIX API 參考](https://freertos.org/Documentation/api-ref/POSIX/index.html) |  您可以使用 FreeRTOS\$1POSIX 程式庫，將與 POSIX 相容的應用程式移植到 FreeRTOS 生態系統。 如需詳細資訊，請參閱 [FreeRTOS\$1POSIX](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_POSIX/index.html)。  | 
| Secure Sockets | [ Secure Sockets API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/secure_sockets/index.html) | 如需詳細資訊，請參閱[Secure Sockets 程式庫](secure-sockets.md)。 | 
| FreeRTOS\$1TCP | [ FreeRTOS\$1TCP API 參考](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/FreeRTOS_TCP_API_Functions.html) |  FreeRTOS\$1TCP 是一種適用於 FreeRTOS 的可擴展、開放原始碼和執行緒安全 TCP/IP 堆疊。 如需詳細資訊，請參閱 [FreeRTOS\$1TCP](https://freertos.org/FreeRTOS-Plus/FreeRTOS_Plus_TCP/index.html)。  | 
| Wi-Fi | [Wi-Fi API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/wifi/index.html) |  FreeRTOS Wi-Fi 程式庫可讓您與微型控制器的較低層級無線堆疊進行界面。 如需更多資訊，請參閱[Wi-Fi 程式庫](freertos-wifi.md)。  | 
| corePKCS11 |  |  corePKCS11 程式庫是公有金鑰密碼編譯標準 \$111 的參考實作，以支援佈建和 TLS 用戶端身分驗證。 如需更多資訊，請參閱[corePKCS11 程式庫](security-pkcs.md)。  | 
| TLS |  |  如需詳細資訊，請參閱[Transport Layer Security](security-tls.md)。  | 
| 通用 I/O | 通用 I/O API 參考 |  如需詳細資訊，請參閱[通用 I/O](common-io.md)。  | 
| 行動介面 | 行動介面 API 參考 |  行動介面程式庫透過統一 API 公開一些熱門行動數據機的功能。如需更多資訊，請參閱[行動介面程式庫](cellular-interface.md)。  | 

## FreeRTOS 應用程式程式庫
<a name="dev-guide-freertos-application-libraries"></a>

您可以選擇在 FreeRTOS 組態中包含下列獨立應用程式程式庫，以與雲端上的 AWS IoT 服務互動。

**注意**  
某些應用程式程式庫與適用於 Embedded C 的 AWS IoT 裝置開發套件中的程式庫具有相同的 APIs。 如需這些程式庫，請參閱 [AWS IoT 裝置 SDK C API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/c-sdk/main/index.html)。如需適用於 Embedded C 的 AWS IoT 裝置開發套件的詳細資訊，請參閱 [AWS IoT 適用於 Embedded C 的 裝置 SDK](c-sdk.md)。


**FreeRTOS 應用程式程式庫**  

| 程式庫 | API 參考 | Description | 
| --- | --- | --- | 
| AWS IoT Device Defender |  [ Device Defender C SDK API 參考](https://docs.aws.amazon.com/embedded-csdk/latest/lib-ref/libraries/aws/device-defender-for-aws-iot-embedded-sdk/docs/doxygen/output/html/index.html)  |  FreeRTOS AWS IoT Device Defender 程式庫會將您的 FreeRTOS 裝置連接到 AWS IoT Device Defender。 如需詳細資訊，請參閱[AWS IoT Device Defender 程式庫](afr-device-defender-library.md)。  | 
| AWS IoT Greengrass | [ Greengrass API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__greengrass__discovery_8h.html)  |  FreeRTOS AWS IoT Greengrass 程式庫會將您的 FreeRTOS 裝置連接到 AWS IoT Greengrass。 如需詳細資訊，請參閱[AWS IoT Greengrass 探索程式庫](freertos-lib-gg-connectivity.md)。  | 
| MQTT |  [ MQTT (v1.x.x) 程式庫 API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__mqtt__lib_8h.html) [MQTT (v1) 代理程式 API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__mqtt__agent_8h.html) [MQTT (v2.x.x) C SDK API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/c-sdk/mqtt/index.html)  |  coreMQTT 程式庫為您的 FreeRTOS 裝置提供用戶端，以發佈和訂閱 MQTT 主題。MQTT 是裝置用來互動的通訊協定 AWS IoT。 如需 coreMQTT 程式庫 3.0.0 版的詳細資訊，請參閱 [coreMQTT 程式庫](coremqtt.md)。  | 
| coreMQTT 代理程式 |  [ coreMQTT Agent Library API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/embedded-csdk/libraries/standard/coreMQTT-Agent/docs/doxygen/output/html/index.html)  |  coreMQTT Agent 程式庫是高階 API，可將執行緒安全性新增至 coreMQTT 程式庫。它可讓您建立專用 MQTT 代理程式任務，在背景中管理 MQTT 連線，而且不需要其他任務的任何介入。程式庫提供與 coreMQTT APIs相當的安全執行緒，因此可用於多執行緒環境。 如需 coreMQTT Agent 程式庫的詳細資訊，請參閱 [coreMQTT 代理程式程式庫](coremqtt-agent.md)。  | 
| AWS IoT 裝置影子 | [Device Shadow C SDK API 參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__shadow_8h.html) |   AWS IoT Device Shadow 程式庫可讓您的 FreeRTOS 裝置與 AWS IoT 裝置陰影互動。 如需詳細資訊，請參閱[AWS IoT 裝置影子程式庫](freertos-lib-cloud-shadows.md)。  | 

## 設定 FreeRTOS 程式庫
<a name="lib-config"></a>

FreeRTOS 和 AWS IoT Device SDK for Embedded C 的組態設定定義為 C 預處理器常數。您可以透過全域組態檔案或使用編譯器選項 (例如 `gcc` 中的 `-D`) 來設定組態設定。由於組態設定是定義為編譯時間常數，因此若組態設定變更，便必須重新建立程式庫。

如果您想要使用全域組態檔案來設定組態選項，請使用名稱 `iot_config.h` 建立並儲存檔案，再將它放在包含路徑中。在 檔案中，使用 `#define` 指令來設定 FreeRTOS 程式庫、示範和測試。

如需支援的全球組態選項詳細資訊，請參閱[全域組態檔案參考](https://docs.aws.amazon.com/freertos/latest/lib-ref/c-sdk/main/global_library_config.html#IOT_CONFIG_FILE)。