Permite la coordinación cercana al hardware de estados de energía del sistema operativo y el despertar autónomo en State Management.
GENERADO POR IAno revisadoModelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 8273631beee4ProcedenciaPreguntas abiertas (1)
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán
Permite la coordinación cercana al hardware de estados de energía del sistema operativo y el despertar autónomo en State Management.
El namespace apext::sm proporciona interfaces normativas de extensión de plataforma para coordinar estados de energía entre AUTOSAR Adaptive State Management y el sistema operativo anfitrión SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h». A través de la enumeración apext::sm::PowerState se representan de forma tipificada modos de ahorro de energía específicos de Linux [SWS_SM_71002]. Además, el callback apext::sm::WakeUpHandler permite al sistema operativo activar una salida autónoma de estados de reposo en State Management sin una aplicación de control intermedia [SWS_SM_71004], no estando diseñada esta llamada de manera segura para subprocesos.
Contexto
El namespace apext::sm proporciona interfaces de extensión de plataforma (Platform Extension Interfaces) normativas para el clúster funcional State Management dentro de la AUTOSAR Adaptive Platform SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h». Mientras que las interfaces estándar de State Management sirven primordialmente para coordinar estados de aplicación, grupos de funciones y modos de ejecución a través de los límites del modelo, apext::sm aborda el acoplamiento cercano al hardware. Las interfaces de extensión están concebidas para ser utilizadas o proporcionadas por OEM o integradores con el fin de ampliar la funcionalidad de la plataforma y materializar una interacción coordinada con el sistema operativo (OS) subyacente SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h».
El componente central del namespace es la clase PowerStateInterface, que sirve para la coordinación de estados de energía con el sistema operativo. De forma complementaria, la cabecera apext/sm/power_state_interface.h define enumeraciones tipificadas y alias de callback que actúan como nexo de unión entre los controladores del sistema operativo, las fuentes de activación externas y la gestión interna de estados. Además de con el sistema operativo, estas interfaces guardan relación conceptual con el Controller de State Management, así como con instancias de nivel superior como la SMControlApplication o Update and Configuration Management (UCM), que asimismo pueden influir en las transiciones de estado SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state».
El ciclo de vida en el marco de apext::sm está marcado por los estados discretos de energía modelados en la enumeración apext::sm::PowerState sobre la base de std::uint32_t[SWS_SM_71002]. Estos estados se derivan directamente de la perspectiva del kernel de sistemas operativos Linux:
kPmSuspendToIdle (= 1): derivado del estado PM_SUSPEND_TO_IDLE[SWS_SM_71002].
kPmSuspendToRam (= 2): derivado del estado PM_SUSPEND_TO_RAM[SWS_SM_71002].
kPmHibernation (= 3): derivado del estado PM_HIBERNATION (Suspend-to-Disk) [SWS_SM_71002].
kPmOff (= 4): derivado del estado PM_OFF (apagado completo) [SWS_SM_71002].
Interpretación: la clase PowerStateInterface probablemente sirva como punto de anclaje primario a través del cual el integrador consulta estos estados objetivo o los transmite al sistema operativo anfitrión. Pregunta Q-800acae699828764 (abierta) Durante la permanencia en un estado de ahorro de energía como kPmSuspendToRam, el procesamiento normal se suspende hasta que un evento de despertar inicia la transición de retorno al modo operativo activo.
Ruta de uso
Un caso de uso central del namespace es el despertar autónomo de todo el sistema desde un estado de reposo (Autonomous wake-up from suspend state) SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state». Mientras que una SMControlApplication puede solicitar explícitamente la salida del modo Suspend-to-RAM, State Management es capaz adicionalmente de reaccionar de forma autónoma a señales de despertar.
Si el sistema operativo señaliza un evento de despertar a través de la interfaz apext::sm::WakeUpHandler —siempre que esta esté implementada—, State Management inicia de manera autónoma una secuencia de despertar SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state». En el caso de apext::sm::WakeUpHandler, se trata de un alias de función de tipo std::function<void(void)>[SWS_SM_71004]. Mediante la invocación de este handler, State Management pasa la máquina de estados Controller de su estado de suspensión al estado LeaveSuspend especialmente modelado para ello [SWS_SM_CONSTR_00036]. En este estado, el controlador ejecuta obligatoriamente el elemento de acción LeaveSuspendToRam, con lo cual se reanuda la actividad regular de la plataforma sin intervención previa de una aplicación de control [SWS_SM_CONSTR_00037], SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state».
Al utilizar e integrar apext::sm, deben tenerse en cuenta las condiciones de contorno específicas del sistema y los riesgos de concurrencia:
Falta de seguridad para subprocesos: según la especificación, el tipo de invocación apext::sm::WakeUpHandler no es expresamente seguro para subprocesos (not thread-safe) [SWS_SM_71004]. Si el sistema operativo o un contexto de interrupción disparan señales múltiples o paralelas, el integrador debe procurar mecanismos de sincronización adecuados para evitar condiciones de carrera e inconsistencias en las transiciones de estado en State Management.
Handler no implementado: si el WakeUpHandler no está implementado en el sistema de destino, no puede producirse un despertar autónomo a través del sistema operativo; en este caso, el sistema permanece en estado de reposo hasta que lleguen solicitudes externas (por ejemplo, de UCM a través de RequestUpdateSession) o peticiones explícitas de aplicaciones SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state».
Error de modelado en el manifiesto: si en el manifiesto de despliegue falta el estado LeaveSuspend para el Controller[SWS_SM_CONSTR_00036] o si este no incluye el elemento obligatorio LeaveSuspendToRam[SWS_SM_CONSTR_00037], la transición automatizada falla y la plataforma no puede reanudar el funcionamiento de acuerdo con las especificaciones tras el estado de reposo.
Esta guía se basa en la especificación AUTOSAR Adaptive Platform R25-11. Todos los contenidos han sido validados a partir de las Platform Extension Interfaces normativas para State Management.
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.
gemini-3.8-flash-low· 2026-10-13 · Original en alemán