Hantera energisparläge för Azure Sphere-enheter

Ett Azure Sphere-program på hög nivå kan använda API:et för energisparfunktioner för att försätta enheten i energisparläge. Energisparläget är det lägsta möjliga energiläget som en enhet kan ha, förutom att den är helt avstängd. Enheten kan väckas av någon av två händelser:

  • Ankomst av en insignal som utlöser WAKEUP-stiftet.
  • Passage av en angiven tid.

Om du vill använda den här funktionen måste du:

  1. Konfigurera maskinvaran.
  2. Deklarera Värdet ForcePowerDown för PowerControls-funktionen i programmanifestet.
  3. Använd PowerManagement_ForceSystemPowerDown från Power Management API.

Energisparläge

Energisparläget har följande egenskaper:

  • Allt är avstängt utom realtidsklockan (RTC). Det innebär att alla anslutningar, RAM-minne, flashminnen, processorkärnor och så vidare är avstängda.
  • Det finns inget statligt bevarande. Att aktivera från Power Down motsvarar en kall start.
  • Aktivering från strömsparläge inträffar när alarmet i realtid utlöses (tidsbaserad väckning) eller när WAKEUP-stiftet dras lågt (händelsebaserad väckning), beroende på vad som inträffar först.

Observera

DAA-certifikatet (kundcertifikatet) lagras fortlöpande. Det innebär att en enhet inte ansluter till AS3 för ett nytt certifikat efter varje kallstart eller avstängning som sker mellan normala 24-timmarsuppdateringar. Detta minskar både strömförbrukningen och tiden som krävs för att ansluta till molnet.

Detaljer om MT3620

Hänsyn till MediaTek MT3620 Power Down finns i maskinvaruanteckningar för MT3620.

Framtvinga avstängning och uppdateringar

Varning

Om du inte följer anvisningarna i det här avsnittet kan det leda till att enheten inte kan hämta program- eller OS-uppdateringar och kräva återställning. Läs noga innan du använder ForcePowerDown.

Eftersom både ForcePowerDown och ForceReboot tillåter ett program att stänga av enheten när som helst, blir det programmets ansvar att se till att enheten fortfarande kan söka efter uppdateringar regelbundet när du använder ForcePowerDown eller ForceReboot. För att göra det enklare att söka efter uppdateringar i det här scenariot har vi infört uppdateringsrelaterade systemhändelsemeddelanden för att ge program information om uppdateringsprocessen så att dina appar kan fatta ett välgrundat beslut om när enheten ska stängas av. De relevanta tillgängliga systemhändelseaviseringar är:

  • SysEvent_Events_NoUpdateAvailable: Uppdateringskontrollen är klar och inga os- eller programuppdateringar är tillgängliga.
  • SysEvent_Events_UpdateStarted: En os- eller programuppdatering har börjat laddas ned. Händelsen följs av händelsen SysEvent_Events_UpdateReadyForInstall när uppdateringen laddas ned helt och är klar för installation. Om det inte finns någon tillgänglig uppdatering skickas SysEvent_Events_NoUpdateAvailable i stället för den här händelsen.
  • SysEvent_Events_UpdateReadyForInstall: Nedladdningen av en uppdatering är klar och är klar att tillämpas vid omstart.

Program som använder ForcePowerDown måste vara medvetna om enhetens uppdateringsstatus. Program som använder ForcePowerDown bör alltid registrera sig för dessa händelser och lyssna på dem för att säkerställa att appen inte orsakar att en uppdatering skjuts upp på obestämd tid.

Vi tillhandahåller ett exempelprogram som visar hur du skapar uppdateringskontroller korrekt i ett program som använder ForcePowerDown. Vi rekommenderar starkt att du börjar med det här exemplet när du utvecklar appar med ForcePowerDown.

Upphörande av program

När en Power Down-begäran har gjorts skickas en SIGTERM-signal till appen. Om appen hanterar signalen har den upp till två sekunder på sig att rensa. I annat fall avslutas appen omedelbart. Mer information, inklusive hur du hanterar signalen korrekt, finns i Appen avslutas för uppdatering.

Exempelprogram

Power Down-exempelprogrammet visar hur du korrekt använder ForcePowerDown för att minska strömförbrukningen samtidigt som du ser till att enheten regelbundet håller sig aktiv för att söka efter OS- och appuppdateringar.

Det här exemplet blinkar en röd LED-lampa som representerar arbete eller "affärslogik" som en app kan behöva göra medan enheten är aktiv och stänger sedan av enheten under en viss tid. Varje Nth Power Down/wake cykel, kommer appen hålla enheten aktiv längre för att söka efter uppdateringar i stället för omedelbart stänga av efter slutförande av affärslogik (blinkande röd LED i det här fallet). För att säkerställa att uppdateringarna har slutförts innan den stängs av använder exempelappen tre systemhändelsemeddelanden (SysEvent_Events_NoUpdateAvailable, SysEvent_Events_UpdateStarted och SysEvent_Events_UpdateReadyForInstall) som informerar appen om status för uppdateringskontrollen/nedladdningen. Exempelappen visar också hur du mäter den aktuella förbrukningen av RDB för att verifiera att enheten går in i Power Down.