主要和次要中断

GPIO 中断处理本质上是一个两阶段过程。 来自常规用途 I/O (GPIO) 控制器的中断称为 主中断,该中断导致 GPIO 框架扩展 (gpioClx) 中断服务例程 (ISR) 运行。 此 ISR 将中断 GPIO 引脚映射到 GSI) (全局系统中断,并将此 GSI 传递到硬件抽象层 (HAL) 。 HAL 会生成 辅助中断 ,以运行通过此 GSI 在逻辑上连接到 GPIO 引脚的第二个 ISR。 此过程显示在 GPIO 驱动程序支持概述中的关系图中。

GpioClx 实现 ISR,为 GPIO 控制器通过配置为中断输入的 GPIO 引脚接收的中断请求提供服务。 当外围设备在 GPIO 引脚上断言中断,并在 GPIO 控制器中启用并取消屏蔽中断时,GPIO 控制器硬件会断言对处理器的中断。 为了响应此中断,GpioClx 中的 ISR 查询 GPIO 控制器以识别生成中断的 GPIO 引脚,然后确定将哪个 GSI 分配给此引脚。 GpioClx ISR 将此 GSI 传递给 HAL,HAL 调用逻辑上连接到 GSI 的 ISR。

通常,这第二个 ISR 属于在 GPIO 引脚上断言中断的外围设备的驱动程序。 有关外围设备驱动程序如何以逻辑方式将其 ISR 连接到 GPIO 中断引脚的信息,请参阅 基于 GPIO 的中断资源