

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

# 了解 FreeRTOS 的常用 IO APIs
<a name="freertos-common-io"></a>

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

**注意**  
FreeRTOS不需要实现通用IO即可运行，但它将尝试使用通用 APIs IO作为与基于微控制器的主板上的特定外围设备而不是供应商特定的主板上的特定外围设备进行接口的一种方式。 APIs APIs

通常，设备驱动程序独立于基础操作系统，并且特定于给定的硬件配置。HAL 提取出特定驱动程序的工作原理的详细信息，并提供一个统一的 API 来控制此类设备。您可以使用相同的方法 APIs 访问基于多个微控制器 (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- APIs basic 提供基本](https://aws.github.io/common-io-basic/) I/O 外设和基于 MCU 的主板上可能找到的功能。Common IO-基本存储库可在上找到[GitHub](https://github.com/aws/common-io-basic)。

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

*支持的功能*  
+ 同步读/写

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

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

*外围设备特定的*  
+ 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 APIs 是 A [mazon 设备通用软件所需的实现的一部分，特别是在供应商设备](https://developer.amazon.com/acs-devices)移植套件 (DPK) 中实现。

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

亚马逊设备通用软件 (ACS) 是一种可让您更快地将亚马逊设备集成到您的设备 SDKs 上的软件。ACS 为连接、设备移植工具包 (DPK) 和多层测试套件等常见功能提供了统一的 API 集成层、经过预先验证且节省内存的组件。

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

[Amazon Common Software for Devices](https://developer.amazon.com/acs-devices) 资格认证计划可验证在基于微控制器的特定开发主板上运行的 ACS DPK（设备移植工具包）版本是否符合该计划已发布的最佳实践，以及是否足以通过资格认证计划规定的 ACS 强制测试。

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

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