DEENESPTFRRUARHIKOZHNL

AUTOSAR OS

ModulOs (AUTOSAR OS)
BSW-Modul-ID1
Standard-Header#include "Os.h"
SWS-SpezifikationAUTOSAR_SWS_OS.pdf
ClusterOperating System

Руководство по модулюСОЗДАНО ИИ

Управляет процессами по расписанию, защищает OS-Applications друг от друга и координирует ядра блока управления (ECU).
СОЗДАНО ИИ не проверено Модель: claude-opus-5-5 · Усилие: high · Температура: не регулируется · Промпт: 5b459e21507a Происхождение
Причинный якорь: R20-11 Действует с R20-11 Заново синтезировано для этой версии спецификации.
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Управляет процессами по расписанию, защищает OS-Applications друг от друга и координирует ядра блока управления (ECU).

Операционная система выполняет задачи и ISR, продвигает счетчики (Counter) и таблицы расписания (ScheduleTable), а также разделяет программное обеспечение на защищенные OS-Applications. EcuM запускает ядра с помощью StartCore; затем на каждом ядре вызывается StartOS [SWS_Os_00676]. Таблицы расписания можно явно синхронизировать с глобальным временем через StbM. Доступ к чужим объектам возможен только при наличии сконфигурированных прав SWS OS с. 62. При нарушениях защиты ProtectionHook определяет, следует ли завершить задачу, OS-Application или всю систему.

Операционная система является ядром выполнения стека Classic Platform. Она управляет задачами, ISR, будильниками (Alarm), счетчиками и таблицами расписания, объединяя их в доверенные (trusted) или недоверенные (non-trusted) OS-Applications SWS OS с. 61. EcuM запускает ядра с помощью StartCore, а затем операционную систему с помощью StartOS; каждое запущенное ядро вызывает StartOS самостоятельно SWS EcuM с. 82, [SWS_Os_00676]. ShutdownAllCores завершает работу OS на всех ядрах без возврата управления [SWS_Os_00713]. Программные компоненты используют сервисы OS через RTE, а для модулей BSW круг разрешенных к использованию сервисов ограничен SWS BSWGeneral с. 48.

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (часть Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os только допустимые службы согласно SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc содержит hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os Исключение при нарушении защиты

Контекстная диаграмма: EcuM, StbM, RTE и модули BSW обращаются к Os через раздельные группы сервисов; IOC является частью Os. Источники: SWS EcuM с. 34, SWS OS с. 119

Счетчики служат временной базой; аппаратные значения корректируются таким образом, чтобы они начинались с нуля и монотонно возрастали SWS OS с. 39. Приложение запускает таблицы расписания абсолютно или относительно счетчика, а остановка действует немедленно SWS OS с. 46. При явной синхронизации StbM возвращает значение глобального времени с помощью SyncScheduleTable. После этого OS корректирует Expiry Points до тех пор, пока отклонение не окажется в пределах заданной точности [SWS_Os_00199], SWS OS с. 57.

ScheduleTable start Start STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() или таблица завершается RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() или |отклонение| > Precision

Диаграмма состояний: жизненный цикл ScheduleTable от запуска через синхронизацию до остановки. Источники: [SWS_Os_00784], SWS OS с. 49

Концепция защиты запрещает доступ к объектам других OS-Applications, если конфигурация не разрешает его явно SWS OS с. 62. Контролируемые переходы между OS-Applications обеспечивает CallTrustedFunction [SWS_Os_00097]. Несколько ядер координируют свою работу через спин-блокировки (Spinlock) с обнаружением взаимных блокировок (Deadlock) и через IOC [SWS_Os_00686], [SWS_Os_00718].

При возникновении серьезных ошибок возвращаемое значение ProtectionHook определяет дальнейшие действия [SWS_Os_00538]:

  • игнорировать ошибку,
  • завершить задачу или ISR,
  • завершить OS-Application, с перезапуском или без,
  • завершить работу системы (Shutdown).

Перезапущенное OS-Application повторно разблокирует себя самостоятельно с помощью AllowAccess [SWS_Os_00501].

Роль операционной системы и соседние с ней компоненты в блоке управления (ECU)

Операционная система является ядром выполнения стека Classic Platform. Она управляет задачами, ISR, будильниками, счетчиками и таблицами расписания. Эти объекты вместе с хуками (Hook) и доверенными функциями (Trusted Function) она объединяет в конфигурируемые OS-Applications, которые являются либо доверенными (trusted), либо недоверенными (non-trusted) SWS OS с. 61. Дополнительно она инициализирует и конфигурирует все таймеры, которые использует сама и которыми не управляет драйвер GPT SWS OS с. 39.

Соседние модули обращаются через разграниченные интерфейсы:

  • EcuM управляет запуском и завершением работы через StartOS, StartCore, GetCoreID и ShutdownAllCores SWS EcuM с. 34.
  • StbM использует GetCounterValue, GetElapsedValue, GetScheduleTableStatus и SyncScheduleTable SWS StbM с. 152.
  • Программные компоненты получают доступ к сервисам OS через порт RTE с сервисным интерфейсом OsService TR VFB с. 89. Для счетчиков со сконфигурированным OsSecondsPerTick этот интерфейс предлагает, среди прочего, GetCounterValue и GetElapsedValue [SWS_Os_00560].

Для модулей BSW таблица определяет, какие сервисы OS им разрешено использовать SWS BSWGeneral с. 48. Взаимодействие между OS-Applications берет на себя IOC. Он является частью операционной системы и вызывается из RTE SWS OS с. 119, [SWS_Os_00718].

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (часть Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os только допустимые службы согласно SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc содержит hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os Исключение при нарушении защиты

Контекстная диаграмма: Os используется модулями EcuM, StbM, RTE и BSW через соответствующие отдельные группы сервисов и инкапсулирует IOC, а также аппаратный доступ. Источники: SWS EcuM с. 34, SWS StbM с. 152, TR VFB с. 89, SWS OS с. 119

Запуск, управление ядрами и завершение работы

В многоядерном режиме EcuM в цикле запускает на мастер-ядре все сконфигурированные ядра с помощью StartCore. Затем он вызывает StartOS(ECUM_DEFAULT_APP_MODE) SWS EcuM с. 82. На каждом запущенном ядре также должен быть вызван StartOS [SWS_Os_00676]. Эту задачу берет на себя EcuM соответствующего подчиненного ядра (Slave) после GetCoreID SWS EcuM с. 83.

Для StartCore действуют следующие правила SWS OS с. 166:

  • сервис не является реентерабельным;
  • вызов после StartOS возвращает E_OS_ACCESS, и ядро не запускается;
  • для уже запущенного ядра возвращается E_OS_STATE.

Для ядер вне зоны управления AUTOSAR OS предусмотрен StartNonAutosarCore [SWS_Os_00682].

Ядра идентифицируются через CoreIdType. Логические ID отсчитываются от нуля и идут без пропусков, причем OS_CORE_ID_MASTER обозначает мастер-ядро [SWS_Os_00790], [SWS_Os_00825]. GetCoreID возвращает логический ID вызывающего ядра [SWS_Os_00674]. Данный сервис доступен для вызова еще до StartOS SWS OS с. 111.

После StartOS и перед первым StartupHook операционная система переводит все OS-Applications в APPLICATION_ACCESSIBLE SWS OS с. 62. Затем следует общесистемный StartupHook. Только после этого выполняются специфичные для приложений StartupHook_<App>, каждый с правами своего OS-Application SWS OS с. 134, [SWS_Os_00539].

Многоядерный запуск OsEcuM (Master-Kern)Os (Master-Kern)Os (Slave-Kern)EcuM (Slave-Kern)GetCoreID()CoreIdTypeloopдля всех сконфигурированных ядерStartCore(CoreID, &Status)Запустить ядро под управлениемAUTOSAR OSStatus = E_OKStartOS(ECUM_DEFAULT_APP_MODE)GetCoreID()StartOS(ECUM_DEFAULT_APP_MODE)После StartOS: OS-Applications переходят в APPLICATION_ACCESSIBLE,затем StartupHook, после этого StartupHook_<App>optStartCore после StartOSStartCore(CoreID, &Status)Status = E_OS_ACCESS,Ядро не запускается

Диаграмма последовательности: мастер-ядро запускает остальные ядра перед собственным вызовом StartOS; каждое ядро вызывает StartOS самостоятельно, последующий вызов StartCore отклоняется. Источники: SWS EcuM с. 82, SWS EcuM с. 83, SWS OS с. 166, SWS OS с. 188

В R20-11 GetNumberOfActivatedCores возвращает количество ядер, активированных с помощью StartCore [SWS_Os_00672]. В более поздних редакциях вместо этого говорится о «ядрах, на которых выполняется AUTOSAR OS» SWS OS с. 196.

С помощью ControlIdle для каждого ядра выбирается действие на время простоя, например для энергосбережения. По умолчанию используется IDLE_NO_HALT. Неизвестное ядро или недопустимый режим приводят к E_OS_ID [SWS_Os_00769], [SWS_Os_00771], [SWS_Os_00793].

ShutdownAllCores завершает работу OS на всех ядрах AUTOSAR, принудительно переводит остальные ядра в режим Shutdown и никогда не возвращает управление [SWS_Os_00713]. При этом сначала выполняются ShutdownHook_<App>. Затем ядра синхронизируются, и только после этого следует глобальный ShutdownHook SWS OS с. 98, [SWS_Os_00541].

Счетчики и таблицы расписания в качестве временной базы

GetCounterValue возвращает значение таймера для аппаратных счетчиков и программные тики для программных счетчиков. Аппаратные значения OS корректирует таким образом, чтобы они начинались с нуля и возрастали до значения модуля SWS OS с. 39, [SWS_Os_00383].

GetElapsedValue возвращает количество тиков с момента ранее считанного значения. Если Value больше максимально допустимого значения счетчика, возвращается E_OS_VALUE SWS OS с. 192, [SWS_Os_00392].

IncrementCounter инкрементирует только программные счетчики; для аппаратных счетчиков он возвращает E_OS_ID. Если при этом действие по будильнику завершается сбоем, OS вызывает хуки ошибок (Error-Hooks), но сам сервис возвращает E_OK SWS OS с. 190, [SWS_Os_00399].

Запуск и остановка таблицы расписания (ScheduleTable) являются задачей приложения SWS OS с. 46. Initial Expiry Point обрабатывается при следующем значении счетчика:

  • StartScheduleTableAbs: при Start + InitialOffset [SWS_Os_00358];
  • StartScheduleTableRel: при Now + Offset + InitialOffset [SWS_Os_00347].

При относительном запуске смещение (Offset), равное 0 или превышающее OsCounterMaxAllowedValue − InitialOffset, вызывает ошибку E_OS_VALUE. Для уже запущенной таблицы возвращается E_OS_STATE SWS OS с. 179.

StopScheduleTable немедленно прерывает выполнение; для уже остановленной таблицы возвращается E_OS_NOFUNC [SWS_Os_00006]. Последующий перезапуск начинается с начала таблицы SWS OS с. 46.

NextScheduleTable присоединяет последующую таблицу цепочкой. Обе таблицы должны управляться одним и тем же счетчиком, иначе следует E_OS_ID [SWS_Os_00191], SWS OS с. 184.

GetScheduleTableStatus для незапущенной таблицы сообщает SCHEDULETABLE_STOPPED вместе с E_OK SWS OS с. 189, [SWS_Os_00784].

ScheduleTable start Start STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() или таблица завершается RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() или |отклонение| > Precision

Диаграмма состояний: жизненный цикл ScheduleTable со всеми состояниями ScheduleTableStatusType; WAITING и RUNNING возникают только при явной синхронизации, неявно синхронизированные таблицы знают только STOPPED, NEXT и RUNNING_AND_SYNCHRONOUS. Источники: [SWS_Os_00784], SWS OS с. 43, SWS OS с. 49, SWS OS с. 48

Синхронизация ScheduleTables с глобальным временем

При неявной синхронизации задающий счетчик сам является счетчиком синхронизации. В этом случае таблица имеет только три состояния SWS OS с. 48. StartScheduleTableRel возвращает для OsScheduleTblSyncStrategy = IMPLICIT ошибку E_OS_ID SWS OS с. 179. Явная синхронизация, напротив, подстраивает локально управляемую таблицу под внешний счетчик синхронизации. Она указана как мера безопасности для привязки к временной базе StbM Safety Measures с. 66.

Для запуска существуют два способа SWS OS с. 49, [SWS_Os_00201]:

  • Асинхронно через StartScheduleTableAbs или StartScheduleTableRel относительно задающего счетчика.
  • Синхронно через StartScheduleTableSynchron. Здесь Initial Expiry Point обрабатывается через (Duration − Value) + InitialOffset тиков после предоставления значения синхронизации.

SyncScheduleTable передает текущее значение счетчика синхронизации. Его модуль соответствует длительности таблицы SWS OS с. 52, [SWS_Os_00199].

OS вычисляет на этой основе отклонение и корректирует задержку в каждой Expiry Point. Если отклонение находится в пределах OsScheduleTblExplicitPrecision, таблица считается «running and synchronous» SWS OS с. 57. SetScheduleTableAsync останавливает подстройку до следующего SyncScheduleTable; при этом Expiry Points продолжают выполняться SWS OS с. 188, [SWS_Os_00422].

Явная синхронизация ScheduleTable через StbMЗадача BSW (задача OS или циклический вызов)StbMOsStbM_MainFunction()GetScheduleTableStatus(ScheduleTableID, &ScheduleStatus)E_OK, ScheduleStatusaltScheduleStatus == WAITING, RUNNING или RUNNING_AND_SYNCHRONOUSSyncScheduleTable(ScheduleTableID, GlobalTimeTick)Abweichung berechnen,Скорректировать задержку до следующей Expiry Pointиначеkein SyncScheduleTableПроцесс повторяется при каждом вызове StbM_MainFunction()

Диаграмма последовательности: StbM циклически запрашивает состояние таблицы и возвращает значение синхронизации только при запущенной таблице. Источники: SWS StbM с. 220, SWS StbM с. 117, [SWS_Os_00227], [SWS_Os_00199]

Концепция защиты: OS-Applications, права доступа и Trusted Functions

OS предотвращает доступ OS-Application к чужим объектам, если конфигурация явно не разрешает его SWS OS с. 62. При отсутствии прав служба возвращает E_OS_ACCESS. Исключением являются службы проверки доступа к памяти и объектам, которые разрешены всегда SWS OS с. 73.

Во время выполнения доступны следующие запросы:

  • GetApplicationID сообщает OS-Application, для которой сконфигурирован вызывающий объект [SWS_Os_00016].
  • GetCurrentApplicationID сообщает OS-Application, в которой в данный момент выполняется вызывающий объект. Оба значения различаются только внутри CallTrustedFunction [SWS_Os_00797], [SWS_Os_00798].
  • CheckObjectOwnership возвращает владельца объекта или INVALID_OSAPPLICATION SWS OS с. 178.
  • CheckObjectAccess возвращает ACCESS или NO_ACCESS; при недопустимых аргументах — всегда NO_ACCESS SWS OS с. 177.

CheckTaskMemoryAccess и CheckISRMemoryAccess возвращают в виде AccessType права на область памяти и информацию о том, принадлежит ли она к стеку. Право, которое не действует для всей области, отклоняется. Недопустимый ID не дает никаких прав SWS OS с. 175, SWS OS с. 174. Результат оценивается с помощью макросов, таких как OSMEMORY_IS_WRITEABLE SWS OS с. 160.

CallTrustedFunction выполняет функцию с настройками защиты предоставляющей OS-Application. Если индекс не сконфигурирован, следуют E_OS_SERVICEID и вызов ErrorHook SWS OS с. 85, SWS OS с. 172. В R20-11 синхронное поведение определяется вызванной функцией, и вызов может инициировать репланирование [SWS_Os_00097]. Возможность ограничения доступа по записи должна обеспечиваться также и для trusted OS-Applications [SWS_Os_00795].

Вызов Trusted Functionaufrufende OS-ApplicationTrusted-Function-StubBetriebssystem (System-Call-Dispatcher)bereitstellende OS-ApplicationDienstaufrufArgumente in Parameterstruktur packenCallTrustedFunction(FunID, FunParPtr)Проверить полномочияaltverweigertE_OS_SERVICEIDakzeptiert<trusted function>с настройками защиты предоставляющей OS-ApplicationCheckTaskMemoryAccess(...)AccessTypeВозвратE_OKВозвращаемое значение

Диаграмма последовательности: заглушка упаковывает аргументы; OS проверяет полномочия и лишь затем переключается в предоставляющую OS-Application, функция которой, в свою очередь, проверяет права на память. Источники: SWS OS с. 185, SWS OS с. 396, [SWS_Os_00097]

Для защищенного доступа к аппаратному обеспечению существуют ReadPeripheral, WritePeripheral и ModifyPeripheral разрядностью 8, 16 и 32 бита. Они работают с областями периферии типа AreaIdType [SWS_Os_91000]. Вариант Modify вычисляет *Address = (*Address & Clearmask) | Setmask SWS OS с. 209.

Для каждого ISR категории 2 существуют DisableInterruptSource, EnableInterruptSource и ClearPendingInterrupt [SWS_Os_00808]. ClearPendingInterrupt сбрасывает только флаг ожидания (pending) в контроллере прерываний [SWS_Os_00814].

Различие между версиями: в R20-11 EnableInterruptSource всегда сбрасывает флаг ожидания [SWS_Os_00811], хотя сигнатура содержит параметр ClearPending. Более поздние версии описывают сброс как опциональный SWS OS с. 177.

Межъядерная и межсекционная координация

Спинлоки действуют через границы ядер. GetSpinlock ожидает активно, не снимая вызывающий объект с выполнения, и может вызываться на уровне задач и ISR категории 2 SWS OS с. 115. В Extended Status он распознает две ситуации взаимной блокировки (deadlock) [SWS_Os_00686]:

  • E_OS_INTERFERENCE_DEADLOCK: задача на том же ядре уже удерживает блокировку.
  • E_OS_NESTING_DEADLOCK: вложенность с другим удерживаемым спинлоком недопустима.

TryToGetSpinlock возвращает управление, если задача на другом ядре занимает блокировку. В этом случае он возвращает E_OK с TRYTOGETSPINLOCK_NOSUCCESS [SWS_Os_00703], [SWS_Os_00792]. Перед завершением задачи и перед WaitEvent необходимо освободить все спинлоки в правильном порядке [SWS_Os_00695]. Для защиты от интерференции помогает обрамление с SuspendAllInterrupts или настройка OsSpinlockLockMethod SWS OS с. 101.

ActivateTask через границы ядер работает синхронно. Обработчик ошибок выполняется на вызывающем ядре SWS OS с. 103. Напротив, ActivateTaskAsyn и SetEventAsyn не возвращают ошибки вызывающему объекту, а лишь сообщают о них в глобальный Error-Hook [SWS_Os_00816], [SWS_Os_00817]. Обе функции существуют только в системах с OS-Applications [SWS_Os_00818], [SWS_Os_00819]. Если вызывающий объект больше не существует, оповещение опускается SWS OS с. 179.

IOC генерирует свои функции для каждого отправителя и получателя:

Если буфер полон, отправитель сообщает IOC_E_LIMIT, а получатель при следующем чтении получает IOC_E_LOST_DATA SWS OS с. 219. IocInit и раздельная генерация кода OS и IOC в R20-11 все еще имеют статус DRAFT [SWS_Os_00835], [SWS_Os_00831], [SWS_Os_00834].

Поведение при ошибке

Многие проверки, например на E_OS_ID, выполняются только в Extended Status. Аргументы-указатели проверяются там на NULL_PTR и отклоняются с E_OS_ILLEGAL_ADDRESS SWS OS с. 38. Другие коды ошибок, такие как E_OS_PROTECTION_MEMORY и E_OS_STACKFAULT, определены централизованно [SWS_Os_91025]. Если служба не возвращает E_OK, OS вызывает ErrorHook и ErrorHook_<App> SWS OS с. 186, [SWS_Os_00540].

При тяжелых ошибках OS вызывает ProtectionHook. Его ProtectionReturnType определяет дальнейшую реакцию [SWS_Os_00538], [SWS_Os_00787]. Если ProtectionHook не сконфигурирован, OS вызывает ShutdownOS EXP ALEH с. 60. При завершении работы OS-Application система OS останавливает все относящиеся к ней объекты SWS OS с. 62:

  • все задачи и ISR,
  • их прерывания,
  • их алармы,
  • их ScheduleTables.
Реакция на нарушение защиты через ProtectionHookЗадача / ISR категории 2 приложения OS-Application <App>ProzessorBetriebssystemUse Case: SchutzverletzungВыполнение с нарушением защиты«Exception»ProtectionHook(Fatalerror)altPRO_TERMINATETASKISRпринудительное завершение задачи / ISRPRO_TERMINATEAPPLпринудительное завершение OS-ApplicationPRO_TERMINATEAPPL_RESTARTпринудительное завершение OS-Application,Restart-Task startenPRO_IGNOREникаких дальнейших действийPRO_SHUTDOWNShutdownOS()

Диаграмма последовательности: возвращаемое значение ProtectionHook выбирает между игнорированием, завершением задачи/ISR, завершением OS-Application (с перезапуском или без него) и завершением работы системы. Источники: SWS OS с. 187, [SWS_Os_00538], [SWS_Os_00787]

OS-Application находится в состоянии APPLICATION_ACCESSIBLE, APPLICATION_RESTARTING или APPLICATION_TERMINATED. Состояние возвращает GetApplicationState [SWS_Os_00773], [SWS_Os_00499]. TerminateApplication в R20-11 принимает RESTART или NO_RESTART [SWS_Os_00258], [SWS_Os_00788]. Более поздние версии игнорируют этот параметр SWS OS с. 194.

В состоянии RESTARTING выполняется только OSRestartTask; другие OS-Applications не имеют доступа. Состояние APPLICATION_TERMINATED OS-Application покидает только при перезапуске ECU EXP ALEH с. 53. OSRestartTask при необходимости выполняет очистку через CallTrustedFunction, а затем снова освобождает OS-Application с помощью AllowAccess EXP ALEH с. 76, [SWS_Os_00501]. Код для действующего на уровне ECU ProtectionHook и задачи перезапуска предоставляет интегратор EXP ALEH с. 79.

OsApplication start Start ACC APPLICATION_ACCESSIBLE start->ACC StartOS (до первого StartupHook) RES APPLICATION_RESTARTING ACC->RES PRO_TERMINATEAPPL_RESTART или TerminateApplication(AppID, RESTART) TER APPLICATION_TERMINATED ACC->TER PRO_TERMINATEAPPL или TerminateApplication(AppID, NO_RESTART) RES->ACC AllowAccess() (из задачи перезапуска) RES->TER TerminateApplication(self, NO_RESTART)

Диаграмма состояний: StartOS делает каждую OS-Application доступной; защитные реакции или TerminateApplication переводят в RESTARTING или TERMINATED, только AllowAccess возвращает обратно. Источники: EXP ALEH с. 61, [SWS_Os_00773], [SWS_Os_00501]

Дальнейшие подробные доказательства

Сформированное ИИ руководство на основе требований и разделов документов, содержащихся в полезной нагрузке; нормативными являются требования релиза R20-11, отклонения более поздних версий указаны отдельно.

AUTOSAR OS

Real-time operating system managing priority-based preemptive task scheduling, events, alarms, and schedule tables (OSEK/VDX derivative).

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

функция GetApplication [SWS_Os_00016] 📄 PDF

ApplicationType GetApplicationID (void);

This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller originally belongs to (was configured t o).

функция GetCurrentApplication [SWS_Os_00797] 📄 PDF

ApplicationType GetCurrentApplicationID (void);

This service determines the OS - Application where the caller of the service is currently executing. Note that if the caller is not within a Call Trusted Function() call the value is eq ual to the result of Get Application ID().

функция CallTrustedFunction [SWS_Os_00097] 📄 PDF

StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);

A (trusted or non - trusted) OS - Application uses this service to call a trusted function

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f4173cc0ef4f Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

С помощью системного сервиса CallTrustedFunction (Service ID 0x02) доверенное или недоверенное OS-Application может вызывать на выполнение определённую функцию Trusted Function [SWS_Os_00097]. Интерфейс предоставляется через заголовочный файл Os.h [SWS_Os_00097].

Вызов требует передачи двух входных параметров [SWS_Os_00097]:

  • FunctionIndex (тип TrustedFunctionIndexType): обозначает индекс вызываемой функции [SWS_Os_00097].
  • FunctionParams (тип TrustedFunctionParameterRefType): передаёт указатель на параметры целевой функции; если аргументы не требуются, в обязательном порядке должен передаваться указатель NULL [SWS_Os_00097].

Что касается временных характеристик, выполнение зависит от целевой подпрограммы: если вызываемая функция синхронна, сервис также ведёт себя синхронно [SWS_Os_00097]. Функция реализована как реентерабельная, однако во время выполнения может вызывать перепланирование (Rescheduling) операционной системы [SWS_Os_00097].

В качестве возвращаемого значения сервис возвращает значение состояния типа StatusType [SWS_Os_00097]:

  • E_OK: выполнение прошло успешно и без ошибок [SWS_Os_00097].
  • E_OS_SERVICEID: переданному индексу не сопоставлена действительная функция [SWS_Os_00097].

Это указание по использованию было автоматически сгенерировано на основе AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция CheckISRMemoryAccess [SWS_Os_00512] 📄 PDF

AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);

This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is part of the stack space.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9eaf26d27eff Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция CheckISRMemoryAccess является синхронным и реентерабельным системным сервисом модуля OS ([SWS_Os_00512]). Она служит для проверки прав доступа к памяти указанной ISR для определённой области памяти во время выполнения.

Использование и параметры

Вызов CheckISRMemoryAccess ожидает три входных параметра ([SWS_Os_00512]):

  • ISRID: ссылка на проверяемую ISR (ISRType).
  • Address: начальный адрес исследуемой области памяти (MemoryStartAddressType).
  • Size: размер области памяти (MemorySizeType).

В качестве возвращаемого значения сервис возвращает тип AccessType. Это возвращаемое значение содержит права доступа (чтение, запись, выполнение) к указанной области и дополнительно сообщает, является ли область памяти частью области стека ([SWS_Os_00512]).

Параллелизм и интеграция

Согласно спецификации, функция имеет Service-ID 0x03 и объявлена как реентерабельная ([SWS_Os_00512]). Она доступна через заголовочный файл Os.h ([SWS_Os_00512]). Конкретные коды ошибок или явные уведомления в DET/DEM в данной выдержке из спецификации не приводятся.

Это указание по использованию было сгенерировано автоматически на основе данных спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция CheckTaskMemoryAccess [SWS_Os_00513] 📄 PDF

AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);

This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region is part of the stack space.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 91d38acf9e0a Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция CheckTaskMemoryAccess представляет собой синхронную службу операционной системы, которая предоставляется через заголовок Os.h и имеет ID службы 0x04 [SWS_Os_00513]. Она служит для запроса прав доступа к памяти конкретной задачи для определенного сегмента памяти [SWS_Os_00513].

Параметры и возвращаемые значения

При вызове служба принимает три входных параметра [SWS_Os_00513]:

  • Task ID (типа TaskType): ссылка на задачу, права доступа которой должны быть проверены.
  • Address (типа MemoryStartAddressType): начальный адрес проверяемой области памяти.
  • Size (типа MemorySizeType): размер проверяемой области памяти.

В качестве возвращаемого значения служба выдает переменную типа AccessType [SWS_Os_00513]. Это возвращаемое значение содержит информацию о том, доступна ли указанная область памяти для задачи с правами записи, чтения или выполнения, и дополнительно указывает, является ли область частью стека [SWS_Os_00513]. Дополнительные коды ошибок или сообщения DET для этой службы не специфицированы.

Параллелизм и взаимодействие

Служба специфицирована как реентерабельная и поэтому может безопасно использоваться в параллельных контекстах выполнения [SWS_Os_00513]. В то время как CheckTaskMemoryAccess запрашивает полномочия для областей памяти во время выполнения, стандарт AUTOSAR в описаниях модулей ARTI определяет интерфейсы и структуры данных, через которые инструменты отладки могут регистрировать и анализировать состояния и атрибуты объектов операционной системы [SWS_Os_00829].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция CheckObjectAccess [SWS_Os_00256] 📄 PDF

ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);

This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter, Alarm or Schedule Table in API calls.

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

Использование и семантика

Функция CheckObjectAccess ([SWS_Os_00256]) синхронно определяет, имеет ли определенное OS-Application право использовать ID объекта операционной системы в вызовах API. Для идентификации приложения служит входной параметр ApplID типа ApplicationType ([SWS_Os_00256]). Через ObjectType (тип ObjectTypeType) определяется, какой тип объекта должен проверяться; поддерживаются Task, Resource, Counter, Alarm и Schedule Table ([SWS_Os_00256]). Третьим параметром следует сам исследуемый объект через переменный список параметров ... ([SWS_Os_00256]).

В качестве возвращаемого значения функция выдает тип ObjectAccessType: если доступ приложения к объекту разрешен, возвращается ACCESS, в противном случае — NO_ACCESS ([SWS_Os_00256]). Служба объявлена через заголовок Os.h и имеет ID службы 0x05 ([SWS_Os_00256]).

Параллелизм, обработка ошибок и взаимодействие

Служба специфицирована как реентерабельная и поэтому может вызываться в параллельных контекстах выполнения ([SWS_Os_00256]). Специфические коды ошибок, возвращаемые значения для состояний ошибок или сообщения в DET или DEM для этой функции в спецификации не предусмотрены ([SWS_Os_00256]).

Интерпретация: переменный аргумент ... в реализации, вероятно, передает конкретный идентификатор объекта, соответствующий ObjectType. Вопрос Q-5cb52ff94bb07826 (открытый) Проверенные объекты операционной системы также отражаются в отладочной информации ARTI, которая регистрирует и оценивает атрибуты и состояния объектов операционной системы ([SWS_Os_00829]).

Это указание по использованию было сгенерировано автоматически на основе спецификации R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция CheckObjectOwnership [SWS_Os_00017] 📄 PDF

ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);

This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 20318a993e09 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная системная функция CheckObjectOwnership служит для определения того, к какому OS-Application принадлежит определенный объект операционной системы [SWS_Os_00017]. К объектам, опрашиваемым через эту службу, относятся задачи (Tasks), процедуры обслуживания прерываний (ISR), счетчики, сигналы тревоги (Alarms), а также таблицы расписания (Schedule Tables) [SWS_Os_00017].

Функция доступна через заголовочный файл Os.h и имеет ID службы 0x06 [SWS_Os_00017]. При использовании функция принимает два входных параметра:

  • ObjectType: обозначает в качестве входного параметра типа ObjectTypeType тип передаваемого далее объекта операционной системы [SWS_Os_00017].
  • ...: передает службе конкретный исследуемый объект [SWS_Os_00017].

В качестве возвращаемого значения функция предоставляет тип данных ApplicationType [SWS_Os_00017]. Он содержит идентификатор того OS-Application, которому назначен проверенный объект [SWS_Os_00017].

Обработка ошибок и характеристики выполнения

Если опрашиваемый объект не существует в системе, служба возвращает значение INVALID_OSAPPLICATION [SWS_Os_00017].

В отношении параллелизма CheckObjectOwnership специфицирована как реентерабельная и работает полностью синхронно [SWS_Os_00017]. Входные и выходные параметры (inout или out), помимо возвращаемого значения, отсутствуют [SWS_Os_00017].

Это указание по использованию основано на спецификации SWS_Os_00017 из AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция StartScheduleTableRel [SWS_Os_00347] 📄 PDF

StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);

This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9cbbffcaa010 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и параметры

Системный сервис StartScheduleTableRel запускает обработку таблицы расписания относительно текущего значения («Now») базового счётчика [SWS_Os_00347]. Вызов выполняется синхронно и доступен через интерфейс Os.h с идентификатором сервиса 0x07 [SWS_Os_00347].

  • ScheduleTableID (вход, ScheduleTableType): идентификатор запускаемой таблицы расписания [SWS_Os_00347].
  • Offset (входной, TickType): относительное количество тиков счётчика до начала обработки таблицы [SWS_Os_00347].

Возвращаемые значения и обработка ошибок

Функция возвращает код состояния типа StatusType [SWS_Os_00347]:

  • E_OK: таблица расписания успешно запущена [SWS_Os_00347].
  • E_OS_STATE: указанная таблица расписания уже запущена [SWS_Os_00347].
  • E_OS_ID (только при статусе EXTENDED): указанный ScheduleTableID недействителен [SWS_Os_00347].
  • E_OS_VALUE (только при статусе EXTENDED): параметр Offset равен 0 или превышает значение (OsCounterMaxAllowedValue - InitialOffset) [SWS_Os_00347].

Параллелизм и ограничения

Функция специфицирована как реентерабельная [SWS_Os_00347]. Выходные или входные/выходные параметры отсутствуют [SWS_Os_00347].

Это указание по использованию основано на спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция StartScheduleTableAbs [SWS_Os_00358] 📄 PDF

StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);

This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.

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

Синхронная и реентерабельная функция StartScheduleTableAbs служит для запуска таблицы расписания (Schedule Table) при заданном абсолютном значении базового счётчика ([SWS_Os_00358]). Сервис доступен через заголовочный файл Os.h и идентифицируется через Service-ID 0x08 ([SWS_Os_00358]).

При вызове передаются два входных параметра ([SWS_Os_00358]):

  • ScheduleTableID: идентификатор запускаемой Schedule Table.
  • Start: абсолютное значение тика счётчика, при котором запускается Schedule Table.

В качестве возвращаемого значения функция возвращает статус типа StatusType ([SWS_Os_00358]):

  • E_OK: операция запуска прошла успешно.
  • E_OS_STATE: указанная Schedule Table уже была запущена ранее.
  • E_OS_ID: переданный ScheduleTableID недействителен (возвращается только в статусе EXTENDED).
  • E_OS_VALUE: значение Start превышает максимально допустимое значение счётчика OsCounterMaxAllowedValue (возвращается только в статусе EXTENDED).

Что касается взаимодействия, состояние и динамические атрибуты объектов операционной системы, таких как Schedule Tables, могут считываться и отображаться подключёнными инструментами отладки с помощью описаний модулей ARTI ([SWS_Os_00829]). Интерпретация: контекст вызова, вероятно, охватывает прежде всего уровни задач (Task), поскольку явных ограничений в выдержке из спецификации не указано. Вопрос Q-213de28d0345ccb1 (открытый)

Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция StopScheduleTable [SWS_Os_00006] 📄 PDF

StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);

This service cancels the processing of a schedule table immediately at any point while the schedule table is running.

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

Синхронная системная функция StopScheduleTable ([SWS_Os_00006]) непосредственно прерывает обработку выполняющейся таблицы расписания в любой произвольный момент обработки. Сервис объявлен в заголовочном файле Os.h и имеет идентификатор сервиса 0x09 ([SWS_Os_00006]). Единственным входным параметром служит ScheduleTableID типа ScheduleTableType, который задаёт останавливаемую таблицу расписания; входные/выходные или чисто выходные параметры отсутствуют ([SWS_Os_00006]).

Синхронный вызов возвращает код состояния типа StatusType ([SWS_Os_00006]):

  • E_OK: обработка таблицы расписания была остановлена безошибочно ([SWS_Os_00006]).
  • E_OS_NOFUNC: указанная таблица расписания уже находилась в остановленном состоянии ([SWS_Os_00006]).
  • E_OS_ID: переданный идентификатор ScheduleTableID недействителен. Согласно спецификации это возвращаемое значение формируется только в статусе EXTENDED ([SWS_Os_00006]).

Функция определена как реентерабельная ([SWS_Os_00006]). Интерпретация: с учётом декларированной реентерабельности синхронный вызов, вероятно, допустим из нескольких контекстов OS, хотя конкретные ограничения по контекстам в данном фрагменте спецификации отсутствуют. Вопрос Q-9cb147c4bc7dba7e (открытый) Для мониторинга во время выполнения состояние и динамические атрибуты объектов OS, таких как таблицы расписания, могут передаваться подключённым инструментам отладки и анализа через файлы описания ARTI ([SWS_Os_00829]).

Примечание: данное пояснение сгенерировано автоматически на основе спецификации AUTOSAR Classic релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция NextScheduleTable [SWS_Os_00191] 📄 PDF

StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);

This service switches the processing from one schedule table to another schedule table.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: dfc067e72659 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция NextScheduleTable служит для синхронного переключения обработки с выполняющейся таблицы расписания на последующую таблицу [SWS_Os_00191]. Сервис спроектирован как реентерабельный и объявлен через заголовочный файл Os.h [SWS_Os_00191].

Параметры и вызов

В вызов передаются два входных параметра типа ScheduleTableType [SWS_Os_00191]:

  • ScheduleTableID_From: идентификатор обрабатываемой в данный момент таблицы расписания [SWS_Os_00191].
  • ScheduleTableID_To: идентификатор таблицы расписания, которая предоставляет последующую последовательность точек истечения времени (Expiry Points) [SWS_Os_00191].

Возвращаемые значения и обработка ошибок

Функция возвращает значение состояния типа StatusType [SWS_Os_00191]:

  • E_OK: запрос на переключение был успешно отправлен [SWS_Os_00191].
  • E_OS_ID: возвращается исключительно при сконфигурированном статусе EXTENDED, если хотя бы один из переданных идентификаторов таблиц недействителен [SWS_Os_00191].
  • E_OS_NOFUNC: исходная таблица ScheduleTableID_From не находится в запущенном состоянии [SWS_Os_00191].
  • E_OS_STATE: целевая таблица ScheduleTableID_To уже активно запущена или уже запланирована в качестве последующей таблицы [SWS_Os_00191].

Взаимодействие и диагностика

Для наблюдения и анализа операционной системы описания модулей ARTI поддерживают соответствующие контейнеры ORTI, с помощью которых инструменты отладки могут, помимо прочего, анализировать и отображать динамические состояния объектов операционной системы [SWS_Os_00829].

Этот текст был сгенерирован автоматически. Все данные основаны исключительно на спецификациях AUTOSAR релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция StartScheduleTableSynchron [SWS_Os_00201] 📄 PDF

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

This service starts an explicitly synchronized schedule table synchronously.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 8edf7224d053 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Системный сервис StartScheduleTableSynchron служит для того, чтобы синхронно запустить явно синхронизированную таблицу расписания [SWS_Os_00201]. Функция объявлена в заголовочном файле Os.h и имеет идентификатор сервиса 0x0b [SWS_Os_00201]. В качестве единственного передаваемого параметра функция ожидает входной параметр ScheduleTableID типа ScheduleTableType, который однозначно ссылается на запускаемую таблицу [SWS_Os_00201]. Входные/выходные или чисто выходные параметры отсутствуют [SWS_Os_00201]. Обработка выполняется синхронно и возвращает значение типа StatusType [SWS_Os_00201].

Обработка ошибок

При безошибочном выполнении вызов функции возвращает код состояния E_OK [SWS_Os_00201]. При ошибках специфицированы следующие возвращаемые значения:

  • E_OS_STATE: указанная таблица расписания уже находится в запущенном состоянии и не может быть запущена синхронно повторно [SWS_Os_00201].
  • E_OS_ID: переданный ScheduleTableID недействителен [SWS_Os_00201]. Данная проверка ошибок и выдача ошибки активны исключительно в статусе EXTENDED [SWS_Os_00201].

Параллелизм и ограничения

Функция специфицирована как реентерабельная [SWS_Os_00201]. Поскольку повторный вызов для уже активной таблицы отклоняется с кодом E_OS_STATE, вызывающая сторона должна убедиться, что целевая таблица перед вызовом ещё не выполняется [SWS_Os_00201].

Взаимодействие

Переходы состояний и динамические свойства объектов операционной системы могут отслеживаться для инструментов тестирования и диагностики через файлы описания модулей ARTI и контейнеры ORTI [SWS_Os_00829]. Внешние отладчики используют эти описания для анализа внутреннего состояния объектов OS во время выполнения [SWS_Os_00829].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция SyncScheduleTable [SWS_Os_00199] 📄 PDF

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);

Service SyncScheduleTable.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 50f85b0fc4ce Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронный и реентерабельный сервис операционной системы SyncScheduleTable служит для того, чтобы передать таблице расписания значение счётчика и запустить процесс синхронизации ([SWS_Os_00199]). Функция предоставляется через заголовочный файл Os.h ([SWS_Os_00199]).

Параметры и возвращаемые значения

Функция ожидает два входных параметра ([SWS_Os_00199]):

  • Schedule Table ID: идентификатор синхронизируемой таблицы расписания типа ScheduleTableType ([SWS_Os_00199]).
  • Value: текущее значение счётчика синхронизации типа TickType ([SWS_Os_00199]).

Возвращаемое значение типа StatusType сигнализирует с помощью E_OK о безошибочном выполнении ([SWS_Os_00199]).

Обработка ошибок и граничные условия

Если таблица в момент вызова находится в состоянии SCHEDULETABLE_STOPPED, возвращается ошибка E_OS_STATE ([SWS_Os_00199]). Если операционная система сконфигурирована в статусе EXTENDED, действуют дополнительные проверки ([SWS_Os_00199]):

  • E_OS_ID: указанный ID таблицы недействителен или таблица не может быть синхронизирована, поскольку Os Schedule Tbl Sync Strategy не сконфигурирован или установлен в IMPLICIT ([SWS_Os_00199]).
  • E_OS_VALUE: переданное значение счётчика Value находится вне допустимого диапазона ([SWS_Os_00199]).

Взаимодействие и диагностика

Состояния и динамические атрибуты объектов операционной системы, таких как таблицы расписания, могут анализироваться подключёнными инструментами отладки и диагностики через описания модулей ARTI и контейнеры ORTI ([SWS_Os_00829]).

Этот текст был сгенерирован ИИ на основе AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция SetScheduletableAsync [SWS_Os_00422] 📄 PDF

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);

This service stops synchronization of a schedule table.

функция GetScheduleTableStatusof [SWS_Os_00227] 📄 PDF

StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);

This service queries the state of a schedule table (also with respect to synchronization).

функция IncrementCounter [SWS_Os_00399] 📄 PDF

StatusType IncrementCounter (CounterType CounterID);

This service increments a software counter.

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

Использование

Синхронная функция операционной системы IncrementCounter служит для явного продвижения программного счетчика [SWS_Os_00399]. Она ожидает в качестве входного параметра идентификатор CounterID типа CounterType, не модифицирует другие параметры и доступна через заголовок Os.h [SWS_Os_00399]. Следует учитывать, что вызов может инициировать немедленное перепланирование (Rescheduling) операционной системы [SWS_Os_00399].

Обработка ошибок

Возвращаемое значение типа StatusType предоставляет информацию об успехе операции: в обычном режиме работы E_OK сообщает о безошибочном выполнении [SWS_Os_00399]. При активированной расширенной проверке статуса (статус EXTENDED) служба возвращает E_OS_ID, если был указан недействительный ID счетчика или если указанный счетчик реализован аппаратно и, следовательно, не может быть инкрементирован программно [SWS_Os_00399].

Параллелизм и диагностика

Функция спроектирована как реентерабельная и поэтому может вызываться параллельно [SWS_Os_00399]. Возможное перепланирование, интерпретация: вероятно, наступает тогда, когда продвижение счетчика вызывает зависимые действия, такие как срабатывание сигналов тревоги или активация задач. Вопрос Q-9004b5ced9b96230 (открытый) Для наблюдения за объектами операционной системы, такими как счетчики, а также за их динамическим состоянием описания модулей ARTI помогают подключенным инструментам анализа при мониторинге времени выполнения [SWS_Os_00829].

Это указание по использованию было сгенерировано автоматически и основано на спецификациях релиза AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция GetCounterValue [SWS_Os_00383] 📄 PDF

StatusType GetCounterValue (CounterType CounterID, TickRefType Value);

This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter).

функция GetElapsedValue [SWS_Os_00392] 📄 PDF

StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);

This service gets the number of ticks between the current tick value and a previously read tick value.

функция TerminateApplication [SWS_Os_00258] 📄 PDF

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);

Service TerminateApplication.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 2ba1bf6d0722 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция TerminateApplication служит для завершения работы OS-Application и доступна через заголовочный файл Os.h [SWS_Os_00258]. Вызов разрешён из контекста задачи (Task), ISR категории 2, а также специфичного для приложения Error-Hook [SWS_Os_00258].

В качестве входных параметров передаются идентификатор целевого приложения (Application) и поведение при перезапуске (Restart Option) [SWS_Os_00258]:

  • Если вызывающий компонент сам принадлежит к приложению, указанному в Application, выполнение приводит к самозавершению [SWS_Os_00258].
  • Через Restart Option определяется, должно ли OS-Application быть перезапущено после этого (RESTART) или нет (NO_RESTART) [SWS_Os_00258].

Функция возвращает значение состояния типа StatusType [SWS_Os_00258]:

  • E_OK сигнализирует о безошибочном завершении [SWS_Os_00258].
  • E_OS_STATE указывает на то, что текущее состояние Application не разрешает завершение [SWS_Os_00258].
  • В статусе EXTENDED выполняются дополнительные проверки ошибок: E_OS_ID при недействительном ID приложения, E_OS_VALUE при недопустимом значении параметра для Restart Option, а также E_OS_ACCESS, если у вызывающей стороны отсутствуют полномочия на завершение Application [SWS_Os_00258].

Это указание по использованию было сгенерировано автоматически на основе спецификации SWS_Os_00258.

Руководство разработчика реализации в подготовке (сложность I2)

функция AllowAccess [SWS_Os_00501] 📄 PDF

StatusType AllowAccess (void);

This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.

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

Использование

Синхронная системная служба AllowAccess (ID службы 0x13) служит для перевода состояния собственного OS-Application из APPLICATION_RESTARTING в APPLICATION_ACCESSIBLE ([SWS_Os_00501]). Функция доступна через заголовочный файл Os.h, не ожидает входных параметров и возвращает значение статуса типа StatusType ([SWS_Os_00501]). При успешном выполнении изменения состояния вызов возвращает значение E_OK ([SWS_Os_00501]).

Обработка ошибок и параллелизм

Если вызывающее OS-Application не находится в состоянии APPLICATION_RESTARTING, выполнение завершается сбоем, и функция возвращает значение ошибки E_OS_STATE ([SWS_Os_00501]). Специфические сообщения DET или DEM в спецификации для этой службы не определены. В отношении поведения при параллелизме функция классифицирована как реентерабельная и поэтому может безопасно выполняться в параллельных процессах ([SWS_Os_00501]).

Взаимодействие и диагностика

Интерпретация: вызов, вероятно, обычно выполняется в конце фазы перезапуска самого приложения, как только завершены все подготовительные действия и другим приложениям снова разрешено обращаться к ресурсам. Вопрос Q-f43a3f702d5d2428 (открытый) Динамические состояния операционной системы и соответствующих OS-объектов могут в рамках системной диагностики анализироваться и визуализироваться с помощью стандартизированных файлов описания ARTI и соответствующих инструментов отладки ([SWS_Os_00829]).

Этот текст создан ИИ и основан на версии спецификации R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция GetNumberActivatedCores [SWS_Os_00672] 📄 PDF

uint32 GetNumberOfActivatedCores (void);

The function returns the number of cores activated by the Start Core function. This function might be a macro. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

функция StartCore [SWS_Os_00676] 📄 PDF

void StartCore (CoreIdType CoreID, StatusType* Status);

It is not supported to call this function after Start OS(). The function starts the core specified by the parameter Core ID. The OUT parameter allows the caller to check whether the operation was successful or no t. If a core is started by means of this function Start OS shall be called on the core.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 06b25350e939 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная функция StartCore запускает процессорное ядро, указанное через параметр Core ID [SWS_Os_00676]. Функция не имеет прямого возвращаемого значения, а передаёт результат выполнения вызывающей стороне через OUT-параметр Status [SWS_Os_00676]. Если ядро было запущено с помощью этой функции, на соответствующем ядре впоследствии необходимо вызвать Start OS [SWS_Os_00676].

Для контекста вызова и конкурентности действуют строгие ограничения: StartCore специфицирована как нереентерабельная (Non Reentrant) [SWS_Os_00676]. Вызов после запуска операционной системы через Start OS() не поддерживается [SWS_Os_00676]. Сервис реализован синхронно и предоставляется через заголовочный файл Os.h с Service-ID 0x17 [SWS_Os_00676].

Обработка ошибок осуществляется через параметр Status, который в зависимости от конфигурации статуса может принимать следующие значения [SWS_Os_00676]:

  • В стандартном статусе E_OK указывает на безошибочное выполнение [SWS_Os_00676].
  • В расширенном статусе (extended status) E_OK также подтверждает успешный запуск [SWS_Os_00676].
  • E_OS_ID сообщает, что переданный Core ID недействителен [SWS_Os_00676].
  • E_OS_ACCESS сигнализирует о недопустимом вызове после запуска операционной системы [SWS_Os_00676].
  • E_OS_STATE указывает на то, что запрошенное процессорное ядро уже активировано [SWS_Os_00676].

Это указание по использованию было сгенерировано ИИ и опирается исключительно на спецификацию операционной системы AUTOSAR Classic из релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция StartNonCore [SWS_Os_00682] 📄 PDF

void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);

The function start s the core specified by the parameter Core ID. It is allowed to call this function after Start OS(). The OUT parameter allows the caller to check whether the operation was successful or not. It is not allowed to call Start OS on cores activated by Start No n Autosar Core. Otherwise the behaviour is unspecified.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4541cad4d0e6 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Синхронная и нереентерабельная функция StartNonCore запускает ядро процессора, указанное через параметр CoreID [SWS_Os_00682]. Ее разрешено вызывать после запуска операционной системы через StartOS(), и она доступна через заголовочный файл Os.h [SWS_Os_00682]. Через выходной параметр Status вызывающая сторона может проверить, был ли процесс запуска успешным [SWS_Os_00682].

Обработка ошибок и значения статуса

Функция не имеет прямого возвращаемого значения, однако сообщает результат выполнения через параметр-указатель Status [SWS_Os_00682]:

  • E_OK: операция была выполнена успешно и безошибочно [SWS_Os_00682].
  • E_OS_ID: указанный CoreID недействителен (в стандартном статусе) [SWS_Os_00682].
  • E_OS_STATE: указанное ядро процессора уже активировано (в стандартном статусе) [SWS_Os_00682].

Ограничения и условия порядка вызова

В качестве нереентерабельного интерфейса StartNonCore не должна выполняться параллельно [SWS_Os_00682]. Кроме того, действует строгое требование о том, что на ядрах процессора, которые были активированы через эту функцию, ни в коем случае нельзя вызывать StartOS; в противном случае поведение системы не определено [SWS_Os_00682].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция GetSpinlock [SWS_Os_00686] 📄 PDF

StatusType GetSpinlock (SpinlockIdType SpinlockId);

Get Spinlock tries to occupy a spin - lock variable. If the function returns, either the lock is successfully taken or an error has occurred. The spinlock mechanism is an active polling mechanism. The function does not cause a de - scheduling.

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

Синхронная и реентерабельная функция операционной системы GetSpinlock ([SWS_Os_00686]) служит для захвата переменной спинлока через входной параметр SpinlockId (тип SpinlockIdType). При выполнении функция использует механизм активного опроса («busy waiting») без вызова депланирования вызывающей задачи ([SWS_Os_00686]).

Функция возвращает управление только тогда, когда блокировка успешно получена или произошла ошибка. В качестве возвращаемого значения GetSpinlock возвращает StatusType ([SWS_Os_00686]):

  • E_OK: блокировка успешно захвачена (в стандартном и Extended-статусе).
  • E_OS_ID: переданный SpinlockId недействителен (только в Extended-статусе).
  • E_OS_INTERFERENCE_DEADLOCK: задача пытается захватить спинлок, в то время как он уже захвачен задачей на том же ядре Core (только в Extended-статусе).
  • E_OS_NESTING_DEADLOCK: задача пытается запросить спинлок, в то время как задача того же ядра Core уже удерживает другой спинлок, что может вызвать взаимоблокировку (только в Extended-статусе).
  • E_OS_ACCESS: доступ к указанному спинлоку невозможен (только в Extended-статусе).

В рамках мониторинга системы и анализа ошибок операционная система предоставляет динамическую информацию о состоянии OS-объектов, которая в соответствии с [SWS_Os_00829] может анализироваться инструментами отладки через контейнеры ARTI и ORTI; вероятно, с их помощью можно также отслеживать ситуации блокировок на спинлоках. Вопрос Q-bac194d4132f6e88 (открытый)

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция ReleaseSpinlock [SWS_Os_00695] 📄 PDF

StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);

Release Spinlock releases a spinlock variable that was occupied before. Before terminating a TASK all spinlock variables that have been occupied with Get Spinlock() shall be released. Before calling Wait EVENT all Spinlocks shall be released.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 3c94a21733b1 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция ReleaseSpinlock освобождает ранее захваченную переменную спинлока ([SWS_Os_00695]). Экземпляр освобождаемого спинлока указывается через входной параметр SpinlockId типа SpinlockIdType ([SWS_Os_00695]).

Условия последовательности вызовов и ограничения

Для вызова действуют строгие временные и структурные требования ([SWS_Os_00695]):

  • Перед завершением задачи все переменные спинлока, ранее захваченные с помощью GetSpinlock(), должны быть снова освобождены ([SWS_Os_00695]).
  • Перед вызовом WaitEvent необходимо без исключения освободить все удерживаемые спинлоки ([SWS_Os_00695]).
  • Освобождение должно производиться в правильном порядке вложенности; попытка освобождения при всё ещё захваченных вышестоящих спинлоках или ресурсах завершается ошибкой ([SWS_Os_00695]).

Возвращаемые значения и обработка ошибок

В случае успеха сервис как в стандартном, так и в расширенном статусе возвращает E_OK ([SWS_Os_00695]). В расширенном статусе (Extended Status) определены специальные коды ошибок ([SWS_Os_00695]):

  • E_OS_ID: переданный SpinlockId недействителен ([SWS_Os_00695]).
  • E_OS_STATE: спинлок не захвачен вызывающей задачей ([SWS_Os_00695]).
  • E_OS_ACCESS: доступ к спинлоку невозможен ([SWS_Os_00695]).
  • E_OS_NOFUNC: попытка освободить спинлок, в то время как сначала должен быть освобождён другой спинлок или ресурс ([SWS_Os_00695]).

Функция доступна через заголовочный файл Os.h ([SWS_Os_00695]). Файлы описания ARTI поддерживают контейнеры ORTI для динамического анализа состояния и производительности объектов операционной системы ([SWS_Os_00829]).

Этот текст был создан ИИ и курирован с помощью autodocs.

Руководство разработчика реализации в подготовке (сложность I2)

функция TryToGetSpinlock [SWS_Os_00703] 📄 PDF

StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);

Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by a TASK on a d ifferent core the function sets the OUT parameter "Success" and returns with E_ OK.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 1d98a899f332 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция операционной системы TryToGetSpinlock служит для неблокирующего захвата экземпляра спинлока через заголовочный файл Os.h [SWS_Os_00703]. Она выполняет ту же базовую функциональность, что и GetSpinlock, однако не ожидает активно, если запрошенный спинлок уже занят задачей TASK на другом ядре Core [SWS_Os_00703].

Параметры и возвращаемые значения

  • SpinlockId (входной): ссылается на конкретный экземпляр спинлока, который необходимо заблокировать [SWS_Os_00703].
  • Success (выходной): указывает через тип TryToGetSpinlockType*, удалось ли захватить блокировку или нет [SWS_Os_00703]. Если блокировка занята на другом ядре Core, функция соответствующим образом устанавливает этот параметр и возвращает E_OK [SWS_Os_00703].
  • Возвращаемое значение: возвращает E_OK в стандартном и Extended-статусе, если ошибки отсутствуют [SWS_Os_00703].

Обработка ошибок и граничные условия

В Extended-статусе операционная система проверяет наличие недопустимых вызовов, а также сценариев взаимоблокировки [SWS_Os_00703]:

  • E_OS_ID: переданный SpinlockId недействителен [SWS_Os_00703].
  • E_OS_ACCESS: доступ к спинлоку невозможен [SWS_Os_00703].
  • E_OS_INTERFERENCE_DEADLOCK: TASK пытается захватить блокировку, в то время как эта же блокировка уже удерживается TASK на том же ядре Core [SWS_Os_00703].
  • E_OS_NESTING_DEADLOCK: TASK пытается захватить спинлок, в то время как он уже удерживает другой спинлок, что может привести к взаимоблокировке [SWS_Os_00703].

Это указание по использованию было автоматически сгенерировано системой ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция ShutdownAllCores [SWS_Os_00713] 📄 PDF

void ShutdownAllCores (StatusType Error);

After this service the OS on all AUTOSAR cores is shut down. Allowed at TASK level and ISR level and also internally by the OS. The function will never return. The function will force other cores into a shutdown.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 751c4aeab334 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная системная функция ShutdownAllCores с ID службы 0x1c служит для контролируемого и полного останова операционной системы AUTOSAR на всех имеющихся ядрах процессора ([SWS_Os_00713]). Как только служба вызывается, функция принудительно вызывает останов (Shutdown) на всех остальных ядрах, так что операционная система останавливается на всех ядрах AUTOSAR ([SWS_Os_00713]).

Контекст вызова и параллелизм

Функция объявлена в заголовке Os.h и специфицирована как реентерабельная ([SWS_Os_00713]). Вызов ShutdownAllCores безоговорочно разрешен как на уровне задач (TASK level), так и на уровне прерываний (ISR level) ([SWS_Os_00713]). Кроме того, служба может также выполняться внутри операционной системы напрямую через AUTOSAR OS ([SWS_Os_00713]).

Параметры и поток управления

Интерфейс ожидает в качестве единственного входного параметра Error типа StatusType ([SWS_Os_00713]). Для этого параметра обязательно должен передаваться допустимый код ошибки, поддерживаемый операционной системой AUTOSAR ([SWS_Os_00713]). Выходные или входные/выходные параметры отсутствуют ([SWS_Os_00713]). Поскольку функция после инициации общесистемного останова никогда не возвращает управление вызывающей стороне, она не имеет возвращаемого значения (void) ([SWS_Os_00713]).

Это указание по использованию было автоматически сгенерировано на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция ControlIdle [SWS_Os_00769] 📄 PDF

StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);

This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.g. if no Task/ ISR is active). It can be used to implement energy savings. The real idle modes are hardware dependent and not standardized. The default idle mode on each core is IDLE_ NO_ HALT.

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

Синхронная функция ControlIdle позволяет вызывающей стороне задать действие, которое выполняется во время простоя операционной системы (когда не активна ни задача, ни ISR) [SWS_Os_00769]. Это служит прежде всего для реализации мер по энергосбережению. Реальные режимы простоя зависят от аппаратного обеспечения и не стандартизированы; стандартным режимом на каждом процессорном ядре является IDLE_NO_HALT [SWS_Os_00769]. Интерфейс предоставляется через заголовочный файл Os.h [SWS_Os_00769].

Функция ожидает два входных параметра:

  • CoreID (типа CoreIdType): выбирает процессорное ядро, для которого должен быть установлен режим простоя [SWS_Os_00769].
  • IdleMode (типа IdleModeType): определяет режим, который должен выполняться во время простоя [SWS_Os_00769].

Если были переданы допустимые параметры и ошибка не возникла, функция возвращает E_OK [SWS_Os_00769], [SWS_Os_00770]. Если указанный CoreID или IdleMode недействителен — например, поскольку указанное ядро не существует или режим неизвестен, — вызов в статусе EXTENDED возвращает код ошибки E_OS_ID [SWS_Os_00769], [SWS_Os_00771]. В одноядерных системах проверка параметра CoreID опускается [SWS_Os_00771].

Что касается конкурентности, функция специфицирована как нереентерабельная (Non Reentrant) [SWS_Os_00769]. Интерпретация: вызывающие стороны должны поэтому обеспечить, чтобы вызовы ControlIdle не происходили одновременно или нескоординированно из разных контекстов выполнения. Вопрос Q-7f239cb54752e826 (открытый)

Этот совет по использованию был сгенерирован ИИ на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция ReadPeripheral [SWS_Os_91013] 📄 PDF

StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);

This service returns the content of a given memory location (

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

Использование

Функция ReadPeripheral (в объявлении указанная как ReadPeripheral8) служит для синхронного считывания адреса памяти внутри определенной области аппаратной периферии [SWS_Os_91013]. Интерфейс доступен через заголовочный файл Os.h [SWS_Os_91013]. В качестве входных параметров служба ожидает ссылку на область Area типа AreaIdType, а также целевой адрес Address в виде указателя на const uint8 [SWS_Os_91013]. Считанное содержимое ячейки памяти предоставляется через выходной параметр ReadValue [SWS_Os_91013].

Обработка ошибок

Служба возвращает код состояния типа StatusType, причем E_OK указывает на безошибочное выполнение [SWS_Os_91013]. При активированной расширенной проверке состояния (EXTENDED status) некорректные вызовы дифференцируются по специфическим значениям ошибок [SWS_Os_91013]:

  • E_OS_ID: переданный идентификатор области Area находится вне допустимого диапазона [SWS_Os_91013].
  • E_OS_VALUE: указанный адрес памяти Address не принадлежит к указанной области периферии [SWS_Os_91013].
  • E_OS_CALLEVEL: вызов произошел из недопустимого контекста [SWS_Os_91013].
  • E_OS_ACCESS: вызывающая задача или ISR, вероятно, не обладает необходимыми правами для доступа к области (интерпретация) [SWS_Os_91013]. Вопрос Q-19e2c22110352ebb (открытый)

Параллелизм и ограничения

Служба API имеет идентификатор службы 0x28, работает синхронно и спроектирована как реентерабельная [SWS_Os_91013]. Вызовы разрешены только из допустимых контекстов задач или ISR; недопустимые вызовы отклоняются в расширенном статусе с кодом E_OS_CALLEVEL [SWS_Os_91013].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция ReadPeripheral16 [SWS_Os_91015] 📄 PDF

StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);

This service returns the content of a given memory location (

).
СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 5ae7289a82af Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция операционной системы ReadPeripheral16 служит для считывания 16-битного значения указанного адреса памяти внутри определенной области периферии [SWS_Os_91015]. Системная служба определена под идентификатором службы 0x29 и доступна через заголовочный файл Os.h [SWS_Os_91015].

Использование и параметры

Службе в качестве входных параметров передаются ссылка на область аппаратной периферии (Area типа AreaIdType), а также целевой адрес в памяти (Address типа const uint16*) [SWS_Os_91015]. Через выходной параметр Read Value типа указателя uint16* предоставляется определенное по адресу памяти 16-битное содержимое [SWS_Os_91015]. При безошибочном выполнении функция возвращает возвращаемое значение E_OK типа StatusType [SWS_Os_91015].

Обработка ошибок и ограничения доступа

В расширенном статусе (EXTENDED status) операционная система проверяет корректность вызова и сообщает об ошибках посредством специфических кодов состояния [SWS_Os_91015]:

  • E_OS_ID: переданный идентификатор области Area находится вне допустимого диапазона [SWS_Os_91015].
  • E_OS_VALUE: указанный адрес памяти Address не принадлежит к специфицированной области периферии Area [SWS_Os_91015].
  • E_OS_CALLEVEL: вызов произошел в контексте, недопустимом для функции API [SWS_Os_91015].
  • E_OS_ACCESS: вызывающая задача или процедура обработки прерываний (ISR) не авторизована для доступа к указанной области [SWS_Os_91015].

Это указание по использованию создано автоматически и базируется исключительно на требованиях спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция ReadPeripheral32 [SWS_Os_91014] 📄 PDF

StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);

This service returns the content of a given memory location (

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

Использование

Синхронная и реентерабельная функция ReadPeripheral32 считывает содержимое указанного адреса памяти ([SWS_Os_91014]). Вызывающая сторона передает ссылку на область аппаратной периферии через параметр Area, а требуемый адрес памяти — через Address ([SWS_Os_91014]). Считанное по этому адресу 32-битное значение синхронно предоставляется через выходной параметр ReadValue ([SWS_Os_91014]). Интерфейс предоставляется через заголовочный файл Os.h ([SWS_Os_91014]).

Обработка ошибок

Служба возвращает значение состояния типа StatusType. При безошибочном выполнении она возвращает E_OK ([SWS_Os_91014]). Если сконфигурирован расширенный статус (EXTENDED status), возвращаются следующие коды ошибок ([SWS_Os_91014]):

  • E_OS_ID: переданный идентификатор области Area находится вне допустимого диапазона ([SWS_Os_91014]).
  • E_OS_VALUE: указанный адрес Address не принадлежит к указанной области Area ([SWS_Os_91014]).
  • E_OS_CALLEVEL: функция была вызвана в недопустимом контексте вызова ([SWS_Os_91014]).
  • E_OS_ACCESS: вызывающая задача или вызывающая ISR не обладает необходимыми правами доступа; согласно интерпретации, это, вероятно, относится к области периферии ([SWS_Os_91014]). Вопрос Q-e5893b29acc5133a (открытый)

Параллелизм и ограничения

ReadPeripheral32 специфицирована как реентерабельная и может вызываться параллельно из нескольких потоков управления ([SWS_Os_91014]). Поскольку служба работает синхронно, вызов возвращает управление только после завершения операции чтения ([SWS_Os_91014]). Вызывающие стороны должны передавать действительные указатели памяти и обеспечивать выполнение вызова из контекста, допустимого для OS API ([SWS_Os_91014]).

Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция WritePeripheral [SWS_Os_91010] 📄 PDF

StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);

This service writes the to a given memory location (). Available vi a Os.h

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

Использование

Функция WritePeripheral (в спецификации также обозначаемая как Write Peripheral8) является синхронной и реентерабельной службой операционной системы для записи значения по указанному адресу памяти области периферии [SWS_Os_91010]. Объявление предоставляется через заголовочный файл Os.h [SWS_Os_91010]. В качестве параметров вызов ожидает ссылку на область аппаратной периферии (Area типа AreaIdType), адрес памяти (Address типа uint8*), а также записываемое значение (Write Value типа uint8) [SWS_Os_91010]. Интерпретация: хотя Write Value в тексте спецификации указан в таблице среди выходных параметров, судя по передаче по значению в сигнатуре и описанию, речь идет о записываемом входном значении. Вопрос Q-619c69ba7a85ed92 (открытый)

Обработка ошибок

Функция возвращает статус типа StatusType [SWS_Os_91010]:

  • E_OK: операция записи выполнена безошибочно [SWS_Os_91010].
  • E_OS_ID: переданный ID области находится вне допустимого диапазона (в расширенном статусе) [SWS_Os_91010].
  • E_OS_VALUE: целевой адрес не принадлежит к указанной области (в расширенном статусе) [SWS_Os_91010].
  • E_OS_CALLEVEL: недопустимый контекст вызова функции API (в расширенном статусе) [SWS_Os_91010].
  • E_OS_ACCESS: вызывающая задача или ISR не обладает правами доступа к области [SWS_Os_91010].

Параллелизм и ограничения

Вызов обрабатывается синхронно и является реентерабельным [SWS_Os_91010]. Вызывающие стороны должны гарантировать, что исполняющая задача или ISR действует из допустимого контекста и обладает необходимыми правами доступа к адресуемой области периферии [SWS_Os_91010].

Этот текст был сгенерирован автоматически. Все данные основаны на указанных спецификациях AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция WritePeripheral16 [SWS_Os_91012] 📄 PDF

StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);

This service writes the to a given memory location (). Available vi a Os.h

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 4e4afea6b230 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция операционной системы WritePeripheral16 ([SWS_Os_91012]) служит для записи 16-битного значения по адресу памяти области периферии. Служба предоставляется через заголовочный файл Os.h и имеет идентификатор службы 0x2c.

Использование и параметры

При вызове WritePeripheral16 вызывающая сторона передает идентификатор целевой аппаратной области (Area типа AreaIdType), целевой адрес (Address типа uint16*), а также записываемое значение (Write Value типа uint16, которое, несмотря на табличное указание в качестве Out-параметра, в сигнатуре, вероятно, служит для передачи по значению) согласно [SWS_Os_91012]. Вопрос Q-2edc50ae2e7fd0b0 (открытый) Служба выполняется синхронно и возвращает значение состояния типа StatusType.

Обработка ошибок

В случае успеха функция возвращает E_OK. Для статуса EXTENDED специфицированы следующие коды ошибок ([SWS_Os_91012]):

  • E_OS_ID: переданный идентификатор области (Area) находится вне допустимого диапазона.
  • E_OS_VALUE: целевой адрес (Address) не принадлежит к указанной области периферии.
  • E_OS_CALLEVEL: функция была вызвана из недопустимого контекста.
  • E_OS_ACCESS: вызывающая задача или ISR, вероятно, не имеет прав на доступ к указанной области. Вопрос (открытый)

Ограничения и взаимодействие

Функция является реентерабельной ([SWS_Os_91012]), однако требует соблюдения допустимого контекста вызова (задача или ISR) во избежание таких состояний ошибки, как E_OS_CALLEVEL. Для мониторинга и анализа объектов операционной системы AUTOSAR предусматривает предоставление файлов описания ARTI ([SWS_Os_00829]).

Это указание по использованию сгенерировано автоматически и основано исключительно на данных спецификации релиза AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция WritePeripheral32 [SWS_Os_91011] 📄 PDF

StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);

This service writes the to a given memory location ().

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: a189c9cd92b9 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция WritePeripheral32 из модуля Os служит для записи 32-битного значения по указанному адресу памяти области периферии [SWS_Os_91011]. Служба доступна через заголовочный файл Os.h и имеет идентификатор службы 0x2d [SWS_Os_91011].

Параметры и вызов

Для выполнения операции записи функции требуются три входных параметра [SWS_Os_91011]:

  • Area (AreaIdType): ссылка на целевую область аппаратной периферии [SWS_Os_91011].
  • Address (uint32*): адрес памяти, по которому должно быть записано значение [SWS_Os_91011].
  • Write Value (uint32): конкретное 32-битное значение, передаваемое по целевому адресу [SWS_Os_91011].

Возвращаемые значения и обработка ошибок

Вызов возвращает значение состояния типа StatusType [SWS_Os_91011]. В случае успеха возвращается E_OK [SWS_Os_91011]. При активном статусе EXTENDED значение E_OS_ID сигнализирует о недопустимом ID области, E_OS_VALUE — об адресе, не принадлежащем области, а E_OS_CALLEVEL — о недопустимом контексте вызова [SWS_Os_91011]. Если вызывающая задача или ISR не имеет прав доступа к области, возвращается E_OS_ACCESS [SWS_Os_91011].

Параллелизм

Поскольку WritePeripheral32 реентерабельна, служба может использоваться в параллельных контекстах исполнения, если соответствующая вызывающая сторона во время выполнения обладает требуемыми правами доступа [SWS_Os_91011].

Это указание по использованию было создано автоматически на основе спецификации AUTOSAR Classic R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция ModifyPeripheral [SWS_Os_91016] 📄 PDF

StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 031e78e21a3e Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и семантика

Синхронная и реентерабельная функция операционной системы ModifyPeripheral8 ([SWS_Os_91016]) модифицирует байт по указанному адресу памяти Address. При этом существующее содержимое памяти обновляется побитово через маску Clearmask операцией «И», а также через маску Setmask операцией «ИЛИ» согласно формуле *Address = ((*Address & Clearmask) | Setmask) ([SWS_Os_91016]). В качестве входных параметров функция ожидает ссылку на область периферии Area типа AreaIdType, целевой адрес Address (тип uint8*), а также значения обеих масок типа uint8. Функция предоставляется через заголовочный файл Os.h и имеет идентификатор службы 0x2e ([SWS_Os_91016]).

Обработка ошибок и возвращаемые значения

Возвращаемое значение типа StatusType сигнализирует об успехе операции значением E_OK ([SWS_Os_91016]). При активированном статусе Extended могут возникать специфические условия ошибок:

  • E_OS_ID: переданный идентификатор области Area находится вне допустимого диапазона ([SWS_Os_91016]).
  • E_OS_VALUE: целевой адрес Address не принадлежит к указанной области Area ([SWS_Os_91016]).
  • E_OS_CALLEVEL: служба была вызвана в недопустимом контексте вызова ([SWS_Os_91016]).
  • E_OS_ACCESS: вызывающая задача или ISR не имеет прав доступа к целевой области ([SWS_Os_91016]).

Параллелизм и условия вызова

Поскольку ModifyPeripheral8 специфицирована как реентерабельная, вызов может безопасно выполняться в параллельных процессах ([SWS_Os_91016]). Вызывающие стороны должны гарантировать, что как контекст, так и права доступа для Area и Address являются действительными, чтобы избежать состояний ошибки ([SWS_Os_91016]).

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция ModifyPeripheral16 [SWS_Os_91018] 📄 PDF

StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: f22ffe272912 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная функция ModifyPeripheral16 модифицирует 16-битную ячейку памяти внутри определенной области периферии в соответствии с формулой расчета *Address = ((*Address & Clearmask) | Setmask) [SWS_Os_91018]. В качестве параметров передаются ссылка на область периферии Area (тип AreaIdType), целевой адрес Address (тип uint16*), а также битовые маски Clearmask для побитового «И» и Setmask для побитового «ИЛИ» [SWS_Os_91018]. Объявление доступно через заголовочный файл Os.h [SWS_Os_91018].

В штатном случае успеха служба возвращает возвращаемое значение E_OK [SWS_Os_91018]. При активированной расширенной проверке состояния (EXTENDED status) некорректные вызовы распознаются и отклоняются на основе специфических кодов ошибок [SWS_Os_91018]:

  • E_OS_ID: переданный идентификатор области Area находится вне допустимого диапазона значений [SWS_Os_91018].
  • E_OS_VALUE: переданный адрес памяти Address не принадлежит к указанной области Area [SWS_Os_91018].
  • E_OS_CALLEVEL: служба была вызвана из недопустимого контекста [SWS_Os_91018].
  • E_OS_ACCESS: вызывающая задача или вызывающая ISR не имеет прав доступа к указанной области [SWS_Os_91018].

Вызывающие стороны должны перед выполнением убедиться, что имеются как соответствующий контекст, так и права доступа к адресуемой области во избежание нарушений прав доступа [SWS_Os_91018].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция ModifyPeripheral32 [SWS_Os_91017] 📄 PDF

StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);

This service modifies a given memory location () with the formula: *

= ((*
& ) | )

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

Синхронная и реентерабельная функция операционной системы ModifyPeripheral32 служит согласно [SWS_Os_91017] для адресной побитовой манипуляции 32-битным адресом памяти. Предоставляемая через интерфейс Os.h, функция применяет к целевому адресу Address фиксированную формулу расчета *Address = ((*Address & Clearmask) | Setmask). При этом сначала с помощью битовой маски Clearmask биты сбрасываются побитовой операцией «И», а затем с помощью Setmask устанавливаются побитовой операцией «ИЛИ».

В качестве входных параметров служба ожидает ссылку на область периферии Area, указатель на адрес Address, а также две 32-битные маски [SWS_Os_91017]. При безошибочном выполнении возвращается код состояния E_OK. В расширенном статусе (EXTENDED status) функция выполняет проверки правдоподобия и сообщает о следующих кодах ошибок:

  • E_OS_ID: переданный Area находится вне допустимого диапазона значений [SWS_Os_91017].
  • E_OS_VALUE: целевой адрес не принадлежит к указанной области периферии [SWS_Os_91017].
  • E_OS_CALLEVEL: функция была вызвана из недопустимого контекста [SWS_Os_91017].
  • E_OS_ACCESS: вызывающая задача или ISR не имеет прав на доступ [SWS_Os_91017] (интерпретация: отсутствие прав доступа к области периферии). Вопрос Q-b4d959765dc59c72 (открытый)

Параллельные вызовы допустимы благодаря реентерабельности при условии сохранения контекста вызова [SWS_Os_91017]. В общей системе данная прямая модификация регистров отличается от формул расчета для динамического определения данных, которые вычисляются, например, в рамках отладочной информации ARTI согласно [SWS_Os_00829].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR CP R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция EnableInterruptSource [SWS_Os_91020] 📄 PDF

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);

Service EnableInterruptSource.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 0e3279bf544b Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Синхронная и реентерабельная системная функция EnableInterruptSource активирует источник прерываний путём модификации регистров контроллера прерываний [SWS_Os_91020], [SWS_Os_00811]. Операционная система предоставляет этот сервис для каждого сконфигурированного источника прерываний категории 2 [SWS_Os_00808].

Параметры и вызов

Через параметр ISRID передаётся идентификатор ISR категории 2 [SWS_Os_91020]. Логический параметр ClearPending определяет, должен ли флаг ожидающего прерывания быть сброшен при активации (TRUE) или оставаться без изменений (FALSE) [SWS_Os_91020], [SWS_Os_00811]. Функция доступна через заголовочный файл Os.h [SWS_Os_91020].

Обработка ошибок и возвращаемые значения

Если ошибка не обнаружена, вызов возвращает E_OK [SWS_Os_91020], [SWS_Os_00810]. Если операционная система обнаруживает ошибку, она возвращает соответствующий код состояния типа StatusType и вызывает ErrorHook() [SWS_Os_00810]. Определены следующие состояния ошибок:

  • E_OS_ID: параметр ISRID не является допустимым идентификатором ISR категории 2 (в статусе EXTENDED) [SWS_Os_91020].
  • E_OS_CALLEVEL: функция была вызвана из недопустимого контекста вызова (в статусе EXTENDED) [SWS_Os_91020].
  • E_OS_ACCESS: вызывающее приложение в рамках Service Protection не является владельцем указанной ISRID [SWS_Os_91020].

Взаимодействие

Функция вместе с DisableInterruptSource и ClearPendingInterrupt образует трио API для адресного управления отдельными источниками прерываний категории 2 (OsIsrCategory == CATEGORY_2) в операционной системе [SWS_Os_00808], [SWS_Os_00810].

Этот текст был автоматически сгенерирован на основе спецификаций релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I2)

функция DisableInterruptSource [SWS_Os_91019] 📄 PDF

StatusType DisableInterruptSource (ISRType ISRID);

Disables the interrupt source by modifying the interrupt controller registers.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: c278819b07d9 Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование

Синхронная и реентерабельная функция DisableInterruptSource отключает определённый источник прерывания напрямую через регистры контроллера прерываний [SWS_Os_91019], [SWS_Os_00812]. Она доступна через заголовочный файл Os.h и предоставляется для каждого источника прерывания категории 2 (OsIsrCategory == CATEGORY_2) [SWS_Os_91019], [SWS_Os_00808]. В качестве параметра передаётся идентификатор соответствующей ISR (ISRID). При успешном выполнении сервис возвращает E_OK [SWS_Os_91019], [SWS_Os_00810].

Обработка ошибок

Если операционная система во время выполнения обнаруживает ошибку, возвращается соответствующий StatusType и вызывается ErrorHook() [SWS_Os_00810]. Возможные коды ошибок:

  • E_OS_ID: переданный ISRID не является допустимым идентификатором ISR категории 2 (в статусе EXTENDED) [SWS_Os_91019].
  • E_OS_CALLEVEL: недопустимый контекст вызова функции API (в статусе EXTENDED) [SWS_Os_91019].
  • E_OS_ACCESS: вызывающая OS-Application не является владельцем указанной ISR (Service Protection) [SWS_Os_91019].
  • E_OS_NOFUNC: запрошенный источник прерывания уже отключён (в статусе EXTENDED при вложенных вызовах) [SWS_Os_00809].

Взаимодействие и граничные условия

Функция образует совместно с EnableInterruptSource и ClearPendingInterrupt трио API для управления источниками прерываний категории 2 [SWS_Os_00808]. Конкурентные или повторные вызовы страхуются в расширенном статусе возвратом E_OS_NOFUNC, благодаря чему избыточные отключения остаются контролируемыми [SWS_Os_00809]. Вызывающие стороны также должны обладать соответствующими правами доступа, чтобы предотвратить ошибки времени выполнения из-за Service Protection [SWS_Os_91019].

Это указание по использованию было сгенерировано автоматически на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I1)

функция ClearPendingInterrupt [SWS_Os_91021] 📄 PDF

StatusType ClearPendingInterrupt (ISRType ISRID);

Service ClearPendingInterrupt.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: bf5abba4980e Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и контекст вызова

Функция ClearPendingInterrupt служит для сброса ожидающего прерывания для источников категории 2 [SWS_Os_00808]. В качестве единственного входного параметра она принимает идентификатор ISRID ISR категории 2 и напрямую модифицирует соответствующие регистры контроллера прерываний [SWS_Os_91021], [SWS_Os_00813]. Вызов обрабатывается синхронно и доступен через заголовочный файл Os.h [SWS_Os_91021].

Обработка ошибок и возвращаемые значения

В случае безошибочного выполнения возвращается код состояния E_OK [SWS_Os_91021]. Если операционная система во время выполнения обнаруживает ошибку, сервис возвращает соответствующий код ошибки типа StatusType и в обязательном порядке вызывает ErrorHook() [SWS_Os_00810]. Для интерфейса специфицированы следующие состояния ошибок [SWS_Os_91021]:

  • E_OS_ID: переданный параметр ISRID не является допустимым идентификатором ISR категории 2 (возвращается в состоянии EXTENDED) [SWS_Os_91021].
  • E_OS_CALLEVEL: функция была вызвана из недопустимого контекста вызова (возвращается в состоянии EXTENDED) [SWS_Os_91021].
  • E_OS_ACCESS: вызывающее приложение в рамках Service Protection не авторизовано в качестве владельца переданной ISR [SWS_Os_91021].

Параллелизм и взаимодействие в операционной системе

Интерфейс определен как реентерабельный и, следовательно, может безопасно вызываться параллельно [SWS_Os_91021]. Операционная система предоставляет ClearPendingInterrupt для каждого источника прерываний категории 2 (OsIsrCategory == CATEGORY_2) как неотъемлемую часть управляющих API, к которым также относятся DisableInterruptSource и EnableInterruptSource [SWS_Os_00808].

Этот текст был сгенерирован ИИ на основе спецификации AUTOSAR.

Руководство разработчика реализации в подготовке (сложность I2)

функция ActivateTaskAsyn [SWS_Os_91022] 📄 PDF

void ActivateTaskAsyn (TaskType id);

Asynchronous version of the Activate Task() function. Intended to be used for cross core task activation. Possible errors are not returned to the caller, but may be reported via error hooks.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 6cc8f60dfafe Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция ActivateTaskAsyn (Service ID 0x33) представляет собой асинхронный вариант активации задач и предоставляется через заголовочный файл Os.h ([SWS_Os_91022]). Она преимущественно предназначена для межъядерной активации задач в многоядерных системах ([SWS_Os_91022]).

В качестве единственного входного параметра передается id типа TaskType, который специфицирует активируемую задачу ([SWS_Os_91022]). Интерфейс не имеет возвращаемого значения (void) и не определяет ни входных/выходных, ни чисто выходных параметров ([SWS_Os_91022]).

Возможные ошибки при активации вызывающей стороне не возвращаются ([SWS_Os_91022], [SWS_Os_00816]). Вместо этого возникающие ошибки сообщаются исключительно через глобальный Error Hook, если таковой сконфигурирован ([SWS_Os_00816]).

С точки зрения параллелизма функция является реентерабельной и работает полностью асинхронно ([SWS_Os_91022]), благодаря чему вызывающий контекст не блокируется в ожидании выполнения. Операционная система обязана предоставлять этот интерфейс согласно [SWS_Os_00816].

Это указание по использованию было сгенерировано ИИ на основе спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция SetEventAsyn [SWS_Os_91023] 📄 PDF

void SetEventAsyn (TaskType id, EventMaskType m);

Asynchronous version of the Set Event() function. Intended to be used for cross core event setting. Possible errors are not returned to the caller, but may be reported via error hooks.

функция Ioc [SWS_Os_91026] 📄 PDF

void IocInit (void);

This service initializes the data structures of the IOC. Tags: atp.Status=draft

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

Использование и принцип работы

Функция Ioc Init (обозначенная в релизе R20-11 как проектная) инициализирует внутренние структуры данных Inter-OS-Application Communication (IOC) [SWS_Os_91026]. Вызов выполняется синхронно, не принимает входных параметров и не имеет возвращаемого значения [SWS_Os_91026]. Если генератор операционной системы запущен в «IOC mode», он генерирует исключительно код IOC в исходном файле Ioc.c и объявляет соответствующие интерфейсы в заголовочном файле Ioc.h [SWS_Os_00834], через который также предоставляется Ioc Init [SWS_Os_91026].

Обработка ошибок и параллелизм

Для Ioc Init в спецификации не предусмотрены ни специфические возвращаемые значения ошибок, ни сообщения об ошибках в DET или DEM [SWS_Os_91026]. Служба явно определена как нереентерабельная (Non Reentrant) [SWS_Os_91026]. Интерпретация: из-за отсутствия реентерабельности и задачи инициализации служба, вероятно, должна вызываться последовательно во время фазы запуска системы, до выполнения параллельных обращений по каналам связи. Вопрос Q-47f99a4725b57c89 (открытый)

Взаимодействие с коммуникационными функциями IOC

Надлежащая инициализация структур данных образует необходимое условие для использования сгенерированных коммуникационных интерфейсов IOC:

  • Отправка и запись: Отправители передают данные асинхронно через службы одиночных значений, такие как Ioc Send [SWS_Os_00718] и Ioc Write [SWS_Os_91003], или групповые функции, такие как Ioc Send Group [SWS_Os_00728] и Ioc Write Group [SWS_Os_91004].
  • Прием и чтение: Получатели запрашивают данные синхронно через Ioc Receive [SWS_Os_00738], Ioc Read [SWS_Os_91005] или соответствующие групповые службы [SWS_Os_00746] [SWS_Os_91006].
  • Управление очередями и уведомление: При сконфигурированной буферизованной коммуникации содержимое внутренней очереди может быть синхронно очищено с помощью Ioc Empty Queue [SWS_Os_00754]. Кроме того, при приеме данных на целевом ядре может выполняться сконфигурированный callback получателя <Receiver Pull CB> [SWS_Os_00757].

Этот текст был создан ИИ и основан исключительно на спецификациях релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

функция <ReceiverPullCB> [SWS_Os_00757] 📄 PDF

void <ReceiverPullCB> (void);

This callback function can be configured for the receiver of a communication. If configured, IOC calls this callback on the receiving core for each data reception. is the callback function name configured by the receiver in the Os Ioc Re ceiver Pull CB attribute to be called on data reception."

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

Функция обратного вызова <Receiver Pull CB> может быть опционально сконфигурирована для получателя коммуникации и объявляется через заголовочный файл Os.h [SWS_Os_00757]. Если этот колбэк настроен, IOC (Inter-OS-Application Communicator) синхронно вызывает функцию на принимающем ядре Core при каждом приёме данных [SWS_Os_00757]. Конкретный идентификатор функции обратного вызова определяется на стороне получателя через конфигурационный атрибут OsIocReceiverPullCB [SWS_Os_00757].

Для вызова и свойств интерфейса действуют следующие требования:

  • Сигнатура и параметры: функция имеет прототип void <Receiver Pull CB> ( void ); она не принимает параметров (ни входных, ни сквозных, ни выходных) и не возвращает значения [SWS_Os_00757].
  • Синхронность и реентерабельность: вызов со стороны IOC выполняется с синхронной семантикой непосредственно на ядре-получателе Core [SWS_Os_00757]. Кроме того, функция обратного вызова специфицирована как реентерабельная [SWS_Os_00757].
  • Обработка ошибок: спецификация не предусматривает для этой функции ни возвращаемых значений, ни специальных кодов ошибок или сообщений об ошибках [SWS_Os_00757].

Поскольку сигнатура не передаёт никаких полезных данных, вызов, вероятно, служит главным образом сигналом уведомления, чтобы проинформировать получателя о поступлении новых данных и инициировать последующее извлечение полезных данных. Вопрос Q-2365bb46ad77a476 (открытый) Разработчикам следует учитывать, что выполнение происходит синхронно на ядре-получателе Core [SWS_Os_00757].

Этот текст был создан ИИ и основан на спецификации AUTOSAR CP R20-11.

функция ProtectionHook [SWS_Os_00538] 📄 PDF

ProtectionReturnType ProtectionHook (StatusType Fatalerror);

The protection hook is always called if a serious error occurs. E.g. exceeding the worst case execution time or violating against the memory protection.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 85982be9edad Происхождение
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Функция ProtectionHook служит центральным колбэком операционной системы и вызывается синхронно всякий раз при возникновении критической ошибки [SWS_Os_00538]. В качестве типичных сценариев ошибок спецификация явно называет превышение времени выполнения в худшем случае (Worst Case Execution Time), а также нарушения защиты памяти [SWS_Os_00538]. Объявление интерфейса предоставляется через заголовочный файл Os_Externals.h [SWS_Os_00538].

В качестве входного параметра подпрограмма принимает Fatalerror типа StatusType, передающий исходную причину вызова хука [SWS_Os_00538]. Дополнительные входные/выходные параметры или чисто выходные параметры в сигнатуре не определены [SWS_Os_00538].

Через возвращаемое значение типа ProtectionReturnType ProtectionHook обязательно определяет, какое действие операционная система должна инициировать после выполнения хука для дальнейшей обработки ошибки [SWS_Os_00538]. В качестве возвращаемых значений доступны следующие действия [SWS_Os_00538]:

С точки зрения конкурентности и поведения при выполнении ProtectionHook специфицирована как реентерабельная и синхронная [SWS_Os_00538]. Вызов происходит непосредственно при возникновении критической ошибки, после чего операционная система выполняет определённое действие [SWS_Os_00538].

Этот текст был создан ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I2)

тип AppModeType [SWS_Os_91007] 📄 PDF

App Mode of the core shall be inherited from another core.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: e91976813761 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Перечислимый тип AppModeType определен в заголовочном файле Os.h и служит для задания режима приложения в операционной системе [SWS_Os_91007]. В многоядерных системах этот тип позволяет процессорному ядру наследовать режим приложения от другого Core [SWS_Os_91007].

Для диапазона значений специфицировано значение DONOTCARE [SWS_Os_91007]. Интерпретация: это значение, вероятно, служит для явной конфигурации Core таким образом, чтобы оно не запускало собственный режим, а перенимало поведение вышестоящего Core. Вопрос Q-2b7d9f1c8e5f1a3f (открытый) Специфические коды ошибок или возвращаемые значения для самого типа не определены.

С точки зрения диагностики и состояния системы актуально взаимодействие с инструментами анализа. Согласно [SWS_Os_00829] файл описания модуля ARTI должен поддерживать все контейнеры ORTI, чтобы подключенные средства отладки могли анализировать и отображать информацию об операционной системе и ее объектах. Отладочная информация ARTI предоставляет динамические атрибуты, которые вычисляются с помощью формул [SWS_Os_00829]. Интерпретация: состояние режима приложения, вероятно, отображается и считывается на уровне инструментов через соответствующие атрибуты объектов ARTI. Вопрос Q-410d011cbcf1b158 (открытый)

Это указание по использованию было сгенерировано автоматически на основе требований спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

тип ApplicationStateType [SWS_Os_00773] 📄 PDF

This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

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

Тип данных ApplicationStateType служит в операционной системе Classic AUTOSAR для однозначной идентификации состояния OS-Application [SWS_Os_00773]. Он специфицирован как скалярный базовый тип и предоставляется через заголовочный файл Os.h [SWS_Os_00773].

Допустимый диапазон значений ApplicationStateType охватывает три дискретных состояния для OS-Application [SWS_Os_00773]:

  • APPLICATION_ACCESSIBLE: указывает на то, что OS-Application готова к работе и к её ресурсам возможен доступ [SWS_Os_00773].
  • APPLICATION_RESTARTING: сигнализирует о том, что OS-Application в настоящее время находится на этапе перезапуска [SWS_Os_00773].
  • APPLICATION_TERMINATED: показывает, что работа OS-Application была завершена и дальнейшие действия не выполняются [SWS_Os_00773].

Что касается использования и взаимодействия с другими компонентами, этот тип, вероятно, служит в качестве возвращаемого значения или выходного параметра в соответствующих системных сервисах OS для мониторинга состояния, чтобы сообщать вызывающим сторонам текущий статус жизненного цикла приложения. Вопрос Q-9a4f2254f4013853 (открытый) Поскольку это элементарное определение типа, стандарт не определяет для него отдельных кодов ошибок, сообщений DET или DEM и не формулирует отдельных ограничений относительно контекста вызова или реентерабельности [SWS_Os_00773].

Этот текст был создан ИИ и основан на данных спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип ApplicationStateRefType [SWS_Os_00774] 📄 PDF

This data type points to location where a Application State Type can be stored.

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

Тип данных ApplicationStateRefType является составной частью операционной системы (модуль Os) в платформе AUTOSAR Classic и предоставляется через заголовочный файл Os.h [SWS_Os_00774]. Тип производен от указателя (pointer) и ссылается непосредственно на область памяти, в которой может быть сохранен статус приложения OS (Application State) [SWS_Os_00774].

Что касается практического применения, этот тип указателя служит для ссылки на состояния приложений: Интерпретация: в качестве типа указателя ApplicationStateRefType, вероятно, преимущественно используется в качестве ссылочного или выходного параметра в функциях запроса операционной системы, через которые состояние приложения OS передается вызывающей стороне. Вопрос Q-948bb914d3672a38 (открытый) Вызывающие стороны поэтому должны гарантировать, что перед передачей параметра выделена действительная, доступная для записи область памяти для целевого состояния, чтобы избежать некорректных обращений по указателю во время выполнения.

Специфические механизмы обработки ошибок, коды ошибок для DET или DEM, а также отдельные требования к реентерабельности и параллелизму для этого базового типа в спецификации отдельно не выделены [SWS_Os_00774]. Любые ограничения относительно разрешенного контекста вызова или соблюдения обязанностей по синхронизации вытекают исключительно из тех интерфейсов операционной системы, которые используют данный тип в сигнатурах своих функций.

Этот текст сгенерирован ИИ на основе спецификации.

Руководство разработчика реализации в подготовке (сложность I1)

тип TrustedFunctionParameterRefType [SWS_Os_00776] 📄 PDF

This data type points to a structure which holds the arguments for a call to a trusted function.

тип AccessType [SWS_Os_00777] 📄 PDF

This type holds information how a specific memory region can be accessed.

тип ObjectAccessType [SWS_Os_00778] 📄 PDF

This data type identifies if an OS - Application has access to an object.

тип MemoryStartAddressType [SWS_Os_00780] 📄 PDF

This data type is a pointer which is able to point to any location in the MCU address space.

тип ScheduleTableStatusType [SWS_Os_00784] 📄 PDF

This type describes the status of a schedule. The status can be one of the following: o The schedule table is not started (SCHEDULETABLE_ STOPPED) o The schedule table will be started after the end of currently running schedule table (sched ule table was used in Next Schedule Table() service) (SCHEDULETABLE_ NEXT) o The schedule table uses explicit synchronization, has been started and is waiting for the global time. (SCHEDULETABLE_ WAITING) o The schedule table is running, but is currently n ot synchronous to a global time source (SCHEDULETABLE_ RUNNING) o The schedule table is running and is synchronous to a global time source (SCHEDULETABLE_ RUNNING_ AND_ SYNCHRONOUS)

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

Тип ScheduleTableStatusType отображает согласно [SWS_Os_00784] текущий статус выполнения и синхронизации Schedule Table в операционной системе AUTOSAR. Он предоставляется через заголовочный файл Os.h и основан на зависящем от реализации диапазоне значений.

Специфицированы следующие значения статуса:

  • SCHEDULETABLE_STOPPED: Schedule Table не запущена.
  • SCHEDULETABLE_NEXT: Schedule Table запускается после истечения текущей активной Schedule Table (интерпретация: это происходит после передачи службе NextScheduleTable()). Вопрос Q-8cbcfc83969eea23 (открытый)
  • SCHEDULETABLE_WAITING: таблица расписания (Schedule Table) использует явную синхронизацию, уже запущена и ожидает синхронизации с глобальным временем.
  • SCHEDULETABLE_RUNNING: таблица расписания (Schedule Table) выполняется, однако в данный момент не синхронизирована с глобальным источником времени.
  • SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: таблица расписания (Schedule Table) выполняется и синхронизирована с глобальным источником времени.

Будучи исключительно типом данных состояния, ScheduleTableStatusType не определяет собственных ошибок времени выполнения или сообщений DET/DEM. Во взаимодействии с инструментами анализа данный тип согласно [SWS_Os_00829] служит для оценки и отображения динамических объектов операционной системы с поддержкой ARTI, благодаря чему отклонения состояний и синхронизации в системе могут прозрачно фиксироваться.

Этот текст был создан ИИ и основан на спецификации AUTOSAR R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип ScheduleTableStatusRefType [SWS_Os_00785] 📄 PDF

This data type points to a variable of the data type Schedule Table Status Type.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 316994fde661 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и определение

Тип данных ScheduleTableStatusRefType в соответствии с [SWS_Os_00785] определен как тип указателя на переменную типа данных Schedule Table Status Type. Данный тип предоставляется через заголовочный файл Os.h и служит в операционной системе AUTOSAR ссылочным типом для состояния таблицы расписания (Schedule Table) [SWS_Os_00785].

Применение и граничные условия

В типичных вызовах операционной системы этот тип указателя, вероятно, выступает в качестве выходного параметра, через который системная функция OS возвращает вызывающей стороне текущее состояние адресуемой Schedule Table. Вопрос Q-53364f3a9953dae3 (открытый) Поскольку спецификация определяет только определение типа, вызывающие компоненты при использовании должны учитывать следующее:

  • Выделение памяти: Перед передачей ссылки данного типа вызывающая сторона должна убедиться, что указатель ссылается на допустимую и доступную для записи область памяти, остающуюся действительной на протяжении всего вызова.
  • Действительность и нулевой указатель: Передача нулевого указателя (NULL) в зависимости от конфигурации операционной системы (стандартный или расширенный статус), вероятно, приведет к соответствующим сообщениям об ошибках вызываемых служб OS. Вопрос Q-63d77f8c7857e6c4 (открытый)
  • Защита памяти: В критически важных для безопасности многоядерных или защищенных по памяти средах OS адресуемая область памяти должна быть доступна для вызывающей задачи или экземпляра OS.

Поскольку [SWS_Os_00785] не определяет дополнительных свойств времени выполнения или специфических кодов ошибок для базового типа, реентерабельность и контекст вызова определяются соответствующими службами OS, использующими этот тип указателя в качестве параметра.

Это указание по использованию создано автоматически и базируется исключительно на данных спецификации из релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип ProtectionReturnType [SWS_Os_00787] 📄 PDF

This data type identifies a value which controls further actions of the OS on return from the protection hook.

тип RestartType [SWS_Os_00788] 📄 PDF

This data type defines the use of a Restart Task after terminating an OS - Application.

тип PhysicalTimeType [SWS_Os_00789] 📄 PDF

This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_(). AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

тип CoreIdType [SWS_Os_00790] 📄 PDF

Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID

тип SpinlockIdType [SWS_Os_00791] 📄 PDF

Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.

тип TryToGetSpinlockType [SWS_Os_00792] 📄 PDF

The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 9c58c4e8227f Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и диапазон значений

Тип перечисления TryToGetSpinlockType предоставляется через заголовочный файл Os.h и служит индикатором состояния, показывающим, удалось ли вызывающей стороне успешно захватить спинлок [SWS_Os_00792]. Он определяет результат соответствующих операций захвата в операционной системе [SWS_Os_00792].

Диапазон значений включает ровно два специфицированных литерала [SWS_Os_00792]:

  • TRYTOGETSPINLOCK_SUCCESS: сигнализирует о том, что спинлок удалось успешно захватить [SWS_Os_00792].
  • TRYTOGETSPINLOCK_NOSUCCESS: указывает, что спинлок захватить не удалось [SWS_Os_00792].

Параллелизм и системный контекст

Тип применяется при синхронизации в многоядерных системах. Интерпретация: вызывающая сторона, вероятно, синхронно оценивает возвращаемое значение, чтобы непосредственно определить, разрешено ли войти в защищенную критическую секцию или же при TRYTOGETSPINLOCK_NOSUCCESS необходимо без блокирующего ожидания выбрать альтернативную ветвь программы [SWS_Os_00792]. Вопрос Q-a04e72802dc41325 (открытый) Собственные коды ошибок или сообщения об ошибках через DET или DEM для этого типа не специфицированы [SWS_Os_00792].

Взаимодействие с диагностическими инструментами

В рамках интеграции с инструментами файл описания модуля ARTI поддерживает все контейнеры ORTI для отображения информации об операционной системе, ее состояниях и объектах операционной системы, а также для определения динамических значений [SWS_Os_00829]. Интерпретация: через такие интерфейсы спинлоки и состояния их захвата, вероятно, также могут визуализироваться для инструментов отладки и трассировки [SWS_Os_00829]. Вопрос Q-a488e055eb7d402e (открытый)

Этот текст был сгенерирован ИИ и основан на спецификациях AUTOSAR релиза R20-11.

Руководство разработчика реализации в подготовке (сложность I1)

тип IdleModeType [SWS_Os_00793] 📄 PDF

This data type identifies the idle mode behavior.

СОЗДАНО ИИ не проверено Модель: gemini-3.8-flash-medium · Усилие: medium · Температура: не регулируется · Промпт: 20e46b8167e3 Происхождение Открытые вопросы (2)
переведено с немецкого руководстваgemini-3.8-flash-low · 2026-10-13 · Немецкий оригинал

Использование и диапазон значений

Скалярный тип данных IdleModeType предоставляется через заголовочный файл Os.h и служит для спецификации поведения процессорного ядра в режиме холостого хода [SWS_Os_00793]. В определенном диапазоне значений задан режим IDLE_NO_HALT, при выборе которого процессорное ядро во время простоя не выполняет никаких специальных действий [SWS_Os_00793].

Интерпретация: поскольку IdleModeType является производным от скалярного базового типа, он, вероятно, служит в контексте операционной системы конфигурационным значением или параметром вызова для служб управления поведением ядра в режиме холостого хода. Вопрос Q-911a39efb537f1bc (открытый) Интерпретация: наряду со стандартным значением IDLE_NO_HALT конкретные реализации операционной системы или архитектуры микроконтроллеров потенциально могут предусматривать дополнительные режимы останова или энергосбережения, хотя выдержка из спецификации называет лишь отсутствие специфических действий. Вопрос Q-b6688f74cacbab45 (открытый)

Ограничения и обработка ошибок

Для IdleModeType в представленном объеме спецификации не указаны конкретные коды ошибок, сообщения DET или DEM, а также требования к реентерабельности или контекстам вызова [SWS_Os_00793]. Любые функциональные ограничения или предварительные условия вытекают исключительно из вышестоящих интерфейсов операционной системы, обрабатывающих этот тип.

Этот текст был сгенерирован ИИ на основе спецификации SWS_Os_00793.

Руководство разработчика реализации в подготовке (сложность I1)

тип AreaIdType [SWS_Os_91000] 📄 PDF

Area Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify Peripheral X AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

тип StatusType [SWS_Os_00002] 📄 PDF

typedef uint8 StatusType;

This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).

Руководство разработчика реализации в подготовке (сложность I2)

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

Record
AUTOSAR/AP/record/CP_MOD_Os
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_Os@rel:R20-11#90d84b7e
Content hash
90d84b7e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_OS.pdf#nameddest=SWS_Os_00016

Карта тем

Callout-функции и ожидаемые интерфейсы

1

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

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

Сервисы · Get…

GetApplicationID функция

This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller originally belongs to (was configured t o).

ApplicationType GetApplicationID (void);
GetApplicationState функция

This service returns the current state of an OS - Application.

StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);
GetCoreID функция

The function returns a unique core identifier.

CoreIdType GetCoreID (void);
GetCounterValue функция

This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter).

StatusType GetCounterValue (CounterType CounterID, TickRefType Value);

This service determines the OS - Application where the caller of the service is currently executing. Note that if the caller is not within a Call Trusted Function() call the value is eq ual to the result of Get Application ID().

ApplicationType GetCurrentApplicationID (void);
GetElapsedValue функция

This service gets the number of ticks between the current tick value and a previously read tick value.

StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);
GetISRID функция

This service returns the identifier of the currently executing ISR.

ISRType GetISRID (void);

The function returns the number of cores activated by the Start Core function. This function might be a macro. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

uint32 GetNumberOfActivatedCores (void);
GetScheduleTableStatus функция

This service queries the state of a schedule table (also with respect to synchronization).

StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);
GetSpinlock функция

Get Spinlock tries to occupy a spin - lock variable. If the function returns, either the lock is successfully taken or an error has occurred. The spinlock mechanism is an active polling mechanism. The function does not cause a de - scheduling.

StatusType GetSpinlock (SpinlockIdType SpinlockId);

Сервисы · Start…

StartCore функция

It is not supported to call this function after Start OS(). The function starts the core specified by the parameter Core ID. The OUT parameter allows the caller to check whether the operation was successful or no t. If a core is started by means of this function Start OS shall be called on the core.

void StartCore (CoreIdType CoreID, StatusType* Status);
StartNonAutosarCore функция

The function start s the core specified by the parameter Core ID. It is allowed to call this function after Start OS(). The OUT parameter allows the caller to check whether the operation was successful or not. It is not allowed to call Start OS on cores activated by Start No n Autosar Core. Otherwise the behaviour is unspecified.

void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);
StartScheduleTableAbs функция

This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.

StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);
StartScheduleTableRel функция

This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.

StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);

This service starts an explicitly synchronized schedule table synchronously.

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

Сервисы · Check…

CheckISRMemoryAccess функция

This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is part of the stack space.

AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);
CheckObjectOwnership функция

This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs

ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);
CheckTaskMemoryAccess функция

This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region is part of the stack space.

AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);

Сервисы · Modify…

ModifyPeripheral16 функция

This service modifies a given memory location () with the formula: * = ((* & ) | )

StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);
ModifyPeripheral32 функция

This service modifies a given memory location () with the formula: * = ((* & ) | )

StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);
ModifyPeripheral8 функция

This service modifies a given memory location () with the formula: * = ((* & ) | )

StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);

Сервисы · Read…

ReadPeripheral16 функция

This service returns the content of a given memory location (

StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);
ReadPeripheral32 функция

This service returns the content of a given memory location (

StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);
ReadPeripheral8 функция

This service returns the content of a given memory location (

StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);

Сервисы · Write…

WritePeripheral16 функция

This service writes the to a given memory location (). Available vi a Os.h

StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);
WritePeripheral32 функция

This service writes the to a given memory location ().

StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);
WritePeripheral8 функция

This service writes the to a given memory location (). Available vi a Os.h

StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);

Сервисы · Прочее

This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter, Alarm or Schedule Table in API calls.

ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);
ActivateTaskAsyn функция

Asynchronous version of the Activate Task() function. Intended to be used for cross core task activation. Possible errors are not returned to the caller, but may be reported via error hooks.

void ActivateTaskAsyn (TaskType id);
AllowAccess функция

This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.

StatusType AllowAccess (void);
CallTrustedFunction функция

A (trusted or non - trusted) OS - Application uses this service to call a trusted function

StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);
ClearPendingInterrupt функция

Service ClearPendingInterrupt.

StatusType ClearPendingInterrupt (ISRType ISRID);
ControlIdle функция

This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.g. if no Task/ ISR is active). It can be used to implement energy savings. The real idle modes are hardware dependent and not standardized. The default idle mode on each core is IDLE_ NO_ HALT.

StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);
DisableInterruptSource функция

Disables the interrupt source by modifying the interrupt controller registers.

StatusType DisableInterruptSource (ISRType ISRID);
EnableInterruptSource функция

Service EnableInterruptSource.

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);
IncrementCounter функция

This service increments a software counter.

StatusType IncrementCounter (CounterType CounterID);
IocInit функция

This service initializes the data structures of the IOC. Tags: atp.Status=draft

void IocInit (void);
NextScheduleTable функция

This service switches the processing from one schedule table to another schedule table.

StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);
ProtectionHook функция

The protection hook is always called if a serious error occurs. E.g. exceeding the worst case execution time or violating against the memory protection.

ProtectionReturnType ProtectionHook (StatusType Fatalerror);
ReleaseSpinlock функция

Release Spinlock releases a spinlock variable that was occupied before. Before terminating a TASK all spinlock variables that have been occupied with Get Spinlock() shall be released. Before calling Wait EVENT all Spinlocks shall be released.

StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);
SetEventAsyn функция

Asynchronous version of the Set Event() function. Intended to be used for cross core event setting. Possible errors are not returned to the caller, but may be reported via error hooks.

void SetEventAsyn (TaskType id, EventMaskType m);
SetScheduletableAsync функция

This service stops synchronization of a schedule table.

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);
ShutdownAllCores функция

After this service the OS on all AUTOSAR cores is shut down. Allowed at TASK level and ISR level and also internally by the OS. The function will never return. The function will force other cores into a shutdown.

void ShutdownAllCores (StatusType Error);
StopScheduleTable функция

This service cancels the processing of a schedule table immediately at any point while the schedule table is running.

StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);
SyncScheduleTable функция

Service SyncScheduleTable.

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);
TerminateApplication функция

Service TerminateApplication.

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);
TryToGetSpinlock функция

Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by a TASK on a d ifferent core the function sets the OUT parameter "Success" and returns with E_ OK.

StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);

Callout-функции и ожидаемые интерфейсы

<ReceiverPullCB> функция

This callback function can be configured for the receiver of a communication. If configured, IOC calls this callback on the receiving core for each data reception. is the callback function name configured by the receiver in the Os Ioc Re ceiver Pull CB attribute to be called on data reception."

void <ReceiverPullCB> (void);

Типы

AccessType тип

This type holds information how a specific memory region can be accessed.

AlarmType тип

This data type represents an AUTOSAR OS alarm identifier.

typedef uint8 AlarmType;

This data type points to location where a Application State Type can be stored.

This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

This data type identifies the OS - Application.

App Mode of the core shall be inherited from another core.

AreaIdType тип

Area Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify Peripheral X AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

CoreIdType тип

Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID

This data type identifies a counter.

This data type represents an event mask for extended tasks.

This data type identifies the idle mode behavior.

ISRType тип

This data type identifies an interrupt service routine (ISR).

This data type holds the size (in bytes) of a memory region.

This data type is a pointer which is able to point to any location in the MCU address space.

This data type identifies if an OS - Application has access to an object.

ObjectType тип

This data type identifies an object.

This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_(). AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS

This data type identifies a value which controls further actions of the OS on return from the protection hook.

This data type defines the use of a Restart Task after terminating an OS - Application.

This data type points to a variable of the data type Schedule Table Status Type.

This type describes the status of a schedule. The status can be one of the following: o The schedule table is not started (SCHEDULETABLE_ STOPPED) o The schedule table will be started after the end of currently running schedule table (sched ule table was used in Next Schedule Table() service) (SCHEDULETABLE_ NEXT) o The schedule table uses explicit synchronization, has been started and is waiting for the global time. (SCHEDULETABLE_ WAITING) o The schedule table is running, but is currently n ot synchronous to a global time source (SCHEDULETABLE_ RUNNING) o The schedule table is running and is synchronous to a global time source (SCHEDULETABLE_ RUNNING_ AND_ SYNCHRONOUS)

This data type identifies a schedule table.

Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.

StatusType тип

This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).

typedef uint8 StatusType;
TaskType тип

This data type identifies an AUTOSAR OS task.

typedef uint8 TaskType;
TickType тип

This data type represents count values in ticks.

typedef uint32 TickType;

The total number of cores

This data type identifies a trusted function.

This data type points to a structure which holds the arguments for a call to a trusted function.

The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.