Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
O tratamento de interrupção do GPIO é inerentemente um processo de dois estágios. A interrupção do controlador de E/S de uso geral (GPIO), que faz com que a ISR (rotina de serviço de interrupção) da extensão do framework GPIO (GpioClx) seja executada, é chamada de interrupção primária. Esse ISR mapeia o pino GPIO de interrupção para uma GSI (interrupção global do sistema) e passa esta GSI para a camada de abstração de hardware (HAL). O HAL gera uma interrupção secundária para executar o segundo ISR que está logicamente conectado ao pino GPIO por meio deste GSI. Esse processo é mostrado no diagrama na Visão Geral do Suporte ao Driver GPIO.
O GpioClx implementa um ISR para atender às solicitações de interrupção que o controlador GPIO recebe por meio de pinos GPIO configurados como entradas de interrupção. Quando um dispositivo periférico declara uma interrupção em um pino GPIO e a interrupção é habilitada e desmascarada no controlador GPIO, o hardware do controlador GPIO declara uma interrupção no processador. Em resposta a essa interrupção, o ISR no GpioClx consulta o controlador GPIO para identificar o pino GPIO que gerou a interrupção e, em seguida, determina qual GSI é atribuída a esse pino. O GPioClx ISR passa esse GSI para o HAL e o HAL chama o ISR que está logicamente conectado ao GSI.
Normalmente, esse segundo ISR pertence ao driver do dispositivo periférico que afirmou a interrupção no pino gpio. Para obter informações sobre como um driver de dispositivo periférico conecta logicamente seu ISR a um pino de interrupção gpio, consulte GPIO-Based Recursos de Interrupção.