Usar periféricos em um aplicativo com capacidade em tempo realUse peripherals in a real-time capable application

Aplicativos com capacidade em tempo real (RTApps) podem mapear periféricos para uso exclusivo.Real-time capable applications (RTApps) can map peripherals for their exclusive use. Para usar um ou mais periféricos em um RTApp:To use one or more peripherals in an RTApp:

  • Adicione o periférico ao manifesto do aplicativo.Add the peripheral to the application manifest.
  • Adicione um manipulador de interrupção (se necessário) e outro código de suporte ao aplicativo.Add an interrupt handler (if required) and other supporting code to the application.
  • Adicione código para garantir que cada periférico estará em um estado válido conhecido na inicialização.Add code to ensure that each peripheral will be in a known good state on start up.

Importante

Para informações específicas de hardware sobre como programar periféricos para um RTApp, consulte a documentação do fabricante do hardware.For hardware-specific information about how to program peripherals for an RTApp, see the documentation from your hardware manufacturer. Para registrar endereços base, 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 as perguntas permanecerem, você poderá solicitar detalhes do Avnet por email Azure.Sphere@avnet.com .For register base addresses, interrupt numbers, clock rate, sampling frequency, and other details about the MT3620, see the MT3620 Datasheet and the MT3620 M4 User Manual; if questions remain, you can request details from Avnet by emailing Azure.Sphere@avnet.com.

Todos os recursos que um RTApp usa devem ser especificados no manifesto do aplicativo.All resources that an RTApp uses must be specified in the application manifest. Em um RTApp, você deve usar o nome para o recurso atribuído ao AppManifestValue no arquivo JSON de definição de hardware para o chip de destino.In an RTApp, you must use the name for the resource that is assigned to AppManifestValue in the hardware definition JSON file for the target chip. Você não pode usar o nome de alto nível atribuído ao recurso no arquivo de cabeçalho de definição de hardware.You can't use the high-level name assigned to the resource in the hardware definition header file. Por exemplo, para localizar o valor para identificar o I2C em ISU0 no hardware MT3620, examine o mt3620.jsno arquivo na pasta HardwareDefinitions que está instalada na pasta do SDK do Microsoft Azure Sphere.For example, to find the value to identify I2C on ISU0 on MT3620 hardware, look in the the mt3620.json file in the HardwareDefinitions folder that is installed in the Microsoft Azure Sphere SDK folder. Esse periférico é definido da seguinte maneira no arquivo JSON:This peripheral is defined as follows in the JSON file:

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

Observe que o valor atribuído a AppManifestValue para o periférico I2C é "ISU0".Note that the value assigned to AppManifestValue for the I2C peripheral is "ISU0".

Aplicativos carregados simultaneamente não podem compartilhar recursos; o uso de recursos é exclusivo para um único aplicativo.Concurrently loaded applications cannot share resources; resource use is exclusive to a single application. O sistema operacional do Azure Sphere executa várias tarefas importantes quando ele carrega o aplicativo:The Azure Sphere OS performs several important tasks when it loads the application:

  • Configura a multiplexação, para que os pinos associados com o periférico sejam configurados para a funcionalidade solicitada.Configures multiplexing, so that the pins associated with the peripheral are configured for the requested functionality.
  • Configura o mapeamento de núcleo, que envolve a configuração de firewalls para que o aplicativo tenha acesso aos registros associados com os periféricos solicitados.Sets up core mapping, which involves configuring firewalls so that the application has access to the registers associated with the requested peripherals.
  • Verifica o manifesto e falha ao carregar o aplicativo se ele reivindicar recursos que já foram reivindicados por outro aplicativo.Checks the manifest and fails to load the application if it claims resources that have already been claimed by another app.

O restante desta seção fornece detalhes sobre o uso de periféricos específicos.The remainder of this section provides details about using specific peripherals.

Observação

O sistema operacional Azure Sphere não redefine os periféricos na inicialização.The Azure Sphere OS does not reset peripherals on start up. Seus aplicativos devem garantir que os periféricos estejam em um estado válido em uma inicialização ou após a reinicialização.Your applications should ensure that peripherals are in a known-good state on start up or after restart.

Uma reinicialização do dispositivo é disparada quando um novo aplicativo que usa periféricos é instalado e as seguintes condições são atendidas:A device reboot is triggered when a new application that uses peripherals is installed and the following conditions are met:

Se uma reinicialização do dispositivo for iniciada, aguarde até que a reinicialização seja concluída e o dispositivo se torne responsivo.If a device reboot is initiated, wait until the reboot is complete and the device becomes responsive.

TópicoTopic DescriçãoDescription
Usar ADCs em aplicativos com capacidade para tempo realUse ADCs in real-time capable applications Descreve como usar ADCs (conversores de analógico para digital) com o Azure Sphere.Describes how to use analog-to-digital converters (ADCs) with Azure Sphere.
Usar GPIOs em aplicativos com capacidade para tempo realUse GPIO in real-time capable applications Descreve como usar o GPIO (entrada/saída de uso geral) com o Azure Sphere.Describes how to use general purpose input/output (GPIO) with Azure Sphere.
Usar GPTs em aplicativos com capacidade para tempo realUse GPT in real-time capable applications Descreve como usar GPTs (temporizadores de uso geral) com o Azure Sphere.Describes how to use general purpose timers (GPT) with Azure Sphere.
Usar o I2C em aplicativos com capacidade para tempo realUse I2C in real-time capable applications Descreve como usar o Inter-Integrated Circuit (I2C) para comunicação serial.Describes how to use Inter-Integrated Circuit (I2C) for serial communication.
Use o I2S em aplicativos compatíveis em tempo realUse I2S in real-time capable applications Descreve como usar o I2S (áudio integrado de interchip) com Azure SphereDescribes how to use Integrated Interchip Sound (I2S) with Azure Sphere
Use o PWM em aplicativos compatíveis em tempo realUse PWM in real-time capable applications Descreve como usar a PWM (modulação de largura de pulso) com Azure Sphere.Describes how to use pulse width modulation (PWM) with Azure Sphere.
Use SPI em aplicativos compatíveis em tempo realUse SPI in real-time capable applications Descreve como usar a SPI (interface de periférico serial) para comunicação serial.Describes how to use Serial Peripheral Interface (SPI) for serial communication.
Usar UARTs em aplicativos com capacidade para tempo realUse UARTs in real-time capable applications Descreve como usar UARTs para comunicação serial.Describes how to use UARTs for serial communication.
Use interrupções externas em aplicativos compatíveis em tempo realUse external interrupts in real-time capable applications Descreve como usar interrupções externas em um RTApp para responder a sinais externos.Describes how to use external interrupts in an RTApp to respond to external signals.
Use temporizadores de Watchdog em aplicativos compatíveis em tempo realUse watchdog timers in real-time capable applications Descreve os efeitos do uso de temporizadores de Watchdog nos núcleos MT3620 em tempo real.Describes the effects of using watchdog timers on the MT3620 real-time cores.