

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

# 了解 FreeRTOS 公用 IO API
<a name="freertos-common-io"></a>

通用 IO API 将充当硬件抽象层 (HAL)，提供驱动程序和更高级别的应用程序代码之间的通用接口。FreeRTOS 通用 IO 提供一组标准 API，用于在支持的参考主板上访问常用串行设备；这些 API 的实现未包括在内。这些通用 API 与外围设备进行通信和交互，可让您的代码跨平台运行。如果没有通用 I/O，则编写代码以使用低级设备这一操作是特定于芯片供应商的。

**注意**  
FreeRTOS 不需要实现通用 IO API 即可运行，但它会尝试使用通用 IO API 来连接基于微控制器的主板上的特定外围设备，而不是使用供应商特定的 API。

通常，设备驱动程序独立于基础操作系统，并且特定于给定的硬件配置。HAL 提取出特定驱动程序的工作原理的详细信息，并提供一个统一的 API 来控制此类设备。您可以使用相同的 API 跨多个基于微控制器 (MCU) 的参考主板来访问各种设备驱动程序。

## 库
<a name="freertos-common-io-libraries"></a>

目前，FreeRTOS 提供了两个通用 IO 库：“通用 IO - 基本”和“通用 IO - BLE”。

### 通用 IO - 基本
<a name="freertos-common-io-libraries-basic"></a>

*概述*  
C@@ [ommon IO-bas](https://aws.github.io/common-io-basic/) ic 提供的 API 用于处理 MCU-based 主板上可能找到的基本 I/O 外设和功能。Common IO-基本存储库可在上找到[GitHub](https://github.com/aws/common-io-basic)。

*支持的外围设备*  
+ ADC
+ GPIO
+ I2C
+ PWM
+ SPI
+ UART
+ 看门狗
+ 闪存
+ RTC
+ EFUSE
+ 重置
+ I2S
+ 性能计数器
+ 硬件平台信息

*支持的功能*  
+ 同步 read/write

  此函数直到传输了请求的数据量后才返回。
+ 异步 read/write

  此函数立即返回，并且数据以异步方式传输。在此操作完成后，将调用已注册用户回调。

*外围设备特定的*  
+ I2C

  将多个操作合并到一个事务中。用于在一个事务中依次执行写入操作和读取操作。
+ SPI

  在主设备和辅助设备之间传输数据，这意味着写入操作和读取操作会同时进行。

*API 参考*  
如需完整的 API 参考，请参阅[通用 IO - 基本 API 参考](https://aws.github.io/common-io-basic/)。

### 通用 IO-BLE
<a name="freertos-common-io-libraries-BLE"></a>

*概述*  
通用 IO - BLE 提供了制造商低功耗蓝牙堆栈的抽象。提供了以下接口，可用于控制设备以及执行 GAP 和 GATT 操作。Common IO-BLE 存储库可在上使用[ GitHub](https://github.com/aws/common-io-ble)。

*蓝牙设备管理器：*  
提供了一个用于控制蓝牙设备、执行设备发现操作和其他与连接相关的任务的接口。

*BLE 适配器管理器：*  
为特定于 BLE 的 GAP API 函数提供了一个接口。

*经典蓝牙适配器管理器：*  
提供了一个用于控制设备的 BT 经典功能的接口。

*GATT 服务器：*  
提供了一个使用蓝牙 GATT 服务器功能的接口。

*GATT 客户端：*  
提供了一个使用蓝牙 GATT 客户端功能的接口。

*A2DP 连接接口：*  
为本地设备的 A2DP 源配置文件提供了一个接口。

*API 参考*  
如需完整的 API 参考，请参阅[通用 IO - BLE API 参考](https://aws.github.io/common-io-ble/)。

## 适用于 Amazon 通用软件的通用 IO
<a name="freertos-common-io-acs"></a>

通用 IO API 是 [Amazon Common Software for Devices](https://developer.amazon.com/acs-devices) 所需实现的一部分，特别是在供应商设备移植工具包 (DPK) 中实现。

### 什么是 ACS？
<a name="freertos-common-io-acs-what"></a>

Amazon Common Software (ACS) for Devices 是一款软件，用于更快地将 Amazon设备软件开发工具包集成到您的设备上。ACS 为连接、设备移植工具包 (DPK) 和多层测试套件等常见功能提供了统一的 API 集成层、经过预先验证且节省内存的组件。

### 资格认证计划
<a name="freertos-common-io-acs-qualification"></a>

[Amazon 通用设备软件资格](https://developer.amazon.com/acs-devices)认证计划可验证在基于微控制器的特定开发板上运行的 ACS DPK（设备移植套件）版本是否与该计划已发布的最佳实践兼容，并且足够强大，足以通过资格认证计划规定的 ACS-mandated 测试。

[ACS 芯片组供应商](https://developer.amazon.com/avs-silicon-vendors)页面上会列出符合该计划资格的供应商。

有关资格认证的信息，请联系[适用于设备的 ACS](https://developer.amazon.com/acs-devices) 团队。