Partilhar via


Utilizar periféricos numa aplicação em tempo real

As aplicações com capacidade em tempo real (RTApps) podem mapear periféricos para utilização exclusiva. Para utilizar um ou mais periféricos numa RTApp:

  • Adicione o periférico ao manifesto da aplicação.
  • Adicione um processador de interrupção (se necessário) e outro código de suporte à aplicação.
  • Adicione código para garantir que cada periférico estará num bom estado conhecido no arranque.

Importante

Para obter informações específicas de hardware sobre como programar periféricos para uma RTApp, consulte a documentação do fabricante do hardware. Para registar endereços base, números de interrupção, velocidade do relógio, frequência de amostragem e outros detalhes sobre o MT3620, consulte a Folha de Dados MT3620 e o Manual de Utilizador mt3620 M4; Se as perguntas permanecerem, pode pedir detalhes à Avnet ao enviar um e-mail para Azure.Sphere@avnet.com.

Todos os recursos que um RTApp utiliza têm de ser especificados no manifesto da aplicação. Num RTApp, tem de utilizar o nome do recurso atribuído a AppManifestValue no ficheiro JSON de definição de hardware do chip de destino. Não pode utilizar o nome de alto nível atribuído ao recurso no ficheiro de cabeçalho da definição de hardware. Por exemplo, para encontrar o valor para identificar o I2C no ISU0 no hardware MT3620, procure no ficheiro mt3620.json na pasta HardwareDefinitions que está instalada na pasta SDK do Microsoft Azure Sphere. Este periférico é definido da seguinte forma no ficheiro JSON:

 {"Name": "MT3620_ISU0_I2C", "Type": "I2cMaster", "MainCoreHeaderValue": "(0)", "AppManifestValue": "ISU0", "Comment": "MT3620 ISU 0 configured as I2C"},

Tenha em atenção que o valor atribuído a AppManifestValue para o periférico I2C é "ISU0".

As aplicações carregadas em simultâneo não podem partilhar recursos; A utilização de recursos é exclusiva de uma única aplicação. O SO do Azure Sphere executa várias tarefas importantes quando carrega a aplicação:

  • Configura o multiplexing, para que os pinos associados ao periférico sejam configurados para a funcionalidade pedida.
  • Configura o mapeamento de núcleos, que envolve configurar firewalls para que a aplicação tenha acesso aos registos associados aos periféricos pedidos.
  • Verifica o manifesto e falha ao carregar a aplicação se esta reclamar recursos que já foram reclamados por outra aplicação.

O resto desta secção fornece detalhes sobre a utilização de periféricos específicos.

Nota

O SO do Azure Sphere não repõe os periféricos no arranque. As suas aplicações devem garantir que os periféricos estão num bom estado conhecido no arranque ou após o reinício.

É acionado um reinício do dispositivo quando uma nova aplicação que utiliza periféricos é instalada e as seguintes condições são cumpridas:

Se for iniciado um reinício do dispositivo, aguarde até que o reinício esteja concluído e o dispositivo fique reativo.

Tópico Descrição
Utilizar ADCs em aplicações com capacidade em tempo real Descreve como utilizar conversores analógicos para digitais (ADCs) com o Azure Sphere.
Utilizar o GPIO em aplicações com capacidade em tempo real Descreve como utilizar a entrada/saída para fins gerais (GPIO) com o Azure Sphere.
Utilizar GPT em aplicações com capacidade em tempo real Descreve como utilizar temporizadores para fins gerais (GPT) com o Azure Sphere.
Utilizar o I2C em aplicações com capacidade em tempo real Descreve como utilizar o Circuito Inter-Integrated (I2C) para comunicação em série.
Utilizar o I2S em aplicações com capacidade em tempo real Descreve como utilizar o Som Interchip Integrado (I2S) com o Azure Sphere
Utilizar o PWM em aplicações com capacidade em tempo real Descreve como utilizar a modulação da largura do pulso (PWM) com o Azure Sphere.
Utilizar o SPI em aplicações com capacidade em tempo real Descreve como utilizar a Interface periférica de série (SPI) para comunicação em série.
Utilizar UARTs em aplicações com capacidade em tempo real Descreve como utilizar UARTs para comunicação em série.
Utilizar interrupções externas em aplicações com capacidade em tempo real Descreve como utilizar interrupções externas numa RTApp para responder a sinais externos.
Utilizar temporizadores de watchdog em aplicações com capacidade em tempo real Descreve os efeitos da utilização de temporizadores de cão de guarda nos núcleos em tempo real do MT3620.