Compartir a través de


Interrupciones principales y secundarias

El control de interrupciones 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 la patilla GPIO de interrupción a una interrupción global del sistema (GSI) y pasa este GSI a la capa de abstracción de hardware (HAL). HAL genera una interrupción secundaria para ejecutar un segundo ISR que está conectado lógicamente 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.

GpioClx implementa un ISR para atender las solicitudes de interrupción que el controlador GPIO recibe a través de patillas GPIO configuradas como entradas de interrupción. Cuando un dispositivo periférico afirma una interrupción en un pin GPIO, y la interrupción está habilitada y sin máscara en el controlador GPIO, el hardware del controlador GPIO afirma una interrupción en el procesador. En respuesta a esta interrupción, el ISR de GpioClx consulta el controlador GPIO para identificar el pin gpIO que generó la interrupción y, a continuación, determina qué GSI se asigna a este pin. El ISR gpioClx pasa este GSI al HAL y el HAL llama al ISR que está conectado lógicamente al GSI.

Normalmente, este segundo ISR pertenece al controlador del dispositivo periférico que afirmó la interrupción en el pin GPIO. Para obtener información sobre cómo un controlador de dispositivo periférico conecta lógicamente su ISR a un pin de interrupción gpIO, consulte Recursos de interrupción basados en GPIO.