在支持实时的应用程序中使用 GPIO
Azure Sphere 支持 GPIO (常规用途输入/输出) 。 GPIO 是集成电路上的一种可编程数字引脚。 GPIO 没有预定义的功能,应用程序可以自定义其行为。 GPIO 的一些常见用途是更改硬件设备的状态、控制 LED 以及读取交换机的状态。
本主题介绍如何在支持实时的应用程序中使用 GPIO (RTApp) 。 有关在高级应用程序中使用 GPIO 的信息,请参阅 在高级应用程序中使用 GPIO。
RTApp 可以使用 Azure Sphere 设备上的任一 GPIO。 GPIO 支持以下操作:
- 读取输入
- 将输出设置为高或低
- 轮询软件中断
注意
Azure Sphere OS 在启动时不会重置外围设备。 应用程序应确保外围设备在启动时和重启后处于已知良好的状态。
对实时核心上的 GPIO 的 MT3620 支持
在 MT3620 上,大多数 GPIO 映射到四个块的实时核心,从 GPIO 0 开始;但是,ISU 块 0 - 4 具有 5 个 GPIO。 因此,如果高级应用程序 (或其他 RTApp) 请求同一块中的 GPIO,RTApp GPIO 请求可能会失败。 例如,如果高级应用请求 GPIO 8,RTApp 请求 GPIO 9,则第二个应用在部署时返回错误。
MT3620 RDB 上的每个 LED 映射到三个 GPIO:红色、绿色和蓝色通道各一个。
有关 MT3620 的寄存器基址、中断数、时钟速率、采样频率和其他详细信息,请参阅 MT3620 数据表 和 MT3620 M4 用户手册;如果问题仍然存在,你可以通过电子邮件 Azure.Sphere@avnet.com从 Avnet 请求详细信息。
GPIO 要求
应用程序代码需要一种方法来标识 GPIO 及其寄存器。 可以在制造商的硬件文档中找到寄存器基址。 在 RTApp 可以使用 GPIO 之前,它必须初始化要使用的块。 对于应用使用的每个块,只需初始化一次。
有关 MT3620 的详细信息,请参阅 MT3620 对实时核心上的 GPIO 的支持。
应用程序清单设置
若要使用 GPIO,RTApp 必须在应用程序清单的 “功能 ”部分中列出它。 使用目标硬件的 JSON 文件中为其定义的“AppManifestValue”标识 GPIO。 例如,以下行保留 GPIO 8 和 12:
"Capabilities": {
"Gpio": [ 8, 12 ]
}
GPIO 示例应用程序
GPIO 示例演示如何在 RTApp 中使用 GPIO。 自述文件提供了详细信息和说明。