

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

# 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 库的源代码。协助实施库功能的帮助程序函数。建议您不要更改这些帮助程序函数。

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

以下移植库包含在可从 FreeRTOS 控制台下载的 FreeRTOS 的配置中。这些库与平台相关。其内容因硬件平台而异。有关将这些库移植到设备的信息，请参阅[《FreeRTOS 移植指南》](https://docs.aws.amazon.com/freertos/latest/portingguide/)。


**FreeRTOS 移植库**  

| 库 | API 参考 | 说明 | 
| --- | --- | --- | 
| 低功耗蓝牙 |  [低功耗蓝牙 API 参考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/ble/index.html)  | 使用 FreeRTOS 低功耗蓝牙库，您的微控制器可以通过网关设备与 MQTT 代理 AWS IoT 进行通信。有关更多信息，请参阅 [低功耗蓝牙库](freertos-ble-library.md)。 | 
| Over-the-Air 更新 | [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) |  FreeRTO AWS IoT Over-the-air S (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)。  | 
| 安全套接字 | [ 安全套接字 API 参考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html2/secure_sockets/index.html) | 有关更多信息，请参阅 [安全套接字库](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)。  | 
| 核心 PKCS11 |  |  核心PKCS11 库是公钥加密标准 \$111 的参考实现，用于支持配置和 TLS 客户端身份验证。 有关更多信息，请参阅[核心PKCS11 库](security-pkcs.md)。  | 
| TLS |  |  有关更多信息，请参阅 [传输层安全](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 与云上的服务进行交互。

**注意**  
有些应用程序库与适用于嵌入式 C 的 AWS IoT 设备 SDK 中的库 APIs 相同。有关这些库，请参阅[AWS IoT 设备 SDK C API 参考](https://docs.aws.amazon.com/freertos/latest/lib-ref/c-sdk/main/index.html)。有关嵌入式 C 的 AWS IoT 设备 SDK 的更多信息，请参阅[AWS IoT 适用于嵌入式 C 的设备 SDK](c-sdk.md)。


**FreeRTOS 应用程序库**  

| 库 | API 参考 | 说明 | 
| --- | --- | --- | 
| AWS IoT Device Defender |  [Device Defender C 开发工具包 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 开发工具包 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 代理库 API 参考](https://docs.aws.amazon.com/freertos/latest/lib-ref/embedded-csdk/libraries/standard/coreMQTT-Agent/docs/doxygen/output/html/index.html)  |  coreMQTT 代理库是一个高级 API，它可以增加 coreMQTT 库的线程安全性。它允许您创建专用 MQTT 代理任务，该任务在后台管理 MQTT 连接，不需要其他任务的任何干预。该库提供了与 CoreMQTT 等效的线程安全库 APIs，因此可以在多线程环境中使用。 有关 coreMQTT 库的更多信息，请参阅 [coreMQTT 代理库](coremqtt-agent.md)。  | 
| AWS IoT Device Shadow | [设备影子 C 开发工具包 API 参考](https://docs.aws.amazon.com/freertos/latest/lib-ref/html1/aws__shadow_8h.html) |   AWS IoT Device Shadow 库使你的 FreeRTOS 设备能够与设备阴影进行交互 AWS IoT 。 有关更多信息，请参阅 [AWS IoT Device Shadow 库](freertos-lib-cloud-shadows.md)。  | 

## 配置 FreeRTOS 存储库
<a name="lib-config"></a>

FreeRTOS 和嵌入式 C AWS IoT 的设备 SDK 的配置设置定义为 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)。