共用方式為


管理 Azure Sphere 裝置的關閉電源狀態

重要

這是 Azure Sphere (舊版) 檔。 Azure Sphere(舊版)將於 2027 年 9 月 27 日淘汰,且使用者此時必須移轉至 Azure Sphere(整合式)。 使用位於 TOC 上方的版本選取器來檢視 Azure Sphere (整合式) 檔。

高階 Azure Sphere 應用程式可以使用電源管理 API 將裝置置於電源關閉狀態。 電源關閉狀態是裝置除了完全關閉以外,裝置可能處於的最低電源狀態。 裝置可由兩個事件之一喚醒:

  • 輸入訊號的抵達會觸發 WAKEUP 針腳。
  • 指定時間量的通過。

若要使用這項功能,您必須:

  1. 設定硬體。
  2. 在應用程式指令清單宣告PowerControls功能的 ForcePowerDown 值。
  3. 從電源管理 API 使用PowerManagement_ForceSystemPowerDown

關閉電源狀態

Power Down 狀態具有下列特性:

  • 除了即時時鐘 (RTC) 之外,所有專案都已關閉。 這表示所有連線能力、RAM、快閃、CPU 核心等等都會關閉電源。
  • 沒有狀態保護。 從 Power Down 醒來相當於冷靴。
  • 當即時時鐘鬧鐘引發(以時間為基礎的喚醒)或喚醒針腳處於低位(事件型喚醒)時,就會從Power Down喚醒發生。

注意

DAA (客戶) 憑證會持續儲存。 因此,在每一次冷開機或正常 24 小時更新之間發生的 Power Down 之後,裝置不會連線到 AS3 以取得新的憑證。 這樣可減少耗電量和連線到雲端所需的時間。

MT3620 特定專案

MediaTek MT3620 電源關閉考慮是在 MT3620 硬體注意事項提供。

強制關閉電源和更新

警告

無法遵循本節中的指引,可能會導致您的裝置無法擷取應用程式或OS更新,且需要復原。 請先仔細閱讀,再使用 ForcePowerDown。

因為 ForcePowerDown 和 ForceReboot 都允許應用程式隨時關閉裝置電源,因此它就會成為該應用程式的責任,以確保裝置在使用 ForcePowerDown 或 ForceReboot 時仍能夠定期檢查更新。 為了讓您更輕鬆地檢查此案例中的更新,我們引進了更新相關的系統事件通知,為應用程式提供更新程式的相關信息,讓您的 app 能夠做出何時關閉裝置的明智決策。 相關的可用系統事件通知如下:

  • SysEvent_Events_NoUpdateAvailable:更新檢查已完成,且沒有操作系統或應用程式更新可供使用。
  • SysEvent_Events_UpdateStarted:作業系統或應用程式更新已開始下載。 當更新完全下載並準備好進行安裝時,此事件會接著 SysEvent_Events_UpdateReadyForInstall 事件。 如果沒有可用的更新, 則會傳送SysEvent_Events_NoUpdateAvailable ,而不是此事件。
  • SysEvent_Events_UpdateReadyForInstall:更新已完成下載,並準備好在重新啟動時套用。

使用 ForcePowerDown 的應用程式必須注意裝置的更新狀態。 使用 ForcePowerDown 的應用程式應該一律註冊這些事件,並注意這些事件,以確保應用程式不會無限期地延遲更新。

我們提供範例 應用程式 ,示範如何將更新檢查正確建置至使用 ForcePowerDown 的應用程式。 強烈建議您在使用 ForcePowerDown 開發應用程式時,從此範例開始。

應用程式終止

發出 Power Down 要求之後,SIGTERM 訊號就會傳送至您的應用程式。 如果您的應用程式處理訊號,最多需要 2 秒的時間才能執行清除工作。 否則,應用程式將會立即終止。 如需詳細資訊,包括如何正確處理訊號,請參閱 應用程式終止以進行更新

範例應用程式

Power Down 範例應用程式示範如何使用 ForcePowerDown 來降低耗電量,同時仍確保裝置會定期保持清醒狀態,以檢查操作系統和應用程式更新。

此範例會閃爍 LED 紅色,代表應用程式在喚醒裝置時可能需要執行的工作或「商業規則」,然後關閉裝置一段時間。 每個第 N 個電源關閉/ 喚醒週期,應用程式都會讓裝置保持清醒的時間更長,以檢查更新,而不是在商業規則完成之後立即關閉電源(在此案例中閃爍的紅色 LED)。 為了確保在關閉電源之前已完成更新,範例應用程式會使用三 個系統事件通知 (SysEvent_Events_NoUpdateAvailable、SysEvent_Events_UpdateStarted和SysEvent_Events_UpdateReadyForInstall),通知應用程式更新檢查/下載的狀態。 範例應用程式也會示範如何測量 RDB 目前的耗用量,以驗證裝置是否進入電源關閉。