Partilhar via


Ativando e desativando interrupções GPIO compartilhadas

Em alguns casos, as linhas de solicitação de interrupção de dois ou mais dispositivos periféricos podem se conectar ao mesmo pino físico de E/S de uso geral (GPIO). O pino GPIO para uma linha de interrupção compartilhada é normalmente configurado para interrupções acionadas por nível.

Se os drivers para esses dispositivos registrarem suas rotinas de serviço de interrupção (ISRs) a serem acionadas quando uma interrupção for declarada neste pino GPIO, a extensão de estrutura GPIO (GpioClx) chamará a função de retorno de chamada CLIENT_EnableInterrupt somente quando o primeiro driver se registrar para essa interrupção. Quando outros drivers se inscrevem para usar uma interrupção GPIO que já está ativada, o GpioClx acompanha internamente esses registos, mas não chama de forma redundante a função de retorno de chamada CLIENT_EnableInterrupt para ativar essa interrupção. Da mesma forma, o GpioClx chama a função de retorno de chamada CLIENT_DisableInterrupt somente quando o último desses drivers registrados libera a interrupção.