Compartilhar via


Sugestões de design de aplicativos principais em 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).

Os aplicativos principais em tempo real (RT) são executados em bare metal ou com um sistema operacional em tempo real (RTOS) nos núcleos em tempo real. Muitas das recomendações de design para aplicativos HL-core também se aplicam ao design de aplicativos RT-core. Este tópico discute outras sugestões de design a serem consideradas ao projetar aplicativos RT-core.

  • Use um temporizador de watchdog: recomendamos que você habilite e implemente o temporizador de watchdog MT3620 para que você possa detectar deadlock e implementar a lógica de recuperação adequada. Para obter detalhes, consulte Usar um temporizador de watchdog em um RTApp. Esse também pode ser um ponto importante em que o aplicativo RT pode sinalizar ao aplicativo HL-core (por exemplo, por meio da caixa de correio entre núcleos) que algo deu errado para que a ação apropriada possa ser tomada por qualquer aplicativo, como redefinir o dispositivo. Isso pode ser feito das seguintes maneiras:
    • Reinicie o dispositivo chamando a PowerManagement_ForceSystemReboot função do aplicativo HL-core. Consulte Níveis de reinicialização em um dispositivo.
    • Ignorando as APIs HL-core executando uma redefinição de hardware por meio de um GPIO dedicado com os pinos de gerenciamento de energia do MT3620 (PMU_EN, EXT_PMU_EN ou SYSRST_N). Para obter mais informações sobre PMU_EN e EXT_PMU_EN, consulte Considerações sobre desligamento. A redefinição de hardware com SYSRST_N normalmente envolve o design dos esquemas do dispositivo com até três GPIOs de redefinição dedicados (um por cada núcleo), conectados por meio de diodos e filtros RC ao pino SYSRST_N do dispositivo. A execução de uma redefinição de hardware permite uma ação independente de qualquer um dos aplicativos HL-core e RT-core se o design exigir recuperação determinística de qualquer aplicativo em execução em qualquer núcleo.

Observação

Considere com muito cuidado o uso de GPIOs para redefinir o dispositivo de um aplicativo RT-core, pois um efeito não intencional da programação ou do design desse aplicativo (por exemplo, redefinindo continuamente o dispositivo) pode impedir que o dispositivo receba atualizações do sistema operacional e do aplicativo.

  • Implemente comunicações entre núcleos em projetos que combinam aplicativos HL-core e RT-core: mesmo que não seja explicitamente necessário, é sempre recomendável implementar uma troca de comunicação mínima entre os aplicativos HL-core e RT-core. Para obter mais informações, consulte Comunicar-se com um aplicativo compatível em tempo real. Além da troca de dados óbvia quando a comunicação entre núcleos é explicitamente projetada como parte da arquitetura geral do aplicativo, é útil e importante que as duas partes sejam sincronizadas em relação ao status uma da outra para que um melhor status geral do dispositivo possa ser gerenciado entre si (consulte o exemplo de comunicação entre núcleos).

Para obter informações de referência adicionais sobre o desenvolvimento de aplicativos RT-core, incluindo drivers e exemplos para usar periféricos e recursos MT3620, consulte: