Управление экономичным режимом на устройствах Azure Sphere
Внимание
Это документация по Azure Sphere (устаревшая версия). Служба Azure Sphere (устаревшая версия) выходит на пенсию 27 сентября 2027 г., и к этому времени пользователи должны перейти в Azure Sphere (интегрированная). Используйте селектор версий, расположенный над toC, чтобы просмотреть документацию по Azure Sphere (интегрированная).
Приложение Azure Sphere высокого уровня может с помощью API управления питанием перевести устройство в экономичный режим. Экономичным режимом называется состояние наименьшего возможного энергопотребления, в котором устройство еще не является полностью выключенным. Пробуждение устройства активируется любым из двух событий:
- Подача сигнала на контакт WAKEUP.
- Истечение определенного периода времени.
Для использования этой функции нужно сделать следующее:
- Настроить оборудование.
- Изучите разделы Требования к питанию часов реального времени (RTC) и Рекомендации по экономичному режиму статьи Примечания по оборудованию MT3620, чтобы получить общее представление об аппаратной архитектуре.
- Сведения о настройке экономичного режима для оборудования RDB см. в статьях об электропитании и экономичном режиме из руководства пользователя MT3620 RDB.
- Объявите значение ForcePowerDown для функции PowerControls в манифесте приложения.
- Примените PowerManagement_ForceSystemPowerDown из API управления питанием.
Управление экономичным режимом
Экономичный режим имеет следующие характеристики:
- Выключено все оборудование, кроме часов реального времени (RTC). В частности, не подается питание на все каналы связи, ОЗУ, флэш-память, ядра ЦП и т. д.
- Не поддерживается сохранение состояния. Выход из экономичного режима аналогичен холодной загрузке.
- Он происходит по сигналу от часов реального времени (пробуждение по времени) или при падении напряжения на контакте WAKEUP (пробуждение по событию), в зависимости от того, что из этого происходит раньше.
Примечание.
Сертификат DAA (customer) постоянно хранится. В результате устройство не подключается к AS3 для нового сертификата после каждой холодной загрузки или Power Down, которая происходит между обычными обновлениями 24 часа. Это снижает потребление энергии и время, необходимое для подключения к облаку.
Особенности MT3620
Рекомендации по экономичному режиму для MediaTek MT3620 приведены в статье Примечания по оборудованию MT3620.
Принудительный экономичный режим и обновления
Предупреждение
Несоблюдение инструкций, представленных в этой статье, может привести к невозможности установить обновления приложений или ОС на устройстве, что потребует процедуры восстановления. Внимательно прочитайте приведенную ниже информацию, прежде чем применять функцию ForcePowerDown.
Оба метода ForcePowerDown и ForceReboot позволяют приложению в любой момент отключить питание устройства, а значит приложение обязано самостоятельно обеспечить периодические проверки наличия обновлений, если в нем применяется метод ForcePowerDown и (или) ForceReboot. Чтобы упростить проверку обновлений в таких сценариях, мы добавили системные уведомления о событиях, связанных с обновлениями. Это дает приложениям дополнительные сведения о ходе обновления, а значит позволяет принять взвешенные решения о подходящем моменте для отключения устройства. Сюда входят следующие уведомления о событиях.
- SysEvent_Events_NoUpdateAvailable. Проверка обновления завершена, и обновления ОС или приложения недоступны.
- SysEvent_Events_UpdateStarted. Обновление ОС или приложения начало скачивание. После этого события наступит событие SysEvent_Events_UpdateReadyForInstall, которое означает, что скачивание завершено и обновление готово к установке. Если обновлений нет, вместо этого события отправляется событие SysEvent_Events_NoUpdateAvailable.
- SysEvent_Events_UpdateReadyForInstall: обновление завершило скачивание и готово к применению при перезагрузке.
Если приложение использует функцию ForcePowerDown, ему нужно следить за состоянием обновлений на устройстве. Если приложение использует ForcePowerDown, оно должно регистрировать эти события и учитывать их, чтобы обновление не оказалось отложенным на неопределенный срок.
Мы подготовили пример приложения, который демонстрирует правильное применение проверок обновлений в приложении, использующем ForcePowerDown. Мы настоятельно рекомендуем начинать разработку приложений, в которых используется ForcePowerDown, именно с этого примера.
Завершение приложения
После выполнения запроса Power Down сигнал SIGTERM отправляется в приложение. Если приложение умеет обрабатывать этот сигнал, ему предоставляется 2 секунды на необходимую очистку. В противном случае приложение завершается немедленно. Дополнительные сведения, в том числе о правильной обработке этого сигнала, см. в этой статье.
Пример приложения
Пример приложения с использованием экономичного режима демонстрирует, как правильно использовать ForcePowerDown для снижения энергопотребления с периодическим пробуждением устройства для проверки обновлений ОС и приложения.
Это приложение включает и выключает красный светодиод, моделируя выполнение рабочего процесса (логики) в активном состоянии устройства, а затем переводит устройство в экономичный режим на указанный период времени. Через каждые N циклов отключения и пробуждения приложение оставляет устройство включенным на более продолжительный период, чтобы проверить наличие обновлений, вместо мгновенного отключения питания после завершения рабочей логики (в нашем примере это мигание красного светодиода). Чтобы гарантировать завершение процесса обновления до отключения питания, в приложении применяются три системных уведомления о событиях (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted и SysEvent_Events_UpdateReadyForInstall), по которым приложение контролирует текущее состояние проверки и скачивания обновлений. Этот пример приложения также демонстрирует, как измерить энергопотребление макетной платы, чтобы удостовериться в переходе устройства в экономичный режим.