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:
- O estado de fabrico do dispositivo está definido como DeviceComplete.
- A capacidade appDevelopment não está presente no dispositivo. Para obter mais informações, veja Bloqueio de configuração de periféricos.
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. |