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.
Os pinos de E/S de uso geral (GPIO) configurados como entradas de interrupção podem ser mascarados e desmascarados, além de serem habilitados e desabilitados.
Se uma interrupção disparada em nível de um dispositivo periférico estiver habilitada e ativa, mas o manipulador de interceptação de kernel não puder executar imediatamente a ISR (rotina de serviço de interrupção) do dispositivo para limpar a interrupção, o manipulador mascara a interrupção no pino gpio para impedir que o pino cause repetidamente mais interrupções. Posteriormente, depois que o ISR for executado e limpar a interrupção, a interrupção poderá ser desmascarada com segurança.
Mascarar uma interrupção não limpa nem desabilitar a interrupção. Se uma interrupção gpio estiver habilitada, ativa e mascarada, desmascarar essa interrupção fará com que o dispositivo controlador GPIO sinalize uma solicitação de interrupção para o processador.
Um bit de máscara de interrupção do GPIO não tem efeito enquanto a interrupção do GPIO está desabilitada. A função callback CLIENT_EnableInterrupt define o bit de máscara da interrupção como zero; ou seja, a interrupção é inicialmente desmascarada após ser habilitada.
Uma distinção importante entre mascarar e desabilitar um pino de interrupção GPIO é que mascarar preserva as configurações da interrupção do pino, enquanto desabilitar o pino não. Embora um pino de interrupção gpio seja mascarado, ele mantém seu modo de interrupção programado anteriormente (disparado por borda ou disparado em nível), polaridade (ativo-alto, ativo-baixo ou ativo-ambos) e configurações de debounce. Essas configurações entrarão em vigor novamente assim que a interrupção for desmascarada. No entanto, quando uma interrupção é desabilitada, todas as configurações de interrupção do pino são perdidas. Depois que o pino estiver habilitado, ele deverá ser programado novamente com as configurações de interrupção necessárias.
Alguns controladores GPIO implementam, em hardware, registros de máscara de interrupção que são separados e distintos dos registros de ativação de interrupção.
No entanto, outros controladores GPIO fornecem um único conjunto de registros de hardware que combinam as funções interrupt-mask e interrupt-enable. Os drivers desses controladores emulam, no software, registros diferentes para a máscara de interrupção e para a habilitação de interrupção. Para fazer isso, esses drivers rastreiam os estados lógicos dos bits de habilitação de interrupção e dos bits de máscara de interrupção e manipulam os bits correspondentes no registro de hardware para refletir com precisão o comportamento dos bits combinados de habilitação de interrupção e máscara de interrupção para cada interrupção GPIO.