次の方法で共有


Azure Sphere デバイスのパワー ダウン状態の管理

重要

これは Azure Sphere (レガシ) のドキュメントです。 Azure Sphere (レガシ) は 2027 年 9 月 27 日に 再提供されておりユーザーは現時点で Azure Sphere (統合) に移行する必要があります。 TOC の上にある Version セレクターを使用して、Azure Sphere (統合) のドキュメントを表示します。

高度な Azure Sphere アプリケーションでは、電源管理 API を使用して、デバイスをパワー ダウン状態にすることができます。 パワー ダウン状態とは、デバイスの電源が完全に切断されている状態ではなく、電力が可能な限り低く使用されている状態です。 デバイスは、次の 2 つのイベントのいずれかによってウェイクアップできます。

  • WAKEUP ピンをトリガーする入力信号の到達。
  • 指定された時間の経過。

この機能を使用するには、次のことを行う必要があります。

  1. ハードウェアを構成します。
  2. アプリケーション マニフェスト内の PowerControls 機能に ForcePowerDown 値を宣言します。
  3. 電源管理 API の PowerManagement_ForceSystemPowerDown を使用します。

パワー ダウン状態

パワー ダウン状態には、次の特徴があります。

  • リアルタイム クロック (RTC) を除くすべての電源が切断されています。 これは、すべての接続、RAM、フラッシュ、CPU コアなどがすべて電源切断されていることを意味します。
  • 状態の保存はありません。 パワー ダウンからのウェイクアップは、コールド ブートと同等です。
  • リアルタイム クロック アラームが発生したとき (時間ベースのウェイクアップ)、または WAKEUP ピンがローにされたとき (イベント ベースのウェイクアップ) のいずれかが先に発生すると、パワー ダウン状態から復帰します。

Note

DAA (顧客) 証明書は永続的に格納されます。 その結果、デバイスは、通常の 24 時間の更新の間に発生するすべてのコールド ブートまたは電源ダウンの後に、新しい証明書の AS3 に接続されません。 これにより、電力消費量とクラウドへの接続に必要な時間の両方が削減されます。

MT3620 の詳細

MediaTek MT3620 のパワー ダウンに関する考慮事項は、「MT3620 ハードウェアの注」に記載されています。

パワー ダウンと更新を強制する

警告

このセクションのガイダンスに従わないと、デバイスがアプリケーションまたは OS の更新プログラムをフェッチできず、回復が必要になる可能性があります。 ForcePowerDown を使用する前に、よくお読みください。

ForcePowerDown と ForceReboot の両方を使用すると、アプリケーションからいつでもデバイスをパワー ダウンできるため、ForcePowerDown または ForceReboot を使用する場合、アプリケーションでは、デバイスで引き続き更新プログラムを定期的に確実にチェックできるようにする責任があります。 このシナリオで更新プログラムをチェックしやすくするため、更新プロセスに関する情報をアプリケーションに提供できるように更新関連のシステム イベント通知を導入することで、デバイスをパワー ダウンするタイミングについて、アプリケーションで情報に基づいた決定を行うことができるようにしました。 関連する使用可能なシステム イベント通知は次のとおりです。

  • SysEvent_Events_NoUpdateAvailable: 更新プログラムの確認が完了し、OS またはアプリケーションの更新プログラムは使用できません。
  • SysEvent_Events_UpdateStarted: OS またはアプリケーションの更新プログラムのダウンロードが開始されました。 このイベントの後、更新プログラムが完全にダウンロードされ、インストールの準備が整うと、SysEvent_Events_UpdateReadyForInstall イベントが発生します。 利用可能な更新プログラムがない場合は、このイベントではなく、SysEvent_Events_NoUpdateAvailable が送信されます。
  • SysEvent_Events_UpdateReadyForInstall: 更新プログラムのダウンロードが完了し、再起動時に適用する準備ができました。

ForcePowerDown を使用するアプリケーションでは、デバイスの更新状態に注意する必要があります。 ForcePowerDown を使用するアプリケーションでは、常にこれらのイベントを登録し、アプリによって更新プログラムが無期限に延期されることが決してないようにイベントに注意する必要があります。

ForcePowerDown を使用するアプリケーションに更新プログラム チェックを適切に組み込む方法を示すサンプル アプリケーションを提供します。 ForcePowerDown を使用してアプリを開発するときは、このサンプルを基にして始めることを強くお勧めします。

アプリケーションの終了

Power Down 要求が行われると、SIGTERM シグナルがアプリに送信されます。 シグナルがアプリによって処理される場合、クリーンアップ作業の実行に最大 2 秒かかります。 それ以外の場合、アプリはすぐに終了します。 シグナルを適切に処理する方法など、詳細については、更新のためのアプリの終了に関するページを参照してください。

サンプル アプリケーション

パワー ダウンのサンプル アプリケーションは、ForcePowerDown を適切に使用して電力消費を削減しながら、デバイスの起動状態を定期的に保って OS とアプリの更新プログラムを確実にチェックできるようにする方法を示しています。

このサンプルでは、デバイスが起動している間、アプリで実行する必要のある作業または "ビジネス ロジック" を表す赤色の LED が点滅し、その後、指定した時間だけデバイスをパワー ダウンさせます。 N 回目のパワー ダウン/ウェイク サイクルごとに、アプリは、ビジネス ロジック (この場合は点滅する赤い LED) の完了後すぐにパワー ダウンせず、デバイスが更新プログラムをチェックできるように起動している時間を長くします。 パワー ダウンする前に確実に更新が完了しているようにするため、サンプル アプリでは、更新プログラムのチェックとダウンロードの状態についてアプリに通知する 3 つのシステム イベント通知 (SysEvent_Events_NoUpdateAvailable、SysEvent_Events_UpdateStarted、SysEvent_Events_UpdateReadyForInstall) を使用します。 このサンプル アプリでは、デバイスがパワー ダウン状態になっていることを確認するために、RDB の現在の使用量を測定する方法も示しています。