View a markdown version of this page

了解 FreeRTOS 公用 IO API - FreeRTOS

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

了解 FreeRTOS 公用 IO API

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

注意

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

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

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

通用 IO - 基本

概述

C@@ ommon IO-bas ic 提供的 API 用于处理 MCU-based 主板上可能找到的基本 I/O 外设和功能。Common IO-基本存储库可在上找到GitHub

支持的外围设备
  • ADC

  • GPIO

  • I2C

  • PWM

  • SPI

  • UART

  • 看门狗

  • 闪存

  • RTC

  • EFUSE

  • 重置

  • I2S

  • 性能计数器

  • 硬件平台信息

支持的功能
  • 同步 read/write

    此函数直到传输了请求的数据量后才返回。

  • 异步 read/write

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

外围设备特定的
  • I2C

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

  • SPI

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

API 参考

如需完整的 API 参考,请参阅通用 IO - 基本 API 参考

通用 IO-BLE

概述

通用 IO - BLE 提供了制造商低功耗蓝牙堆栈的抽象。提供了以下接口,可用于控制设备以及执行 GAP 和 GATT 操作。Common IO-BLE 存储库可在上使用 GitHub

蓝牙设备管理器:

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

BLE 适配器管理器:

为特定于 BLE 的 GAP API 函数提供了一个接口。

经典蓝牙适配器管理器:

提供了一个用于控制设备的 BT 经典功能的接口。

GATT 服务器:

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

GATT 客户端:

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

A2DP 连接接口:

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

API 参考

如需完整的 API 参考,请参阅通用 IO - BLE API 参考

适用于 Amazon 通用软件的通用 IO

通用 IO API 是 Amazon Common Software for Devices 所需实现的一部分,特别是在供应商设备移植工具包 (DPK) 中实现。

什么是 ACS?

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

资格认证计划

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

ACS 芯片组供应商页面上会列出符合该计划资格的供应商。

有关资格认证的信息,请联系适用于设备的 ACS 团队。