DEENESPTFRRUARHIKOZHNL

namespace apext::sm

Guia do utilizadorGERADO POR IA

Permite a coordenação de baixo nível de estados de energia do sistema operativo e o despertar autónomo no State Management.
GERADO POR IA não revisado Modelo: gemini-3.8-flash-medium · Esforço: medium · Temperatura: não controlável · Prompt: 8273631beee4 Procedência Perguntas em aberto (1)
traduzido do guia alemãogemini-3.8-flash-low · 2026-10-13 · Original em alemão

Permite a coordenação de baixo nível de estados de energia do sistema operativo e o despertar autónomo no State Management.

O namespace apext::sm disponibiliza interfaces normativas de extensão de plataforma para coordenar estados de energia entre o AUTOSAR Adaptive State Management e o sistema operativo anfitrião SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h». Através da enumeração apext::sm::PowerState, são mapeados de forma tipificada modos de poupança de energia específicos do Linux [SWS_SM_71002]. Além disso, o callback apext::sm::WakeUpHandler permite ao sistema operativo desencadear uma saída autónoma dos estados de suspensão no State Management sem uma aplicação de controlo a montante [SWS_SM_71004], sendo que esta chamada não foi concebida para ser thread-safe.

Contexto

O namespace apext::sm disponibiliza interfaces normativas de extensão de plataforma (Platform Extension Interfaces) para o Functional Cluster State Management dentro da AUTOSAR Adaptive Platform SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h». Enquanto as interfaces padrão do State Management servem primariamente para coordenar estados de aplicação, grupos de funções e modos de execução além das fronteiras do modelo, apext::sm aborda o acoplamento de baixo nível. As interfaces de extensão são concebidas para serem utilizadas ou disponibilizadas por OEMs ou integradores para alargar a funcionalidade da plataforma e concretizar uma interação coordenada com o sistema operativo (OS) subjacente SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h».

O componente central do namespace é a classe PowerStateInterface, que serve para coordenar estados de energia com o sistema operativo. Acompanhando-a, o header apext/sm/power_state_interface.h define enumerações tipificadas e aliases de callback que atuam como elo de ligação entre controladores do sistema operativo, fontes de despertar externas e a gestão de estados interna. Além do sistema operativo, estas interfaces estão concetualmente relacionadas com o Controller do State Management, bem como com instâncias de nível superior, como a SMControlApplication ou o Update and Configuration Management (UCM), que também podem influenciar as transições de estado 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)

Diagrama de contexto: interação entre sistema operativo, interfaces apext::sm e State Management. Fontes: SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state», SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h».

Ciclo de vida

O ciclo de vida no âmbito de apext::sm é marcado pelos estados de energia discretos modelados na enumeração apext::sm::PowerState com base em std::uint32_t [SWS_SM_71002]. Estes estados derivam diretamente da perspetiva do kernel de sistemas operativos Linux:

  • kPmSuspendToIdle (= 1): derivado do estado PM_SUSPEND_TO_IDLE [SWS_SM_71002].
  • kPmSuspendToRam (= 2): derivado do estado PM_SUSPEND_TO_RAM [SWS_SM_71002].
  • kPmHibernation (= 3): derivado do estado PM_HIBERNATION (suspend-to-disk) [SWS_SM_71002].
  • kPmOff (= 4): derivado do estado PM_OFF (desligamento completo) [SWS_SM_71002].

Interpretação: a classe PowerStateInterface deverá servir como ponto de ancoragem primário através do qual o integrador consulta ou transmite estes estados-alvo ao sistema operativo anfitrião. Durante a permanência num estado de poupança de energia como kPmSuspendToRam, o processamento normal fica inativo até que um evento de despertar inicie a transição de regresso ao modo de operação ativo. Pergunta Q-800acae699828764 (aberta)

Caminho de utilização

Um caso de uso central do namespace é o despertar autónomo de todo o sistema a partir de um estado de suspensão (Autonomous wake-up from suspend state) SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state». Enquanto uma SMControlApplication pode solicitar explicitamente a saída do modo suspend-to-RAM, o State Management é adicionalmente capaz de reagir de forma autónoma a sinais de despertar.

Se o sistema operativo sinalizar um evento de despertar através da interface apext::sm::WakeUpHandler – desde que esta esteja implementada –, o State Management inicia autonomamente uma sequência de despertar SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state». apext::sm::WakeUpHandler trata-se de um alias de função do tipo std::function<void(void)> [SWS_SM_71004]. Ao chamar este handler, o State Management transfere a máquina de estados Controller do seu estado de suspensão para o estado LeaveSuspend especialmente modelado para o efeito [SWS_SM_CONSTR_00036]. Neste estado, o controlador executa obrigatoriamente o elemento de ação LeaveSuspendToRam, pelo que a atividade regular da plataforma é retomada sem intervenção prévia de uma aplicação de controlo [SWS_SM_CONSTR_00037], SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state».

Despertar autônomo a partir de Suspend-to-RAMBetriebssystemapext::sm::WakeUpHandlerState Management (Controller)Use Case: Disparo do sinal de despertarWake-up signalisierenAufruf operator()Use Case: Transição de estado autônomaMudança de estado para LeaveSuspendExecução de ActionListItem LeaveSuspendToRamNormalbetrieb aktiv

Diagrama de sequência: fluxo do despertar autónomo através do WakeUpHandler. Fontes: SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state», [SWS_SM_71004], [SWS_SM_CONSTR_00036], [SWS_SM_CONSTR_00037].

Cenários de erro

Na utilização e integração de apext::sm devem ser tidas em consideração condições de contorno específicas do sistema e riscos de concorrência:

  • Falta de thread-safety: o tipo de chamada apext::sm::WakeUpHandler não é, segundo a especificação, expressamente thread-safe (not thread-safe) [SWS_SM_71004]. Se o sistema operativo ou um contexto de interrupção disparar sinais múltiplos ou paralelos, o integrador deve providenciar mecanismos de sincronização adequados para evitar condições de corrida e transições de estado inconsistentes no State Management.
  • Handler não implementado: se o WakeUpHandler não estiver implementado no sistema de destino, não pode ocorrer qualquer despertar autónomo através do sistema operativo; neste caso, o sistema permanece no estado de suspensão até que cheguem pedidos externos (por exemplo, pelo UCM via RequestUpdateSession) ou pedidos explícitos de aplicação SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state».
  • Erros de modelação no manifesto: se faltar no manifesto de implementação o estado LeaveSuspend para o Controller [SWS_SM_CONSTR_00036] ou se este não contiver o elemento obrigatório LeaveSuspendToRam [SWS_SM_CONSTR_00037], a transição automatizada falha e a plataforma não consegue retomar a operação em conformidade após o estado de suspensão.

Este guia baseia-se na especificação AUTOSAR Adaptive Platform R25-11. Todos os conteúdos foram validados com base nas Platform Extension Interfaces normativas para o State Management.

Mapa de temas

Diagrama de classes

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

Vista de detalhes

Selecione uma entrada no índice.

Classes

class for power state coordination with OS

Tipos e constantes

PowerState enumeração

Power State Enumeration.

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

WakeUpHandler function.

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

Enumerações

enumeração 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#e8da3be2
Content hash
e8da3be2
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

Aliases de tipo

alias de tipo 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#ec7838f1
Content hash
ec7838f1
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