Administrar el estado de Power Down para dispositivos Azure Sphere

Una aplicación azure sphere de alto nivel puede usar la API de administración de energía para poner el dispositivo en el estado de Power Down. El estado de apagado es el estado de energía más bajo posible en el que un dispositivo puede estar que no esté completamente apagado. El dispositivo puede despertarse debido a uno de los dos eventos siguientes:

  • Llegada de una señal de entrada que activa el pin WAKEUP.
  • Paso de una cantidad de tiempo especificada.

Para usar esta característica, debe:

  1. Configura el hardware.
  2. Declare el valor de ForcePowerDown para la función PowerControls en el manifiesto de la aplicación.
  3. Usa PowerManagement_ForceSystemPowerDown de la API de Administración de Energía .

Estado de apagado

El estado de apagado tiene las siguientes características:

  • Todo está apagado excepto el reloj en tiempo real (RTC). Esto significa que toda la conectividad, RAM, flash, núcleos de CPU, etc., están apagados.
  • No hay ninguna preservación del estado. Salir de Power Down es equivalente a un arranque en frío.
  • La reactivación del apagado se produce cuando se activa la alarma de reloj en tiempo real (reactivación basada en el tiempo) o cuando el pin wakeup se extrae a baja (reactivación basada en eventos), lo que ocurra primero.

Nota

El certificado daa (cliente) se almacena de forma persistente. Como resultado, un dispositivo no se conecta a AS3 para un nuevo certificado después de cada arranque en frío o apagado que se produce entre las actualizaciones normales de 24 horas. Esto reduce tanto el consumo de energía como el tiempo necesario para conectarse a la nube.

Detalles específicos de MT3620

Las consideraciones de Power Down de MediaTek MT3620 se proporcionan en las notas de hardware MT3620.

Forzar apagado y actualizaciones

Advertencia

Si no se siguen las instrucciones de esta sección, es posible que el dispositivo no pueda capturar las actualizaciones de la aplicación o del sistema operativo y que requiera recuperación. Lea detenidamente antes de usar ForcePowerDown.

Dado que Tanto ForcePowerDown como ForceReboot permiten que una aplicación apague el dispositivo en cualquier momento, se convierte en la responsabilidad de esa aplicación asegurarse de que el dispositivo todavía es capaz de comprobar periódicamente si hay actualizaciones al usar ForcePowerDown o ForceReboot. Para que sea más fácil buscar actualizaciones en este escenario, hemos introducido notificaciones de eventos del sistema relacionadas con las actualizaciones para proporcionar a las aplicaciones información sobre el proceso de actualización, de manera que las aplicaciones puedan tomar una decisión informada sobre cuándo apagar el dispositivo. Las notificaciones de eventos del sistema disponibles relevantes son:

  • SysEvent_Events_NoUpdateAvailable: la comprobación de actualización ha finalizado y no hay actualizaciones del sistema operativo o de la aplicación disponibles.
  • SysEvent_Events_UpdateStarted: se ha iniciado la descarga de una actualización de la aplicación o del sistema operativo. Este evento irá seguido del evento de SysEvent_Events_UpdateReadyForInstall cuando la actualización esté completamente descargada y lista para su instalación. Si no hay ninguna actualización disponible, se enviarán SysEvent_Events_NoUpdateAvailable en lugar de este evento.
  • SysEvent_Events_UpdateReadyForInstall: una actualización ha terminado de descargarse y está lista para aplicarse al reiniciar.

Las aplicaciones que usan ForcePowerDown deben tener en cuenta el estado de actualización del dispositivo. Las aplicaciones que usan ForcePowerDown siempre deben registrarse para estos eventos y hacer caso a ellos para asegurarse de que la aplicación no hace que una actualización se posponga indefinidamente.

Proporcionamos una aplicación de ejemplo que muestra cómo crear correctamente comprobaciones de actualización en una aplicación que usa ForcePowerDown. Se recomienda encarecidamente que empiece con este ejemplo al desarrollar aplicaciones con ForcePowerDown.

Finalización de la solicitud

Después de realizar una solicitud de apagado, se envía una señal SIGTERM a la aplicación. Si la aplicación controla la señal, tiene hasta 2 segundos para realizar el trabajo de limpieza. En caso contrario, la aplicación se cerrará inmediatamente. Para obtener más información, incluido cómo manejar correctamente la señal, consulta finalización de la aplicación para actualización.

Aplicación de ejemplo

La aplicación de ejemplo Power Down muestra cómo hacer el uso correcto de ForcePowerDown para reducir el consumo de energía mientras se asegura de que el dispositivo permanezca activo periódicamente para comprobar si hay actualizaciones del sistema operativo y de las aplicaciones.

Esta muestra parpadea un led rojo, que representa el trabajo o la "lógica de negocios" que una aplicación puede necesitar hacer mientras el dispositivo está activo y, a continuación, alimenta hacia abajo el dispositivo durante un período de tiempo especificado. Cada enésimo ciclo de apagado/reactivación, la aplicación mantendrá el dispositivo activo durante más tiempo para buscar actualizaciones, en lugar de apagarse inmediatamente después de completar la lógica de negocios (el LED rojo intermitente en este caso). Para garantizar que las actualizaciones se hayan completado antes de apagarse, la aplicación de muestra usa tres notificaciones de eventos del sistema (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted y SysEvent_Events_UpdateReadyForInstall) que informan a la aplicación sobre el estado de la comprobación o descarga de la actualización. La aplicación de ejemplo también muestra cómo medir el consumo actual de la RDB para validar que el dispositivo está entrando en power down.