AUTOSAR Classic Operating System
Руководство по кластеруСОЗДАНО ИИ
Обеспечивает детерминированное планирование реального времени, защиту памяти, многоядерную синхронизацию и локализацию ошибок.
Обеспечивает детерминированное планирование реального времени, защиту памяти, многоядерную синхронизацию и локализацию ошибок.
Модульный кластер Operating System обеспечивает детерминированное планирование реального времени для задач и ISR, а также защиту памяти и изоляцию ошибок в секционированных OS-Applications [SWS_Os_00445]. Он поддерживает многоядерные системы благодаря межъядерным спинлокам, асинхронной активации задач и Inter-OS-Application Communicator (IOC) [SWS_Os_00686], [SWS_Os_00824]. При возникновении нарушений защиты OS через конфигурируемые хуки позволяет целенаправленно завершать или контролируемо перезапускать отдельные разделы во время выполнения ApplicationLevelErrorHandling с. 53.
Модульный кластер «Operating System» в AUTOSAR Classic предоставляет фундаментальную инфраструктуру выполнения и защиты для программных компонентов и модулей базового программного обеспечения. Операционная система инкапсулирует такие ресурсы, как задачи, ISR, сигналы тревоги и счетчики, в OS-Applications [SWS_Os_00445], разделяя при этом доверенные (trusted) и недоверенные разделы [SWS_Os_00446] для обеспечения строгой локализации ошибок на основе защиты памяти MPU SafetyConceptStatusReport с. 49. В многоядерных системах OS управляет логическими ядрами с помощью стандартизированных ID ядер [SWS_Os_00790] и предоставляет Inter-OS-Application Communicator (IOC) для обмена данными и событиями между ядрами и разделами [SWS_Os_00824].
Контекстная диаграмма: встраивание кластера OS в архитектуру базового программного обеспечения AUTOSAR и интерфейсы к EcuM, StbM, RTE и аппаратному обеспечению. Источники: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral с. 48.
Наряду с событийно-управляемым планированием задач OS обеспечивает управление выполнением по времени с помощью Schedule Tables [SWS_Os_00783]. Они могут синхронизироваться с глобальными базисами времени автомобиля через Synchronized Time-Base Manager (StbM) с помощью SyncScheduleTable [SWS_Os_00199], SWS_SynchronizedTimeBaseManager с. 220. Для синхронизации между ядрами модуль предлагает низкоуровневые спинлоки со встроенным обнаружением взаимных блокировок [SWS_Os_00686], в то время как межъядерные активации задач могут выполняться асинхронно с помощью ActivateTaskAsyn [SWS_Os_91022].
В случае сбоя (например, при превышении пределов памяти) OS активирует ProtectionHook [SWS_Os_00538]. С помощью его возвращаемого значения сбойная OS-Application может быть изолирована и контролируемо завершена либо заново инициализирована через выделенную задачу перезапуска без сброса всей системы [SWS_Os_00787], ApplicationLevelErrorHandling с. 53.
Диаграмма состояний: жизненный цикл и состояния секционирования AUTOSAR OS-Application в случае сбоя. Источники: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling с. 53.
1. Системная архитектура и роль модульного кластера
Модульный кластер «Operating System» образует в многоуровневой модели AUTOSAR фундаментальную основу System Services для выполнения и координации всех программных компонентов реального времени и модулей Basic Software. Базовый модуль [SWS_Os_00445] инкапсулирует задачи (Tasks), процедуры обработки прерываний (ISRs), алармы (Alarms), счетчики (Counters) и таблицы расписания (Schedule Tables) в конфигурируемых единицах выполнения, так называемых OS-Applications. При этом операционная система строго различает доверенные (trusted) и недоверенные (non-trusted) OS-Applications [SWS_Os_00446], чтобы обеспечить функциональную безопасность и защиту памяти в соответствии с требуемыми классами масштабируемости SafetyConceptStatusReport с. 49.
В многоядерных архитектурах OS управляет логическими ядрами, на которые ссылаются через уникальные идентификаторы типа CoreIdType [SWS_Os_00790]. Идентификаторы ядер отсчитываются от нуля и расположены последовательно [SWS_Os_00825], при этом константа OS_CORE_ID_MASTER обозначает мастер-ядро SWS_OS с. 111. Через встроенный Inter-OS-Application Communicator (IOC) операционная система предоставляет механизмы для безопасной передачи данных между разделами и ядрами [SWS_Os_00824]. За счет стандартизации интерфейсов согласно OSEK OS и их AUTOSAR-специфичных расширений OS гарантирует детерминированное поведение в реальном времени для вышестоящих модулей, таких как ECU State Manager (EcuM), Synchronized Time-Base Manager (StbM), а также среда выполнения RTE SWS_BSWGeneral с. 48.
Контекстная диаграмма: встраивание кластера OS в архитектуру базового программного обеспечения AUTOSAR и интерфейсы к EcuM, StbM, RTE и аппаратному обеспечению. Источники: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral с. 48.
2. Взаимодействие и пути интеракции между модулями
Взаимодействие между объектами OS и уровнями архитектуры AUTOSAR осуществляется по четко разграниченным путям управления и данных. Для межраздельного обмена данными IOC генерирует типизированные коммуникационные функции с семантикой без очередей («data», IocWrite / IocRead) или с очередями («event», IocSend / IocReceive) [SWS_Os_00718], [SWS_Os_00738]. При групповых передачах используются службы IocSendGroup и IocReceiveGroup соответственно [SWS_Os_00728], [SWS_Os_00746]. Если внутренний буфер приемника переполняется, IOC сигнализирует об этом отправителю со статусом IOC_E_LIMIT и фиксирует IOC_E_LOST_DATA для последующих операций чтения SWS_OS с. 225.
Если недоверенная OS-Application должна получить доступ к привилегированным службам доверенного раздела, контролируемое переключение контекста выполняется через системную службу CallTrustedFunction [SWS_Os_00097]. При этом параметры передаются через структуру указателей типа TrustedFunctionParameterRefType [SWS_Os_00776]. Операционная система временно переключает полномочия MPU на полномочия целевого приложения SWS_OS с. 172. Функция GetCurrentApplicationID во время этого выполнения возвращает идентификатор вызванной Trusted Application, тогда как GetApplicationID возвращает исходное вызывающее приложение [SWS_Os_00797].
Для временного согласования с внешними базисами времени модуль StbM синхронизирует явно сконфигурированные Schedule Tables через интерфейсы OS. Сначала StbM циклически опрашивает состояние синхронизации через GetScheduleTableStatus [SWS_Os_00227], а затем передает текущее значение синхронизации в OS с помощью SyncScheduleTable [SWS_Os_00199]. После этого операционная система вычисляет отклонение от точек истечения (Expiry Points) и ступенчато корректирует времена задержки, пока таблица не начнет выполняться синхронно с глобальным базисом времени SWS_OS с. 57, SWS_SynchronizedTimeBaseManager с. 220.
Диаграмма последовательности: явная синхронизация OS-Schedule-Table менеджером Synchronized Time-Base Manager (StbM). Источники: [SWS_Os_00199], [SWS_Os_00227], SWS_SynchronizedTimeBaseManager с. 220.
3. Синхронизация, реентерабельность и контексты задач
Модель времени выполнения четко различает уровень задач, уровни прерываний категории 1 (Cat 1 ISR) и категории 2 (Cat 2 ISR), а также хук-процедуры. В то время как Cat 1 ISR выполняются без накладных расходов операционной системы и не могут вызывать службы OS, Cat 2 ISR полностью управляются OS [SWS_Os_00782]. Активный идентификатор ISR можно определить с помощью GetISRID; при вызове вне Cat 2 ISR служба возвращает INVALID_ISR [SWS_Os_00511]. Отдельными источниками прерываний можно целенаправленно управлять на уровне контроллера прерываний через EnableInterruptSource, DisableInterruptSource и ClearPendingInterrupt [SWS_Os_91020], [SWS_Os_91019], [SWS_Os_91021].
Для синхронизации критических секций между границами процессорных ядер OS предоставляет спинлоки [SWS_Os_00791]. Спинлок захватывается синхронно с блокировкой с помощью GetSpinlock [SWS_Os_00686] или опрашивается без блокировки через TryToGetSpinlock [SWS_Os_00703]. Освобождение выполняется через ReleaseSpinlock [SWS_Os_00695]. Чтобы исключить взаимоблокировки (deadlocks), OS в расширенном статусе выполняет проверку на ошибки вложенности и перекрытия (E_OS_INTERFERENCE_DEADLOCK, E_OS_NESTING_DEADLOCK) SWS_OS с. 199.
Для межъядерных активаций задач и установки событий OS предоставляет асинхронные варианты API: ActivateTaskAsyn и SetEventAsyn немедленно возвращают управление вызывающей стороне, не дожидаясь выполнения на целевом ядре [SWS_Os_91022], [SWS_Os_91023]. Возможные ошибки при этом не возвращаются вызывающей стороне, а протоколируются через сконфигурированные Error-Hooks [SWS_Os_00816], SWS_OS с. 203.
4. Типичные жизненные циклы и режимы работы
Запуск системы в решающей степени координируется ECU State Manager (EcuM). На мастер-ядре EcuM перед запуском операционной системы запускает подчиненные ядра через службу OS StartCore [SWS_Os_00676], SWS_ECUStateManager с. 82. Затем каждое запущенное ядро автономно вызывает StartOS. После вызова StartOS операционная система переводит все сконфигурированные OS-Applications в состояние APPLICATION_ACCESSIBLE, прежде чем будут выполнены Startup-Hooks SWS_OS с. 62. Количество успешно запущенных ядер можно запросить во время выполнения с помощью GetNumberOfActivatedCores SWS_OS с. 196.
Schedule Tables подчиняются четко определенному конечному автомату состояний. Их можно запустить абсолютно через StartScheduleTableAbs [SWS_Os_00358], относительно через StartScheduleTableRel [SWS_Os_00347] или синхронно через StartScheduleTableSynchron [SWS_Os_00201]. Таблицы можно объединять в цепочки (NextScheduleTable, состояние SCHEDULETABLE_NEXT) [SWS_Os_00191] или с помощью StopScheduleTable немедленно переводить в состояние покоя SCHEDULETABLE_STOPPED [SWS_Os_00006]. Текущую явную синхронизацию можно прервать с помощью SetScheduleTableAsync, при этом обработка Expiry Points продолжается [SWS_Os_00422].
Для режимов энергосбережения при простое OS предлагает интерфейс ControlIdle, с помощью которого EcuM может конфигурировать состояние покоя отдельных ядер [SWS_Os_00769]. При завершении работы EcuM координирует деинициализацию всех уровней и в завершение вызывает ShutdownAllCores или ShutdownOS для контролируемой остановки всей системы SWS_ECUStateManager с. 90.
5. Обработка ошибок, трассировка DET и деградация
Нарушения защиты (такие как превышение границ памяти или нарушения таймингов) приводят к активации глобального ProtectionHook [SWS_Os_00538]. На основе ошибки хук принимает решение о стратегии восстановления (recovery) через возвращаемое значение типа ProtectionReturnType [SWS_Os_00787]: завершение вызвавшей сущности (PRO_TERMINATETASKISR), полное завершение затронутого раздела (PRO_TERMINATEAPPL), инициация контролируемого перезапуска раздела (PRO_TERMINATEAPPL_RESTART) или завершение работы блока управления (PRO_SHUTDOWN) ApplicationLevelErrorHandling с. 60.
Если OS-Application завершается или перезапускается, OS переводит ее из состояния APPLICATION_ACCESSIBLE в APPLICATION_RESTARTING или APPLICATION_TERMINATED [SWS_Os_00773]. Все активные задачи, ISR, алармы и Schedule Tables раздела немедленно останавливаются, а все прерывания отключаются [SWS_Os_00447]. В состоянии APPLICATION_RESTARTING монопольно выполняется OsRestartTask для выполнения очистки перед тем, как нормальный режим работы будет снова разрешен ApplicationLevelErrorHandling с. 53, ApplicationLevelErrorHandling с. 76.
Диаграмма состояний: жизненный цикл и состояния секционирования AUTOSAR OS-Application в случае сбоя. Источники: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling с. 53.
Для превентивного предотвращения ошибок операционная система предлагает функции проверки защиты памяти, такие как CheckTaskMemoryAccess и CheckISRMemoryAccess [SWS_Os_00512], [SWS_Os_00513], а также проверки прав доступа через CheckObjectAccess и CheckObjectOwnership [SWS_Os_00256], [SWS_Os_00017]. С помощью этих стандартизированных проверок можно гарантировать, что недоверенные компоненты не совершат несанкционированный доступ на запись или выполнение в памяти SWS_OS с. 73.
Контекст данного руководства: составлено на основе спецификаций AUTOSAR Classic для релиза R20-11. Все интерфейсы и переходы состояний строго подтверждены указанными требованиями SWS.
Das AUTOSAR Operating System ist ein statisch konfiguriertes, echtzeitfähiges preemptives Betriebssystem nach OSEK/VDX mit Tasks, Events, Alarmen, Schedule-Tables und Speicherschutz.
Module im Cluster
Сервисы · Get…
Сервисы · Start…
Сервисы · Check…
Сервисы · Modify…
Сервисы · Read…
Сервисы · Write…
Сервисы · Прочее
AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceIncrementCounterIocInitNextScheduleTableProtectionHookReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlockCallout-функции и ожидаемые интерфейсы
<ReceiverPullCB>Типы
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockTypeФункции
<ReceiverPullCB>AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionCheckISRMemoryAccessCheckObjectOwnershipCheckTaskMemoryAccessClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceGetApplicationIDGetApplicationStateGetCoreIDGetCounterValueGetCurrentApplicationIDGetElapsedValueGetISRIDGetNumberOfActivatedCoresGetScheduleTableStatusGetSpinlockIncrementCounterIocInitModifyPeripheral16ModifyPeripheral32ModifyPeripheral8NextScheduleTableProtectionHookReadPeripheral16ReadPeripheral32ReadPeripheral8ReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStartCoreStartNonAutosarCoreStartScheduleTableAbsStartScheduleTableRelStartScheduleTableSynchronStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlockWritePeripheral16WritePeripheral32WritePeripheral8Типы
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockTypeКарта тем
Os
79Для этого релиза нет данных об элементах
Os
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);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 ...);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);This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.
StatusType AllowAccess (void);A (trusted or non - trusted) OS - Application uses this service to call a trusted function
StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);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);This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs
ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);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);Service ClearPendingInterrupt.
StatusType ClearPendingInterrupt (ISRType ISRID);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);Disables the interrupt source by modifying the interrupt controller registers.
StatusType DisableInterruptSource (ISRType ISRID);Service EnableInterruptSource.
StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);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);This service returns the current state of an OS - Application.
StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);The function returns a unique core identifier.
CoreIdType GetCoreID (void);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);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);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);This service queries the state of a schedule table (also with respect to synchronization).
StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);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);This service increments a software counter.
StatusType IncrementCounter (CounterType CounterID);This service initializes the data structures of the IOC. Tags: atp.Status=draft
void IocInit (void);This service modifies a given memory location () with the formula: * = ((* & ) | )
StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )
StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )
StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);This service switches the processing from one schedule table to another schedule table.
StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);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);This service returns the content of a given memory location (
StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);This service returns the content of a given memory location (
StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);This service returns the content of a given memory location (
StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);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);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);This service stops synchronization of a schedule table.
StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);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);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);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);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);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);This service cancels the processing of a schedule table immediately at any point while the schedule table is running.
StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);Service SyncScheduleTable.
StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);Service TerminateApplication.
StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);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);This service writes the to a given memory location (). Available vi a Os.h
StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);This service writes the to a given memory location ().
StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);This service writes the to a given memory location (). Available vi a Os.h
StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);This type holds information how a specific memory region can be accessed.
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.
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
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.
typedef uint32 EventMaskType;This data type identifies the idle mode behavior.
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.
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.
This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).
typedef uint8 StatusType;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.
gemini-3.8-flash-low· 2026-10-13 · Немецкий оригинал