Administración del estado de apagado en dispositivos de Azure Sphere
Importante
Esta es la documentación de Azure Sphere (heredado). Azure Sphere (heredado) se retira el 27 de septiembre de 2027 y los usuarios deben migrar a Azure Sphere (integrado) en este momento. Use el selector de versiones situado encima de la TOC para ver la documentación de Azure Sphere (integrado).
Una aplicación general de Azure Sphere puede usar la API de administración de energía para poner el dispositivo en el estado de apagado. El estado de apagado es el estado de energía más bajo posible que puede tener un dispositivo después de la desconexión completa. El dispositivo se puede reactivar mediante dos eventos:
- Llegada de una señal de entrada que desencadena el pin WAKEUP.
- Transcurso de una cantidad de tiempo especificada.
Para usar esta característica, necesita realizar lo siguiente:
- Configure el hardware.
- Consulte en las secciones sobre requisitos de energía de RTC y consideraciones de apagado de Notas de hardware de MT3620 las consideraciones generales sobre el diseño de hardware.
- Consulte en las secciones sobre fuente de alimentación y modo de apagado del artículo Guía de usuario de la placa de desarrollo de referencia (RDB) de MT3620 cómo configurar el hardware de la RDB para el modo de apagado.
- Declare el valor de ForcePowerDown para la funcionalidad PowerControls en el manifiesto de aplicación.
- Use 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á desconectado excepto el reloj en tiempo real (RTC). Esto significa que la conectividad, RAM, flash, núcleos de CPU, etc. están desconectados.
- No se conserva el estado. La reactivación desde el apagado es equivalente a un arranque en frío.
- La reactivación desde el apagado se produce cuando se desencadena la alarma del reloj en tiempo real (activación basada en el tiempo) o cuando se activa en el nivel bajo el pin WAKEUP (activación basada en eventos), lo que suceda 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 sobre el apagado de MT3620 de MediaTek se incluyen en las notas de hardware de MT3620.
Apagado forzado y actualizaciones
Advertencia
Si no se siguen las instrucciones de esta sección, el dispositivo podría no ser capaz de capturar las actualizaciones de la aplicación o del sistema operativo y requerir recuperación. Lea esta sección detenidamente antes de usar ForcePowerDown.
Dado que tanto ForcePowerDown como ForceReboot permiten que una aplicación apague el dispositivo en cualquier momento, será responsabilidad de la aplicación asegurarse de que el dispositivo sigue pudiendo buscar periódicamente actualizaciones cuando se usan estas opciones. Para que resulte más fácil buscar actualizaciones en este escenario, hemos incorporado notificaciones de eventos del sistema relacionadas con la actualización, con el fin de proporcionar a las aplicaciones información sobre el proceso de actualización, de modo que puedan tomar una decisión fundamentada sobre el momento en que pueden apagar el dispositivo. Las notificaciones de eventos del sistema pertinentes disponibles son:
- SysEvent_Events_NoUpdateAvailable: la comprobación de actualizaciones ha finalizado y no hay disponibles actualizaciones del sistema operativo o de la aplicación.
- SysEvent_Events_UpdateStarted: se ha iniciado la descarga de una actualización del sistema operativo o de la aplicación. Este evento irá seguido del evento SysEvent_Events_UpdateReadyForInstall cuando la actualización se haya descargado por completo y esté lista para instalarse. Si no hay ninguna actualización disponible, se enviará SysEvent_Events_NoUpdateAvailable en lugar de este evento.
- SysEvent_Events_UpdateReadyForInstall: una actualización ha terminado de descargarse y está lista para aplicarse al reiniciarse.
Las aplicaciones que usan ForcePowerDown deben ser conscientes del estado de actualización del dispositivo. Deben registrar la búsqueda de estos eventos y tenerlos en cuenta 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 actualizaciones en una aplicación que usa ForcePowerDown. Se recomienda comenzar con este ejemplo al desarrollar aplicaciones con ForcePowerDown.
Finalización de la aplicación
Una vez realizada 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. De lo contrario, la aplicación finalizará inmediatamente. Para más información, incluido cómo controlar correctamente la señal, consulte la información sobre finalización de la aplicación para la actualización.
Aplicación de ejemplo
En la aplicación de ejemplo de apagado se muestra cómo utilizar correctamente ForcePowerDown para reducir el consumo de energía y, al mismo tiempo, asegurarse de que el dispositivo permanecerá activo periódicamente para buscar actualizaciones del sistema operativo y de la aplicación.
En este ejemplo se hace parpadear un LED rojo, que representa el trabajo o la "lógica de negocios" que una aplicación puede necesitar llevar a cabo mientras el dispositivo está activo y, después, se apaga el dispositivo durante un período de tiempo especificado. Cada N ciclos de apagado y reactivación, la aplicación hará que el dispositivo se mantenga activo más tiempo para buscar actualizaciones, en lugar de apagarlo inmediatamente después de la finalización de la lógica de negocios (el LED rojo intermitente en este caso). Para asegurarse de que las actualizaciones se hayan completado antes de apagar, la aplicación de ejemplo 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 búsqueda o descarga de actualizaciones. En la aplicación de ejemplo también se muestra cómo medir el consumo de corriente de la RDB, para asegurarse de que el dispositivo inicia el apagado.