DEENESPTFRRUARHIKOZHNL

namespace apext::sm

User GuideKI-GENERIERT

Ermöglicht die hardwarenahe Koordination von Betriebssystem-Energiezuständen und das autonome Aufwachen im State Management.
KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8273631beee4 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Ermöglicht die hardwarenahe Koordination von Betriebssystem-Energiezuständen und das autonome Aufwachen im State Management.

Der Namespace apext::sm stellt normative Plattform-Erweiterungsschnittstellen bereit, um Energiezustände zwischen dem AUTOSAR Adaptive State Management und dem Host-Betriebssystem abzustimmen SWS StateManagement §C.1 „Header: apext/sm/power_state_interface.h“. Über die Enumeration apext::sm::PowerState werden Linux-spezifische Energiesparmodi typisiert abgebildet [SWS_SM_71002]. Zudem ermöglicht der Callback apext::sm::WakeUpHandler dem Betriebssystem, ein autonomes Verlassen von Ruhezuständen im State Management ohne vorgeschaltete Steuerapplikation auszulösen [SWS_SM_71004], wobei dieser Aufruf nicht threadsicher ausgelegt ist.

Kontext

Der Namespace apext::sm stellt normative Plattform-Erweiterungsschnittstellen (Platform Extension Interfaces) für das funktionale Cluster State Management innerhalb der AUTOSAR Adaptive Platform bereit SWS StateManagement §C.1 „Header: apext/sm/power_state_interface.h“. Während standardmäßige Schnittstellen des State Management primär der Koordination von Anwendungszuständen, Funktionsgruppen und Ausführungsmodi über Modellgrenzen hinweg dienen, adressiert apext::sm die hardwarenahe Kopplung. Die Erweiterungsschnittstellen sind dafür konzipiert, von OEMs oder Integratoren genutzt oder bereitgestellt zu werden, um die Funktionalität der Plattform zu erweitern und eine koordinierte Interaktion mit dem zugrundeliegenden Betriebssystem (OS) zu realisieren SWS StateManagement §C.1 „Header: apext/sm/power_state_interface.h“.

Zentrale Komponente des Namespace ist die Klasse PowerStateInterface, die der Koordination von Energiezuständen mit dem Betriebssystem dient. Begleitend definiert der Header apext/sm/power_state_interface.h typisierte Aufzählungen und Callback-Aliase, die als Bindeglied zwischen Betriebssystemtreibern, externen Aufwachquellen und der internen Zustandsverwaltung agieren. Neben dem Betriebssystem stehen diese Schnittstellen konzeptionell in Beziehung zum Controller des State Management sowie zu übergeordneten Instanzen wie der SMControlApplication oder dem Update and Configuration Management (UCM), die ebenfalls Einfluss auf Zustandstransitionen nehmen können SWS StateManagement §7.7.15.1 „Autonomous wake-up from suspend state“.

OS Betriebssystem (Kernel) ApextSM apext::sm (PowerStateInterface, WakeUpHandler) OS->ApextSM Signalisiert Wake-up Setzt PowerState SMController State Management (Controller) ApextSM->SMController Autonomer Aufruf (WakeUpHandler) SMControlApp SMControlApplication / UCM SMControlApp->SMController Explizite Requests (RequestUpdateSession)

Kontextdiagramm: Zusammenspiel von Betriebssystem, apext::sm-Schnittstellen und State Management. Quellen: SWS StateManagement §7.7.15.1 „Autonomous wake-up from suspend state“, SWS StateManagement §C.1 „Header: apext/sm/power_state_interface.h“.

Lebenszyklus

Der Lebenszyklus im Rahmen von apext::sm ist durch die diskreten Energiezustände geprägt, die in der Enumeration apext::sm::PowerState auf Basis von std::uint32_t modelliert sind [SWS_SM_71002]. Diese Zustände leiten sich direkt aus der Kernel-Perspektive von Linux-Betriebssystemen ab:

  • kPmSuspendToIdle (= 1): Abgeleitet vom Zustand PM_SUSPEND_TO_IDLE [SWS_SM_71002].
  • kPmSuspendToRam (= 2): Abgeleitet vom Zustand PM_SUSPEND_TO_RAM [SWS_SM_71002].
  • kPmHibernation (= 3): Abgeleitet vom Zustand PM_HIBERNATION (Suspend-to-Disk) [SWS_SM_71002].
  • kPmOff (= 4): Abgeleitet vom Zustand PM_OFF (vollständige Abschaltung) [SWS_SM_71002].

Interpretation: Die Klasse PowerStateInterface dürfte als primärer Ankerpunkt dienen, über den der Integrator diese Zielzustände abfragt oder an das Host-Betriebssystem übermittelt. Frage Q-800acae699828764 (offen) Während des Verweilens in einem Energiesparzustand wie kPmSuspendToRam ruht die normale Verarbeitung, bis ein Aufwachereignis den Rückübergang in den aktiven Betriebsmodus einleitet.

Nutzungspfad

Ein zentraler Anwendungsfall des Namespace ist das autonome Aufwachen des Gesamtsystems aus einem Ruhezustand (Autonomous wake-up from suspend state) SWS StateManagement §7.7.15.1 „Autonomous wake-up from suspend state“. Während eine SMControlApplication das Verlassen des Suspend-to-RAM-Modus explizit anfordern kann, ist State Management zusätzlich in der Lage, autonom auf Aufwachsignale zu reagieren.

Signalisiert das Betriebssystem ein Aufwachereignis über die Schnittstelle apext::sm::WakeUpHandler – sofern diese implementiert ist –, initiiert State Management eigenständig eine Aufwachsequenz SWS StateManagement §7.7.15.1 „Autonomous wake-up from suspend state“. Bei apext::sm::WakeUpHandler handelt es sich um einen Funktions-Alias vom Typ std::function<void(void)> [SWS_SM_71004]. Durch den Aufruf dieses Handlers überführt State Management die Controller-Zustandsmaschine aus ihrem Suspend-Zustand in den speziell dafür modellierten Zustand LeaveSuspend [SWS_SM_CONSTR_00036]. In diesem Zustand führt der Controller verpflichtend das Aktionselement LeaveSuspendToRam aus, wodurch die reguläre Plattformaktivität ohne vorherige Intervention einer Steuerapplikation fortgesetzt wird [SWS_SM_CONSTR_00037], SWS StateManagement §7.7.15.1 „Autonomous wake-up from suspend state“.

Autonomes Aufwachen aus Suspend-to-RAMBetriebssystemapext::sm::WakeUpHandlerState Management (Controller)Use Case: Auslösen des AufwachsignalsWake-up signalisierenAufruf operator()Use Case: Autonomer ZustandsübergangZustandswechsel nach LeaveSuspendAusführen von ActionListItem LeaveSuspendToRamNormalbetrieb aktiv

Sequenzdiagramm: Ablauf des autonomen Aufwachens über den WakeUpHandler. Quellen: SWS StateManagement §7.7.15.1 „Autonomous wake-up from suspend state“, [SWS_SM_71004], [SWS_SM_CONSTR_00036], [SWS_SM_CONSTR_00037].

Fehlerszenarien

Bei der Verwendung und Einbindung von apext::sm sind systemspezifische Randbedingungen und Nebenläufigkeitsrisiken zu beachten:

  • Fehlende Thread-Sicherheit: Der Aufruftyp apext::sm::WakeUpHandler ist laut Spezifikation ausdrücklich nicht threadsicher (not thread-safe) [SWS_SM_71004]. Löst das Betriebssystem oder ein Interrupt-Kontext mehrfache oder parallele Signale aus, muss der Integrator für geeignete Synchronisationsmechanismen sorgen, um Datenrennen und inkonsistente Zustandsübergänge im State Management zu verhindern.
  • Nicht implementierter Handler: Ist der WakeUpHandler im Zielsystem nicht implementiert, kann kein autonomes Aufwachen über das Betriebssystem erfolgen; in diesem Fall verbleibt das System im Ruhezustand, bis externe Anforderungen (etwa durch UCM via RequestUpdateSession) oder explizite Applikationsanfragen eintreffen SWS StateManagement §7.7.15.1 „Autonomous wake-up from suspend state“.
  • Modellierungsfehler im Manifest: Fehlt im Bereitstellungsmanifest der Zustand LeaveSuspend für den Controller [SWS_SM_CONSTR_00036] oder beinhaltet dieser nicht das obligatorische Element LeaveSuspendToRam [SWS_SM_CONSTR_00037], schlägt die automatisierte Transition fehl und die Plattform kann den Betrieb nach dem Ruhezustand nicht vorschriftsmäßig wiederaufnehmen.

Dieser Leitfaden basiert auf der Spezifikation AUTOSAR Adaptive Platform R25-11. Alle Inhalte wurden anhand der normativen Platform Extension Interfaces für State Management validiert.

Themenkarte

Typen und Konstanten

2

Klassendiagramm

Abgerundete Rahmen = Namespace- bzw. Klassen-Scopes; hohle Dreieckspfeile = Vererbung (zeigt zur Basisklasse); graue Boxen = namespace-fremde bzw. externe Basisklassen. Klicken öffnet die jeweilige Klassen- bzw. cppreference-Seite.

G cluster_ns apext::sm napext__sm__PowerStateInterface PowerStateInterface

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Klassen

class for power state coordination with OS

Typen und Konstanten

PowerState enumeration

Power State Enumeration.

enum class PowerState : std::uint32_t {...};
WakeUpHandler type alias

WakeUpHandler function.

using WakeUpHandler = std::function<void(void)>;

Enumerationen

enumeration PowerState [SWS_SM_71002] Upstream: RS_SM_00402

enum class PowerState :         std::uint32_t {...};

Power State Enumeration.

Header-Datei#include "apext/sm/power_state_interface.h"
Forwarding-Header#include "apext/sm/sm_fwd.h"
Scopenamespace apext::sm
SymbolPowerState
Basistypstd::uint32_t

Werte

EnumeratorBeschreibung
kPmSuspendToIdle=1 Derived from Linux Power State PM_SUSPEND_TO_IDLE (Kernel view)
kPmSuspendToRam=2 Derived from Linux Power State PM_SUSPEND_TO_RAM (Kernel view)
kPmHibernation=3 Derived from Linux Power State PM_HIBERNATION (Kernel view)
kPmOff=4 Derived from Linux Power State PM_OFF (Kernel view)

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_SM_71002
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_SM_71002@rel:R25-11#4f68e3fd
Content hash
4f68e3fd
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_StateManagement.pdf#nameddest=SWS_SM_71002
Status: valid/unmigrated Version: rel:R25-11#4f68e3fd Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_SM_71002@rel:R25-11#4f68e3fd
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill

Typaliase

type alias WakeUpHandler [SWS_SM_71004] Upstream: RS_SM_00402

using WakeUpHandler = std::function<void(void)>;

WakeUpHandler function.

Header-Datei#include "apext/sm/power_state_interface.h"
Scopenamespace apext::sm
SymbolWakeUpHandler
Thread-Sicherheitnot thread-safe

Request a governed re-review of this record. The record is not changed immediately.

Record
AUTOSAR/AP/record/SWS_SM_71004
Status
valid/unmigrated
Version
AUTOSAR/AP/record/SWS_SM_71004@rel:R25-11#29968d23
Content hash
29968d23
Source
https://www.autosar.org/fileadmin/standards/R25-11/AP/AUTOSAR_AP_SWS_StateManagement.pdf#nameddest=SWS_SM_71004
Status: valid/unmigrated Version: rel:R25-11#29968d23 Versionshistorie & Revisions (1 transition)
Current State
valid/unmigrated
Reason
mechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record
Campaign
2026-08-13-status-backfill
Active Version
AUTOSAR/AP/record/SWS_SM_71004@rel:R25-11#29968d23
Point-in-Time History:
DateActorTransitionReason / RationaleCampaign
2026-08-13toolnone → valid/unmigratedmechanically backfilled by migriere_status_backfill.py -- no per-field curation history exists yet for this record2026-08-13-status-backfill