Share via


Gerenciar o estado do Power Down para dispositivos do Azure Sphere

Um aplicativo do Azure Sphere de alto nível pode usar a API de gerenciamento de energia para colocar o dispositivo no estado do Power Down. O estado do Power Down é o estado de energia mais baixo possível em que um dispositivo pode estar diferente de ser totalmente desligado. O dispositivo pode ser acordado por um dos dois eventos:

  • Chegada de um sinal de entrada disparando o pino WAKEUP.
  • Passagem de um tempo especificado.

Para usar esse recurso, você deve:

  1. Configure seu hardware.
  2. Declare o valor ForcePowerDown para o recurso PowerControls no manifesto do aplicativo.
  3. Use PowerManagement_ForceSystemPowerDown da API do Power Management .

Estado power down

O estado do Power Down tem as seguintes características:

  • Tudo é desligado, exceto o RTC (relógio em tempo real). Isso significa que toda conectividade, RAM, flash, núcleos de CPU e assim por diante, estão todos desligados.
  • Não há preservação do estado. Acordar do Power Down é equivalente a uma inicialização fria.
  • O despertar do Power Down ocorre quando o alarme do relógio em tempo real é acionado (despertar baseado em tempo) ou quando o pino WAKEUP é puxado para baixo (despertar baseado em evento), o que vier primeiro.

Nota

O certificado DAA (cliente) é armazenado persistentemente. Como resultado, um dispositivo não se conecta ao AS3 para um novo certificado após cada inicialização fria ou Power Down que ocorre entre atualizações normais de 24 horas. Isso reduz o consumo de energia e o tempo necessário para se conectar à nuvem.

Específicos do MT3620

As considerações sobre o Power Down do MediaTek MT3620 são fornecidas em notas de hardware MT3620.

Forçar o Power Down e atualizações

Aviso

A falha em seguir as diretrizes nesta seção pode fazer com que seu dispositivo não consiga buscar atualizações de aplicativo ou sistema operacional e exigir recuperação. Leia atentamente antes de usar o ForcePowerDown.

Como o ForcePowerDown e o ForceReboot permitem que um aplicativo desligue o dispositivo a qualquer momento, ele se torna responsabilidade desse aplicativo garantir que o dispositivo ainda seja capaz de marcar periodicamente para atualizações ao usar ForcePowerDown ou ForceReboot. Para facilitar a marcar para atualizações nesse cenário, introduzimos notificações de evento do sistema relacionadas à atualização para fornecer aos aplicativos informações sobre o processo de atualização para que seus aplicativos possam tomar uma decisão informada sobre quando desligar o dispositivo. As notificações de evento do sistema disponíveis relevantes são:

  • SysEvent_Events_NoUpdateAvailable: o marcar de atualização foi concluído e nenhuma atualização do sistema operacional ou do aplicativo está disponível.
  • SysEvent_Events_UpdateStarted: uma atualização do sistema operacional ou do aplicativo começou a ser baixada. Esse evento será seguido pelo evento SysEvent_Events_UpdateReadyForInstall quando a atualização estiver totalmente baixada e pronta para instalação. Se nenhuma atualização estiver disponível, SysEvent_Events_NoUpdateAvailable será enviada em vez desse evento.
  • SysEvent_Events_UpdateReadyForInstall: uma atualização terminou de baixar e está pronta para ser aplicada na reinicialização.

Os aplicativos que usam o ForcePowerDown precisam estar atentos ao estado de atualização do dispositivo. Os aplicativos que usam o ForcePowerDown devem sempre se registrar para esses eventos e ateá-los para garantir que o aplicativo não faça com que uma atualização seja adiada indefinidamente.

Fornecemos um aplicativo de exemplo que demonstra como criar corretamente verificações de atualização em um aplicativo que usa o ForcePowerDown. É altamente recomendável que você comece com esse exemplo ao desenvolver aplicativos com o ForcePowerDown.

Término do aplicativo

Depois que uma solicitação do Power Down é feita, um sinal SIGTERM é enviado para seu aplicativo. Se o aplicativo manipular o sinal, ele terá até 2 segundos para fazer o trabalho de limpeza. Caso contrário, o aplicativo será encerrado imediatamente. Para obter mais informações, incluindo como lidar corretamente com o sinal, consulte término do aplicativo para atualização.

Aplicativo de exemplo

O aplicativo de exemplo power down demonstra como usar corretamente o ForcePowerDown para reduzir o consumo de energia, ao mesmo tempo em que garante que o dispositivo permaneça acordado periodicamente para marcar para atualizações de so e aplicativo.

Esse exemplo pisca um LED vermelho, representando o trabalho ou a "lógica de negócios" que um aplicativo pode precisar fazer enquanto o dispositivo estiver acordado e, em seguida, alimenta o dispositivo por um tempo especificado. A cada ciclo Nth Power Down/wake, o aplicativo manterá o dispositivo acordado por mais tempo para marcar para atualizações em vez de desligar imediatamente após a conclusão da lógica de negócios (o LED vermelho piscando nesse caso). Para garantir que as atualizações tenham sido concluídas antes de desligar, o aplicativo de exemplo usa três notificações de evento do sistema (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted e SysEvent_Events_UpdateReadyForInstall) que informam o aplicativo sobre o status da atualização marcar/download. O aplicativo de exemplo também mostra como medir o consumo atual do RDB para validar se o dispositivo está entrando no Power Down.