Compartilhar via


Como usar GPIOs em aplicativos com capacidade para tempo real

Importante

Esta é a documentação do Azure Sphere (herdado). O Azure Sphere (herdado) será desativado em 27 de setembro de 2027 e os usuários devem migrar para o Azure Sphere (integrado) até esse momento. Use o seletor de versão localizado acima do sumário para exibir a documentação do Azure Sphere (Integrado).

O Azure Sphere dá suporte para GPIOs (entrada/saída de uso geral). Um GPIO é um tipo de pino digital programável em um circuito integrado. Os GPIOs não têm funcionalidade predefinida e o comportamento deles pode ser personalizado por um aplicativo. Alguns usos comuns dos GPIOs são alterar o estado dos dispositivos de hardware, controlar LEDs e ler o estado dos comutadores.

Este tópico descreve como usar os GPIOs em um RTApp (aplicativo com capacidade para tempo real). Para obter informações sobre como usar os GPIOs em aplicativos de alto nível, confira Como usar os GPIOs em aplicativos de alto nível.

Um RTApp pode usar qualquer um dos GPIOs no dispositivo Azure Sphere. Há suporte para as operações a seguir no GPIO:

  • Ler entrada
  • Definir saída como alta ou baixa
  • Sondar interrupções de software

Observação

O sistema operacional do Azure Sphere não redefine os periféricos na inicialização. Seus aplicativos devem garantir que os periféricos estejam em um bom estado na inicialização e após a reinicialização.

Suporte a MT3620 para GPIOs sobre os núcleos em tempo real

No MT3620, a maioria dos GPIOs é mapeada para os núcleos em tempo real em blocos de quatro, começando com o GPIO 0; no entanto, os blocos de 0 a 4 do ISU têm cinco GPIOs. Como resultado, as solicitações de GPIO RTApp poderão falhar se um aplicativo de alto nível (ou outro RTApp) solicita um GPIO no mesmo bloco. Por exemplo, se um aplicativo de alto nível solicitar GPIO 8 e um RTApp solicitar o GPIO 9, o segundo aplicativo retorna um erro na implantação.

Cada LED no RDB MT3620 mapeia para três GPIOs: um para os canais de vermelhos, verdes e azuis.

Para endereços base de registro, números de interrupção, taxa de relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de Dados do MT3620 e o Manual do Usuário do MT3620 M4; se ainda houver dúvidas, você pode solicitar detalhes da Avnet enviando um Azure.Sphere@avnet.come-mail .

Requisitos do GPIO

O código do aplicativo precisa de uma maneira de identificar o GPIO e seus registros. Você pode encontrar o endereço base do registro na documentação de hardware do fabricante. Antes que seu RTApp possa usar um GPIO, ele deve inicializar os blocos que vai usar. A inicialização é necessária apenas uma vez para cada bloco que o aplicativo usa.

Para obter detalhes sobre o MT3620, consulte Suporte do MT3620 para GPIOs nos núcleos em tempo real.

Configurações do manifesto do aplicativo

Para usar um GPIO, um RTApp precisa listá-los na seção Funcionalidades do manifesto do aplicativo. Identifique o GPIO usando o "AppManifestValue" definido para ele no arquivo JSON do hardware de destino. Por exemplo, a seguinte linha reserva GIPIOs 8 e 12:

"Capabilities": {
 "Gpio": [ 8, 12 ]
}

O aplicativo de exemplo GPIO

O exemplo de GPIO demonstra como usar GPIOs em um RTApp. Os arquivos README fornecem detalhes e instruções.