Обеспечивает близкую к оборудованию координацию состояний питания операционной системы и автономное пробуждение в 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».
Жизненный цикл в рамках 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».
При использовании и интеграции 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.
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 · Немецкий оригинал