Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
Algunos dispositivos controladores de E/S de propósito general (GPIO) pueden configurar sus pines GPIO para funcionar como entradas de petición de interrupción. Estas entradas de solicitud de interrupción están controladas por dispositivos periféricos que están conectados físicamente a las patillas GPIO. Los controladores para estos controladores GPIO pueden habilitar, deshabilitar, enmascarar, desenmascarar y borrar solicitudes de interrupción en pines GPIO individuales.
La compatibilidad con interrupciones GPIO es opcional. La extensión del marco gpIO (GpioClx) no requiere controladores GPIO para admitir interrupciones de GPIO.
En esta sección
| Tema | Descripción |
|---|---|
El control de interrupciones de GPIO es inherentemente un proceso de dos fases. La interrupción del controlador de E/S de uso general (GPIO), que hace que se ejecute la rutina de servicio de interrupción (ISR) de la extensión del marco GPIO (GpioClx), se denomina interrupción principal. Este ISR asigna el pin GPIO a una interrupción del sistema global (GSI) y pasa este GSI a la capa de abstracción de hardware (HAL). El HAL genera una interrupción secundaria para ejecutar un segundo ISR que está lógicamente conectado al pin GPIO a través de este GSI. Este proceso se muestra en el diagrama de información general sobre la compatibilidad con controladores GPIO. |
|
Los controladores para dispositivos periféricos que envían interrupciones a pines de E/S de uso general (GPIO) adquieren las interrupciones GPIO como recursos abstractos de interrupción de Windows. Los controladores del marco de controladores en modo kernel (KMDF) reciben estos recursos a través de sus funciones de devolución de llamada de eventos EvtDevicePrepareHardware. |
|
A partir de Windows 8, el framework para controladores en modo kernel (KMDF) y los controladores del framework en modo de usuario (UMDF) pueden, como opción, registrar sus rutinas de servicio de interrupción (ISR) para ejecutarse en el nivel pasivo. |
|
Opcionalmente, el controlador para un controlador de E/S de uso general (GPIO) puede admitir interrupciones GPIO. Para admitir interrupciones GPIO, un controlador GPIO implementa un conjunto de funciones de devolución de llamada para administrar estas interrupciones. El controlador incluye punteros a estas funciones de devolución de llamada en el paquete de registro que el controlador proporciona cuando se registra como cliente de la extensión del framework GPIO (GpioClx). |
|
Los controladores del controlador GPIO pueden llamar a los métodos de GPIO_CLX_AcquireInterruptLock y GPIO_CLX_ReleaseInterruptLock para adquirir y liberar bloqueos de interrupción implementados internamente por la extensión del marco GPIO (GpioClx). El código de controlador que se ejecuta en IRQL = PASSIVE_LEVEL puede llamar a estos métodos para sincronizar con la rutina del servicio de interrupción (ISR) en GpioClx. GpioClx asigna un cerrojo de interrupción independiente a cada banco de pines del controlador GPIO. |
|
Habilitación y deshabilitación de interrupciones de GPIO compartidas |
En algunos casos, las líneas de solicitud de interrupción de dos o más dispositivos periféricos podrían conectarse al mismo pin físico de E/S de uso general (GPIO). El pin GPIO para una línea de interrupción compartida se suele configurar para interrupciones desencadenadas por nivel. |
Las patillas de E/S de uso general (GPIO) configuradas como entradas de interrupción pueden ser enmascaradas y desenmascaradas, además de ser habilitadas y deshabilitadas. |