Compartilhar via


Guia de design do driver de E/S (GPIO) do General-Purpose

Esta seção descreve como escrever um driver para um dispositivo de controlador gpio (E/S de uso geral). Um controlador GPIO configura pinos GPIO para executar operações de E/S de dados de baixa velocidade, atuar como seleções de dispositivo e receber solicitações de interrupção. Começando com Windows 8, a gpioClx (extensão de estrutura gpio) simplifica a tarefa de escrever um driver para um controlador GPIO. Além disso, o GpioClx fornece uma interface de solicitação de E/S uniforme para drivers de dispositivos periféricos que se comunicam com dispositivos que se conectam a pinos GPIO em um controlador.

Nesta seção

Tópico Descrição

Visão geral do suporte ao driver GPIO

Começando com Windows 8, a gpioClx (extensão de estrutura gpio) simplifica a tarefa de escrever um driver para um dispositivo controlador GPIO. Além disso, o GpioClx fornece suporte de driver para dispositivos periféricos que se conectam a pinos GPIO. GpioClx, que é uma extensão fornecida pelo sistema para a KMDF (estrutura de driver no modo kernel), executa tarefas de processamento comuns aos membros da classe de dispositivo GPIO.

Interfaces de E/S e interrupção gpioClx

Normalmente, os clientes de um controlador GPIO são drivers para dispositivos periféricos que se conectam a pinos GPIO. Esses drivers usam pinos GPIO como canais de dados de baixa largura de banda, saídas de seleção de dispositivo e entradas de solicitação de interrupção. Os drivers de dispositivo periférico abrem conexões lógicas para pinos GPIO configurados como entradas ou saídas de dados. Eles usam essas conexões para enviar solicitações de E/S para esses pinos. Além disso, os drivers de dispositivo periféricos podem conectar logicamente suas rotinas de serviço de interrupção a pinos GPIO configurados como entradas de solicitação de interrupção.

Recursos de hardware baseados em GPIO

A partir do Windows 8, os pinos de GPIO (E/S de uso geral) controlados por um driver de controlador GPIO estão disponíveis para outros drivers como recursos de hardware gerenciados pelo sistema. Os pinos de E/S do GPIO, que são pinos configurados como entradas de dados ou saídas de dados, estão disponíveis como um novo tipo de recurso do Windows, recursos de E/S de GPIO. Além disso, os pinos de interrupção gpio, que são pinos configurados como entradas de solicitação de interrupção, estão disponíveis como recursos comuns de interrupção do Windows.

Interrupções de GPIO

Alguns dispositivos de controlador gpio (E/S de uso geral) podem configurar seus pinos GPIO para funcionar como entradas de solicitação de interrupção. Essas entradas de solicitação de interrupção são controladas por dispositivos periféricos que estão fisicamente conectados aos pinos gpio. Os drivers para esses controladores GPIO podem habilitar, desabilitar, mascarar, desmascarar e limpar solicitações de interrupção em pinos GPIO individuais.

GpioClx DDI

O driver do controlador gpio (E/S de uso geral) se comunica com a extensão de estrutura GPIO (GpioClx) por meio da DDI (interface de driver de dispositivo) GpioClx. Essa DDI é definida no arquivo de cabeçalho Gpioclx.h e é descrita em Referência de Driver de E/S de Uso Geral (GPIO). Como parte dessa DDI, o GpioClx implementa vários métodos de suporte ao driver, que são chamados pelo driver do controlador GPIO. Esse driver implementa um conjunto de funções de retorno de chamada de evento, que são chamadas por GpioClx. GpioClx usa esses retornos de chamada para gerenciar solicitações de interrupção de pinos GPIO configurados como entradas de interrupção e para transferir dados de ou para pinos GPIO configurados como entradas e saídas de dados.