DEENESPTFRRUARHIKOZHNL

пространство имён apext::sm

Руководство пользователяСОЗДАНО ИИ

Обеспечивает близкую к оборудованию координацию состояний питания операционной системы и автономное пробуждение в State Management.
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8273631beee4 Происхождение Открытые вопросы (1)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Обеспечивает близкую к оборудованию координацию состояний питания операционной системы и автономное пробуждение в State Management.

Пространство имен apext::sm предоставляет нормативные интерфейсы расширения платформы для согласования состояний питания между AUTOSAR Adaptive State Management и хост-операционной системой SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h». Через перечисление apext::sm::PowerState типизированно отображаются специфичные для Linux режимы энергосбережения [SWS_SM_71002]. Кроме того, обратный вызов apext::sm::WakeUpHandler позволяет операционной системе инициировать автономный выход из состояний покоя в State Management без предварительного участия управляющего приложения [SWS_SM_71004], при этом данный вызов спроектирован как непотокобезопасный.

Контекст

Пространство имен apext::sm предоставляет нормативные интерфейсы расширения платформы (Platform Extension Interfaces) для функционального кластера State Management внутри AUTOSAR Adaptive Platform SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h». В то время как стандартные интерфейсы State Management служат преимущественно для координации состояний приложений, функциональных групп и режимов выполнения поверх границ модели, apext::sm адресован низкоуровневой связи с аппаратным обеспечением. Интерфейсы расширения спроектированы так, чтобы использоваться или предоставляться OEM-производителями или интеграторами для расширения функциональности платформы и реализации скоординированного взаимодействия с базовой операционной системой (OS) SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h».

Центральным компонентом пространства имен является класс PowerStateInterface, служащий для координации состояний питания с операционной системой. Наряду с этим заголовочный файл apext/sm/power_state_interface.h определяет типизированные перечисления и псевдонимы обратных вызовов, которые действуют как связующее звено между драйверами операционной системы, внешними источниками пробуждения и внутренним управлением состояниями. Помимо операционной системы, эти интерфейсы концептуально связаны с Controller из State Management, а также с вышестоящими инстанциями, такими как SMControlApplication или Update and Configuration Management (UCM), которые также могут влиять на переходы состояний 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)

Контекстная диаграмма: взаимодействие операционной системы, интерфейсов apext::sm и State Management. Источники: SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state», SWS StateManagement §C.1 «Header: apext/sm/power_state_interface.h».

Жизненный цикл

Жизненный цикл в рамках apext::sm характеризуется дискретными состояниями питания, смоделированными в перечислении apext::sm::PowerState на основе std::uint32_t [SWS_SM_71002]. Эти состояния выводятся непосредственно с точки зрения ядра операционных систем Linux:

  • kPmSuspendToIdle (= 1): получено из состояния PM_SUSPEND_TO_IDLE [SWS_SM_71002].
  • kPmSuspendToRam (= 2): получено из состояния PM_SUSPEND_TO_RAM [SWS_SM_71002].
  • kPmHibernation (= 3): получено из состояния PM_HIBERNATION (Suspend-to-Disk) [SWS_SM_71002].
  • kPmOff (= 4): получено из состояния PM_OFF (полное отключение) [SWS_SM_71002].

Интерпретация: класс PowerStateInterface, вероятно, служит основной точкой привязки, через которую интегратор запрашивает эти целевые состояния или передает их хост-операционной системе. Вопрос Q-800acae699828764 (открытый) Во время нахождения в состоянии энергосбережения, таком как kPmSuspendToRam, нормальная обработка приостановлена до тех пор, пока событие пробуждения не инициирует обратный переход в активный рабочий режим.

Путь использования

Ключевым вариантом использования пространства имен является автономное пробуждение всей системы из состояния покоя (Autonomous wake-up from suspend state) SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state». В то время как SMControlApplication может явно запросить выход из режима Suspend-to-RAM, State Management дополнительно способно автономно реагировать на сигналы пробуждения.

Если операционная система сигнализирует о событии пробуждения через интерфейс apext::sm::WakeUpHandler — при условии, что он реализован, — State Management самостоятельно инициирует последовательность пробуждения SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state». В случае с apext::sm::WakeUpHandler речь идет о функциональном псевдониме типа std::function<void(void)> [SWS_SM_71004]. Посредством вызова этого обработчика State Management переводит конечный автомат Controller из его состояния Suspend в специально смоделированное для этого состояние LeaveSuspend [SWS_SM_CONSTR_00036]. В этом состоянии контроллер в обязательном порядке выполняет элемент действия LeaveSuspendToRam, благодаря чему возобновляется регулярная активность платформы без предварительного вмешательства управляющего приложения [SWS_SM_CONSTR_00037], SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state».

Автономное пробуждение из Suspend-to-RAMBetriebssystemapext::sm::WakeUpHandlerState Management (Controller)Use Case: Инициирование сигнала пробужденияWake-up signalisierenAufruf operator()Use Case: Автономный переход состоянияСмена состояния на LeaveSuspendВыполнение ActionListItem LeaveSuspendToRamNormalbetrieb aktiv

Диаграмма последовательности: процесс автономного пробуждения через WakeUpHandler. Источники: SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state», [SWS_SM_71004], [SWS_SM_CONSTR_00036], [SWS_SM_CONSTR_00037].

Сценарии ошибок

При использовании и интеграции apext::sm необходимо учитывать системные граничные условия и риски параллелизма:

  • Отсутствие потокобезопасности: тип вызова apext::sm::WakeUpHandler согласно спецификации явно не является потокобезопасным (not thread-safe) [SWS_SM_71004]. Если операционная система или контекст прерывания инициируют многократные или параллельные сигналы, интегратор должен предусмотреть подходящие механизмы синхронизации для предотвращения состояний гонки и несогласованных переходов состояний в State Management.
  • Нереализованный обработчик: если WakeUpHandler не реализован в целевой системе, автономное пробуждение через операционную систему произойти не может; в этом случае система остается в состоянии покоя до тех пор, пока не поступят внешние запросы (например, от UCM через RequestUpdateSession) или явные запросы от приложений SWS StateManagement §7.7.15.1 «Autonomous wake-up from suspend state».
  • Ошибка моделирования в манифесте: если в манифесте развертывания отсутствует состояние LeaveSuspend для Controller [SWS_SM_CONSTR_00036] или оно не содержит обязательный элемент LeaveSuspendToRam [SWS_SM_CONSTR_00037], автоматический переход завершается неудачно, и платформа не может должным образом возобновить работу после состояния покоя.

Настоящее руководство основано на спецификации AUTOSAR Adaptive Platform R25-11. Все материалы были верифицированы по нормативным Platform Extension Interfaces для State Management.

Карта тем

Классы

1

Типы и константы

2

Диаграмма классов

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

Подробный вид

Выберите элемент в оглавлении.

Классы

class for power state coordination with OS

Типы и константы

PowerState перечисление

Power State Enumeration.

enum class PowerState : std::uint32_t {...};
WakeUpHandler псевдоним типа

WakeUpHandler function.

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

Перечисления

перечисление 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#036056a6
Content hash
036056a6
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

Псевдонимы типов

псевдоним типа 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#1a2d4434
Content hash
1a2d4434
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