DEENESPTFRRUARHIKOZHNL

AUTOSAR Classic Operating System

Cluster guideAI-GENERATED

Provides deterministic real-time scheduling, memory protection, multi-core synchronization, and error containment.
AI-GENERATED unreviewed Model: gemini-3.8-flash-medium · Effort: medium · Temperature: not controllable · Prompt: 9b7f8380b9ff Provenance
Causal anchor: R20-11 Valid from R20-11 Synthesized for this specification release.
translated from the German guidegemini-3.8-flash-low · 2026-10-13 · German original

Provides deterministic real-time scheduling, memory protection, multi-core synchronization, and error containment.

The module cluster Operating System provides deterministic real-time scheduling for tasks and ISRs as well as memory protection and fault containment in partitioned OS-Applications [SWS_Os_00445]. It supports multi-core systems through cross-core spinlocks, asynchronous task activation, and the Inter-OS-Application Communicator (IOC) [SWS_Os_00686], [SWS_Os_00824]. When protection violations occur, the OS enables the targeted termination or controlled restart of individual partitions at runtime via configurable hooks ApplicationLevelErrorHandling p. 53.

In AUTOSAR Classic, the module cluster "Operating System" provides the fundamental execution and protection infrastructure for software components and Basic Software modules. The Operating System encapsulates resources such as tasks, ISRs, alarms, and counters in OS-Applications [SWS_Os_00445] and distinguishes between trusted and non-trusted partitions [SWS_Os_00446] in order to ensure strict fault containment based on MPU memory protection SafetyConceptStatusReport p. 49. In multicore systems, the OS manages logical cores via standardized core IDs [SWS_Os_00790] and provides the Inter-OS-Application Communicator (IOC) for data- and event-based exchange between cores and partitions [SWS_Os_00824].

os_architecture cluster_os Operating System (OS) RTE Runtime Environment (RTE) OS_KERNEL OS Core / Scheduler (Tasks, ISRs, Events) RTE->OS_KERNEL ActivateTask(), SetEvent(), CallTrustedFunction() IOC Inter-OS-Application Communicator (IOC) RTE->IOC IocSend(), IocWrite(), IocReceive(), IocRead() ECUM ECU State Manager (EcuM) ECUM->OS_KERNEL StartCore(), StartOS(), ShutdownAllCores() STBM Synchronized Time-Base Manager (StbM) ST_MGM Schedule Table & Counter Management STBM->ST_MGM SyncScheduleTable(), GetScheduleTableStatus() PROT Protection & Memory Access Control OS_KERNEL->PROT Fault containment HW Microcontroller / MPU / Core HW OS_KERNEL->HW Spinlocks, Timer, IRQ Ctrl PROT->HW MPU-Konfiguration, Privilege Level

Context diagram: Embedding of the OS cluster into the AUTOSAR Basic Software architecture and interfaces to EcuM, StbM, RTE, and hardware. Sources: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral p. 48.

In addition to event-driven task scheduling, the OS enables time-triggered execution tracking via Schedule Tables [SWS_Os_00783]. These can be adjusted to global vehicle time bases via the Synchronized Time-Base Manager (StbM) using SyncScheduleTable [SWS_Os_00199], SWS_SynchronizedTimeBaseManager p. 220. For synchronization across core boundaries, the module provides hardware-related spinlocks with integrated deadlock detection [SWS_Os_00686], while cross-core task activations can be executed asynchronously with ActivateTaskAsyn [SWS_Os_91022].

In case of an error (such as memory violations), the OS activates the ProtectionHook [SWS_Os_00538]. Via its return value, a faulty OS-Application can be isolated and terminated in a controlled manner or re-initialized via a dedicated restart task without resetting the overall system [SWS_Os_00787], ApplicationLevelErrorHandling p. 53.

app_lifecycle init ACCESSIBLE APPLICATION_ACCESSIBLE (Normalbetrieb, Tasks/ISRs aktiv) init->ACCESSIBLE StartOS() RESTARTING APPLICATION_RESTARTING (quarantine, only OsRestartTask active) ACCESSIBLE->RESTARTING ProtectionHook() -> PRO_TERMINATEAPPL_RESTART or TerminateApplication(RESTART) TERMINATED APPLICATION_TERMINATED (Endzustand, Partition deaktiviert) ACCESSIBLE->TERMINATED ProtectionHook() -> PRO_TERMINATEAPPL or TerminateApplication(NO_RESTART) RESTARTING->ACCESSIBLE OsRestartTask beendet Bereinigung & schaltet Partition frei RESTARTING->TERMINATED Error during restart or escalation

State diagram: Lifecycle and partitioning states of an AUTOSAR OS-Application in case of an error. Sources: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling p. 53.

1. System Architecture & Role of the Module Cluster

In the AUTOSAR layered model, the module cluster "Operating System" forms the fundamental foundation of the System Services for executing and coordinating all real-time software components and Basic Software modules. The core module [SWS_Os_00445] encapsulates tasks, interrupt service routines (ISRs), alarms, counters, and schedule tables in configurable execution units, the so-called OS-Applications. Here, the Operating System strictly distinguishes between trusted and non-trusted OS-Applications [SWS_Os_00446] in order to provide functional safety and memory protection according to the required scalability classes SafetyConceptStatusReport p. 49.

In multicore architectures, the OS manages logical cores that are referenced via unique identifiers of type CoreIdType [SWS_Os_00790]. The core IDs are zero-based and consecutively arranged [SWS_Os_00825], where the constant OS_CORE_ID_MASTER designates the master core SWS_OS p. 111. Via the integrated Inter-OS-Application Communicator (IOC), the Operating System provides mechanisms for secure, cross-partition, and cross-core data transmission [SWS_Os_00824]. By standardizing the interfaces according to OSEK OS and their AUTOSAR-specific extensions, the OS guarantees deterministic real-time behavior for higher-level modules such as the ECU State Manager (EcuM), the Synchronized Time-Base Manager (StbM), and the runtime environment RTE SWS_BSWGeneral p. 48.

os_architecture cluster_os Operating System (OS) RTE Runtime Environment (RTE) OS_KERNEL OS Core / Scheduler (Tasks, ISRs, Events) RTE->OS_KERNEL ActivateTask(), SetEvent(), CallTrustedFunction() IOC Inter-OS-Application Communicator (IOC) RTE->IOC IocSend(), IocWrite(), IocReceive(), IocRead() ECUM ECU State Manager (EcuM) ECUM->OS_KERNEL StartCore(), StartOS(), ShutdownAllCores() STBM Synchronized Time-Base Manager (StbM) ST_MGM Schedule Table & Counter Management STBM->ST_MGM SyncScheduleTable(), GetScheduleTableStatus() PROT Protection & Memory Access Control OS_KERNEL->PROT Fault containment HW Microcontroller / MPU / Core HW OS_KERNEL->HW Spinlocks, Timer, IRQ Ctrl PROT->HW MPU-Konfiguration, Privilege Level

Context diagram: Embedding of the OS cluster into the AUTOSAR Basic Software architecture and interfaces to EcuM, StbM, RTE, and hardware. Sources: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral p. 48.

2. Interplay & Interaction Paths between the Modules

The interaction between the OS objects and the layers of the AUTOSAR architecture takes place via sharply delimited control and data paths. For cross-partition data exchange, the IOC generates typed communication functions with unqueued ("data", IocWrite / IocRead) or queued semantics ("event", IocSend / IocReceive) [SWS_Os_00718], [SWS_Os_00738]. For group transmissions, the services IocSendGroup and IocReceiveGroup are used [SWS_Os_00728], [SWS_Os_00746]. If an internal buffer of the receiver becomes full, the IOC signals this to the sender with the status IOC_E_LIMIT and records a IOC_E_LOST_DATA for subsequent read operations SWS_OS p. 225.

When a non-trusted OS-Application needs to access privileged services of a trusted partition, the controlled context switch takes place via the system service CallTrustedFunction [SWS_Os_00097]. Here, the parameters are passed via a pointer structure of type TrustedFunctionParameterRefType [SWS_Os_00776]. The Operating System temporarily switches the MPU permissions to those of the target application SWS_OS p. 172. During this execution, the function GetCurrentApplicationID returns the identifier of the called Trusted Application, whereas GetApplicationID yields the original caller application [SWS_Os_00797].

For temporal coordination with external time bases, the module StbM synchronizes explicitly configured Schedule Tables via the OS interfaces. StbM first queries the synchronization state cyclically via GetScheduleTableStatus [SWS_Os_00227] and then passes the current synchronization value to the OS using SyncScheduleTable [SWS_Os_00199]. The Operating System then calculates the deviation from the expiry points and adjusts the delay times incrementally until the table runs synchronously with the global time base SWS_OS p. 57, SWS_SynchronizedTimeBaseManager p. 220.

Explicit synchronization of an OS schedule tableStbMOsGetScheduleTableStatus(ScheduleTableID, &ScheduleStatus)E_OK (Status: SCHEDULETABLE_RUNNING / WAITING)altStatus == WAITING | RUNNING | RUNNING_AND_SYNCHRONOUSSyncScheduleTable(ScheduleTableID, GlobalTimeTick)Calculate drift between local table and time baseApply delay adjustment at expiry pointsE_OKAbweichung <= OsScheduleTblExplicitPrecisionSetze Zustand: SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS

Sequence diagram: Explicit synchronization of an OS Schedule Table by the Synchronized Time-Base Manager (StbM). Sources: [SWS_Os_00199], [SWS_Os_00227], SWS_SynchronizedTimeBaseManager p. 220.

3. Synchronization, Reentrancy, and Task Contexts

The runtime model clearly distinguishes between task level, interrupt levels of category 1 (Cat 1 ISR) and category 2 (Cat 2 ISR), as well as hook routines. While Cat 1 ISRs run without Operating System overhead and must not call any OS services, Cat 2 ISRs are completely managed by the OS [SWS_Os_00782]. The active ISR identifier can be determined using GetISRID; when called outside a Cat 2 ISR, the service returns INVALID_ISR [SWS_Os_00511]. Individual interrupt sources can be controlled selectively at the interrupt controller level via EnableInterruptSource, DisableInterruptSource, and ClearPendingInterrupt [SWS_Os_91020], [SWS_Os_91019], [SWS_Os_91021].

To synchronize critical sections across processor core boundaries, the OS provides spinlocks [SWS_Os_00791]. A spinlock is occupied in a synchronous blocking manner with GetSpinlock [SWS_Os_00686] or queried in a non-blocking manner via TryToGetSpinlock [SWS_Os_00703]. The release takes place via ReleaseSpinlock [SWS_Os_00695]. To prevent deadlocks, the OS checks for nesting and overlap errors (E_OS_INTERFERENCE_DEADLOCK, E_OS_NESTING_DEADLOCK) in extended status SWS_OS p. 199.

For cross-core task activations and event setting, the OS provides asynchronous API variants: ActivateTaskAsyn and SetEventAsyn return immediately to the caller without waiting for execution on the target core [SWS_Os_91022], [SWS_Os_91023]. Possible errors are not returned to the caller, but logged via configured error hooks [SWS_Os_00816], SWS_OS p. 203.

4. Typical Lifecycles and Operating Modes

The system startup is primarily coordinated by the ECU State Manager (EcuM). On the master core, EcuM starts subordinate cores prior to the Operating System startup via the OS service StartCore [SWS_Os_00676], SWS_ECUStateManager p. 82. Subsequently, each started core calls StartOS autonomously. After the call to StartOS, the Operating System transitions all configured OS-Applications into the state APPLICATION_ACCESSIBLE before startup hooks are executed SWS_OS p. 62. The number of successfully booted cores can be queried at runtime with GetNumberOfActivatedCores SWS_OS p. 196.

Schedule Tables are subject to a clearly defined state machine. They can be started absolutely via StartScheduleTableAbs [SWS_Os_00358], relatively via StartScheduleTableRel [SWS_Os_00347], or synchronously via StartScheduleTableSynchron [SWS_Os_00201]. Tables can be chained (NextScheduleTable, state SCHEDULETABLE_NEXT) [SWS_Os_00191] or transitioned immediately into the dormant state SCHEDULETABLE_STOPPED with StopScheduleTable [SWS_Os_00006]. An ongoing explicit synchronization can be canceled using SetScheduleTableAsync, whereby the processing of the expiry points is continued [SWS_Os_00422].

For power saving modes during idle state, the OS provides the interface ControlIdle, allowing the EcuM to configure the sleep state of individual cores [SWS_Os_00769]. During shutdown, the EcuM coordinates the de-initialization of all layers and finally calls ShutdownAllCores or ShutdownOS to stop the overall system in a controlled manner SWS_ECUStateManager p. 90.

5. Error Handling, DET Tracing, and Degradation

Protection violations (such as memory violations or timing violations) lead to the activation of the global ProtectionHook [SWS_Os_00538]. Based on the error, the hook decides on the recovery strategy via a return value of type ProtectionReturnType [SWS_Os_00787]: termination of the triggering entity (PRO_TERMINATETASKISR), complete termination of the affected partition (PRO_TERMINATEAPPL), initiation of a controlled partition restart (PRO_TERMINATEAPPL_RESTART), or shutdown of the ECU (PRO_SHUTDOWN) ApplicationLevelErrorHandling p. 60.

If an OS-Application is terminated or restarted, the OS transitions it from the state APPLICATION_ACCESSIBLE to APPLICATION_RESTARTING or APPLICATION_TERMINATED [SWS_Os_00773]. All active tasks, ISRs, alarms, and Schedule Tables of the partition are stopped immediately and all interrupts are disabled [SWS_Os_00447]. In the state APPLICATION_RESTARTING, the OsRestartTask is executed exclusively to perform cleanup before normal operation is enabled again ApplicationLevelErrorHandling p. 53, ApplicationLevelErrorHandling p. 76.

app_lifecycle init ACCESSIBLE APPLICATION_ACCESSIBLE (Normalbetrieb, Tasks/ISRs aktiv) init->ACCESSIBLE StartOS() RESTARTING APPLICATION_RESTARTING (quarantine, only OsRestartTask active) ACCESSIBLE->RESTARTING ProtectionHook() -> PRO_TERMINATEAPPL_RESTART or TerminateApplication(RESTART) TERMINATED APPLICATION_TERMINATED (Endzustand, Partition deaktiviert) ACCESSIBLE->TERMINATED ProtectionHook() -> PRO_TERMINATEAPPL or TerminateApplication(NO_RESTART) RESTARTING->ACCESSIBLE OsRestartTask beendet Bereinigung & schaltet Partition frei RESTARTING->TERMINATED Error during restart or escalation

State diagram: Lifecycle and partitioning states of an AUTOSAR OS-Application in case of an error. Sources: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling p. 53.

For preventive error avoidance, the Operating System provides memory protection checking functions such as CheckTaskMemoryAccess and CheckISRMemoryAccess [SWS_Os_00512], [SWS_Os_00513] as well as access permission checks via CheckObjectAccess and CheckObjectOwnership [SWS_Os_00256], [SWS_Os_00017]. Via these standardized checks, it can be ensured that non-trusted components do not perform unauthorized write or execution accesses in memory SWS_OS p. 73.

Context of this guide: Created based on the AUTOSAR Classic specifications for release R20-11. All interfaces and state transitions are strictly substantiated by the referenced SWS requirements.

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

AUTOSAR OS

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

BSW ID 1 79 APIs (48 Funktionen, 31 Typen) #include "Os.h"

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);
AllowAccess function

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);
ControlIdle function

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);
GetCoreID function

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);
GetISRID function

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);
GetSpinlock function

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);
IocInit function

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);
SetEventAsyn function

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);
StartCore function

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 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.

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.

This data type identifies the idle mode behavior.

ISRType type

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;

This data type identifies an AUTOSAR OS task.

typedef uint8 TaskType;

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.