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.
Los pines de propósito general de E/S (GPIO) que están configurados como entradas de interrupción se pueden enmascarar y desenmascarar, además de habilitarse y deshabilitarse.
Si una interrupción basada en nivel de un dispositivo periférico está habilitada y activa, pero el manejador de excepciones del kernel no puede ejecutar inmediatamente la rutina de servicio de interrupción (ISR) del dispositivo para borrar la interrupción, el manejador enmascara la interrupción en el pin GPIO para evitar que este cause repetidamente más interrupciones. Más adelante, después de que el ISR se ejecute y borre la interrupción, la interrupción se puede desenmascarar con seguridad.
El enmascaramiento de una interrupción no borra ni deshabilita la interrupción. Si una interrupción gpIO está habilitada, activa y enmascarada, desenmascarar esta interrupción hace que el dispositivo del controlador GPIO señale una solicitud de interrupción al procesador.
Un bit de máscara de interrupción GPIO no tiene ningún efecto cuando la interrupción GPIO está desactivada. La función de devolución de llamada CLIENT_EnableInterrupt establece en cero el bit de máscara para la interrupción; es decir, la interrupción se encuentra inicialmente desenmascarada tras ser habilitada.
Una distinción importante entre el enmascaramiento y la deshabilitación de un pin de interrupción GPIO es que el enmascaramiento conserva los valores de configuración de interrupción del pin, mientras que al deshabilitar el pin no. Mientras se enmascara una patilla de interrupción GPIO, conserva su modo de interrupción programado previamente (desencadenado por el borde o desencadenado por el nivel), la polaridad (activo-alto, activo-bajo o activo-ambos) y la configuración de desbounce. Esta configuración surte efecto de nuevo en cuanto la interrupción se desenmascara. Sin embargo, cuando se deshabilita una interrupción, se pierden todas las opciones de configuración de interrupción del pin. Una vez activada la patilla, debe programarse de nuevo con los valores de configuración de interrupciones requeridos.
Algunos controladores GPIO implementan, en hardware, registros de máscara de interrupción que son independientes y distintos de los registros habilitados para interrupciones.
Sin embargo, otros controladores GPIO proporcionan un único conjunto de registros de hardware que combinan las funciones de máscara y habilitación de interrupciones. Los drivers de software para estos controladores emulan registros separados de máscara de interrupción y habilitación de interrupciones mediante software. Para ello, estos controladores realizan un seguimiento de los estados lógicos de los bits de habilitación de interrupciones y los bits de máscara de interrupción, y manipulan los bits correspondientes en el registro de hardware para reflejar con precisión el comportamiento combinado de los bits de habilitación y máscara de interrupciones para cada interrupción GPIO.