DEENESPTFRRUARHIKOZHNL

AUTOSAR Classic Operating System

Guía del clústerGENERADO POR IA

Proporciona planificación determinista en tiempo real, protección de memoria, sincronización multinúcleo y contención de errores.
GENERADO POR IA no revisado Modelo: gemini-3.8-flash-medium · Esfuerzo: medium · Temperatura: no controlable · Prompt: 9b7f8380b9ff Procedencia
Ancla causal: R20-11 Válido desde R20-11 Sintetizado para esta versión de especificación.
traducido de la guía alemanagemini-3.8-flash-low · 2026-10-13 · Original en alemán

Proporciona planificación determinista en tiempo real, protección de memoria, sincronización multinúcleo y contención de errores.

El clúster de módulos Operating System proporciona la planificación determinista en tiempo real para tareas e ISRs, así como protección de memoria y encapsulación de errores en OS-Applications particionadas [SWS_Os_00445]. Admite sistemas multinúcleo mediante spinlocks entre núcleos, activación asíncrona de tareas y el Inter-OS-Application Communicator (IOC) [SWS_Os_00686], [SWS_Os_00824]. Al producirse violaciones de protección, el OS permite, mediante hooks configurables, la finalización selectiva o el reinicio controlado de particiones individuales en tiempo de ejecución ApplicationLevelErrorHandling p. 53.

El clúster de módulos «Operating System» proporciona en AUTOSAR Classic la infraestructura fundamental de ejecución y protección para componentes de software y módulos de software básico. El sistema operativo encapsula recursos como tareas, ISRs, alarmas y contadores en OS-Applications [SWS_Os_00445], diferenciando entre particiones confiables (trusted) y no confiables [SWS_Os_00446] para garantizar una estricta contención de errores basada en la protección de memoria por MPU SafetyConceptStatusReport p. 49. En sistemas multinúcleo, el OS gestiona núcleos lógicos mediante IDs de núcleo estandarizados [SWS_Os_00790] y proporciona el Inter-OS-Application Communicator (IOC) para el intercambio basado en datos y eventos entre núcleos y particiones [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

Diagrama de contexto: Integración del clúster de OS en la arquitectura de software básico de AUTOSAR e interfaces con EcuM, StbM, RTE y hardware. Fuentes: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral p. 48.

Además de la planificación de tareas dirigida por eventos, el OS permite el seguimiento de la ejecución controlado por tiempo mediante Schedule Tables [SWS_Os_00783]. Estas se pueden ajustar a bases de tiempo globales del vehículo a través del Synchronized Time-Base Manager (StbM) mediante SyncScheduleTable [SWS_Os_00199], SWS_SynchronizedTimeBaseManager p. 220. Para la sincronización a través de los límites entre núcleos, el módulo ofrece spinlocks cercanos al hardware con detección integrada de interbloqueos [SWS_Os_00686], mientras que las activaciones de tareas entre núcleos pueden ejecutarse de forma asíncrona con ActivateTaskAsyn [SWS_Os_91022].

En caso de error (por ejemplo, ante desbordamientos de memoria), el OS activa el ProtectionHook [SWS_Os_00538]. A través de su valor de retorno se puede aislar una OS-Application errónea y terminarla de manera controlada o reinicializarla mediante una tarea de reinicio dedicada, sin reiniciar el sistema completo [SWS_Os_00787], ApplicationLevelErrorHandling p. 53.

app_lifecycle init ACCESSIBLE APPLICATION_ACCESSIBLE (Normalbetrieb, Tasks/ISRs aktiv) init->ACCESSIBLE StartOS() RESTARTING APPLICATION_RESTARTING (cuarentena, solo OsRestartTask activa) ACCESSIBLE->RESTARTING ProtectionHook() -> PRO_TERMINATEAPPL_RESTART o TerminateApplication(RESTART) TERMINATED APPLICATION_TERMINATED (Endzustand, Partition deaktiviert) ACCESSIBLE->TERMINATED ProtectionHook() -> PRO_TERMINATEAPPL o TerminateApplication(NO_RESTART) RESTARTING->ACCESSIBLE OsRestartTask beendet Bereinigung & schaltet Partition frei RESTARTING->TERMINATED Error durante el reinicio o escalado

Diagrama de estados: Ciclo de vida y estados de particionamiento de una OS-Application de AUTOSAR en caso de error. Fuentes: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling p. 53.

1. Arquitectura del sistema y rol del clúster de módulos

El clúster de módulos «Operating System» constituye en el modelo de capas de AUTOSAR el fundamento esencial de los System Services para la ejecución y coordinación de todos los componentes de software de tiempo real y módulos de software básico. El módulo principal [SWS_Os_00445] encapsula tareas, rutinas de servicio de interrupción (ISRs), alarmas, contadores (Counter) y tablas de seguimiento de ejecución (Schedule Tables) en unidades de ejecución configurables, las denominadas OS-Applications. En este sentido, el sistema operativo distingue estrictamente entre OS-Applications confiables (trusted) y no confiables (non-trusted) [SWS_Os_00446] para proporcionar seguridad funcional y protección de memoria de acuerdo con las clases de escalabilidad requeridas SafetyConceptStatusReport p. 49.

En arquitecturas multinúcleo, el OS gestiona núcleos lógicos que se referencian mediante identificadores unívocos de tipo CoreIdType [SWS_Os_00790]. Los IDs de núcleo son de base cero y están ordenados de forma correlativa [SWS_Os_00825], donde la constante OS_CORE_ID_MASTER identifica al núcleo maestro SWS_OS p. 111. A través del Inter-OS-Application Communicator (IOC) integrado, el sistema operativo proporciona mecanismos para la transmisión segura de datos entre particiones y núcleos [SWS_Os_00824]. Mediante la estandarización de las interfaces según OSEK OS y sus ampliaciones específicas de AUTOSAR, el OS garantiza un comportamiento determinista en tiempo real para módulos de nivel superior como el ECU State Manager (EcuM), el Synchronized Time-Base Manager (StbM) y el entorno de ejecución 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

Diagrama de contexto: Integración del clúster de OS en la arquitectura de software básico de AUTOSAR e interfaces con EcuM, StbM, RTE y hardware. Fuentes: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral p. 48.

2. Interacción y rutas de comunicación entre los módulos

La interacción entre los objetos de OS y las capas de la arquitectura AUTOSAR se realiza a través de rutas de control y de datos claramente delimitadas. Para el intercambio de datos entre particiones, el IOC genera funciones de comunicación tipadas con semántica no encolada («data», IocWrite / IocRead) o encolada («event», IocSend / IocReceive) [SWS_Os_00718], [SWS_Os_00738]. En transmisiones grupales se emplean los servicios IocSendGroup o bien IocReceiveGroup [SWS_Os_00728], [SWS_Os_00746]. Si un búfer interno del receptor se llena, el IOC lo señaliza al emisor con el estado IOC_E_LIMIT y registra un IOC_E_LOST_DATA para operaciones de lectura subsiguientes SWS_OS p. 225.

Cuando una OS-Application no confiable debe acceder a servicios privilegiados de una partición confiable, el cambio de contexto controlado se efectúa a través del servicio de sistema CallTrustedFunction [SWS_Os_00097]. En este caso, los parámetros se transmiten mediante una estructura de puntero de tipo TrustedFunctionParameterRefType [SWS_Os_00776]. El sistema operativo cambia temporalmente los privilegios de la MPU a los de la aplicación de destino SWS_OS p. 172. Durante esta ejecución, la función GetCurrentApplicationID devuelve el identificador de la Trusted Application invocada, mientras que GetApplicationID proporciona la aplicación emisora de la llamada original [SWS_Os_00797].

Para la coordinación temporal con bases de tiempo externas, el módulo StbM sincroniza Schedule Tables configuradas explícitamente a través de las interfaces del OS. StbM consulta primero cíclicamente el estado de sincronización mediante GetScheduleTableStatus [SWS_Os_00227] y luego transmite el valor de sincronización actual al OS mediante SyncScheduleTable [SWS_Os_00199]. A continuación, el sistema operativo calcula la desviación con respecto a los puntos de expiración (Expiry Points) y ajusta gradualmente los tiempos de retardo hasta que la tabla se ejecuta de forma síncrona con la base de tiempo global SWS_OS p. 57, SWS_SynchronizedTimeBaseManager p. 220.

Sincronización explícita de una OS-Schedule-TableStbMOsGetScheduleTableStatus(ScheduleTableID, &ScheduleStatus)E_OK (Status: SCHEDULETABLE_RUNNING / WAITING)altStatus == WAITING | RUNNING | RUNNING_AND_SYNCHRONOUSSyncScheduleTable(ScheduleTableID, GlobalTimeTick)Calcular la deriva entre la tabla local y la base de tiempoAplicar el ajuste de retardo en los Expiry PointsE_OKAbweichung <= OsScheduleTblExplicitPrecisionSetze Zustand: SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS

Diagrama de secuencia: Sincronización explícita de una Schedule Table del OS por parte del Synchronized Time-Base Manager (StbM). Fuentes: [SWS_Os_00199], [SWS_Os_00227], SWS_SynchronizedTimeBaseManager p. 220.

3. Sincronización, reentrancia y contextos de tareas

El modelo de tiempo de ejecución distingue claramente entre el nivel de tareas, los niveles de interrupción de categoría 1 (Cat 1 ISR) y categoría 2 (Cat 2 ISR), y las rutinas de hook. Mientras que las Cat 1 ISRs se ejecutan sin sobrecarga del sistema operativo y no tienen permitido invocar servicios del OS, las Cat 2 ISRs son gestionadas íntegramente por el OS [SWS_Os_00782]. El identificador de la ISR activa se puede determinar mediante GetISRID; en caso de invocación fuera de una Cat 2 ISR, el servicio devuelve INVALID_ISR [SWS_Os_00511]. Las fuentes de interrupción individuales se pueden controlar de forma específica a nivel del controlador de interrupciones mediante EnableInterruptSource, DisableInterruptSource así como ClearPendingInterrupt [SWS_Os_91020], [SWS_Os_91019], [SWS_Os_91021].

Para la sincronización de secciones críticas a través de los límites de los núcleos del procesador, el OS proporciona spinlocks [SWS_Os_00791]. Un spinlock se adquiere de forma síncrona y bloqueante con GetSpinlock [SWS_Os_00686] o se consulta de forma no bloqueante mediante TryToGetSpinlock [SWS_Os_00703]. La liberación se efectúa mediante ReleaseSpinlock [SWS_Os_00695]. Para excluir interbloqueos, el OS comprueba en el estado extendido si existen errores de anidamiento y de solapamiento (E_OS_INTERFERENCE_DEADLOCK, E_OS_NESTING_DEADLOCK) SWS_OS p. 199.

Para activaciones de tareas y asignaciones de eventos entre núcleos, el OS proporciona variantes asíncronas de la API: ActivateTaskAsyn y SetEventAsyn retornan inmediatamente al llamador sin esperar a la ejecución en el núcleo de destino [SWS_Os_91022], [SWS_Os_91023]. Los posibles errores no se devuelven al llamador, sino que se registran mediante Error Hooks configurados [SWS_Os_00816], SWS_OS p. 203.

4. Ciclos de vida típicos y modos de funcionamiento

El arranque del sistema está coordinado principalmente por el ECU State Manager (EcuM). En el núcleo maestro, el EcuM inicia los núcleos subordinados antes del arranque del sistema operativo a través del servicio de OS StartCore [SWS_Os_00676], SWS_ECUStateManager p. 82. A continuación, cada núcleo iniciado invoca StartOS de manera autónoma. Tras la llamada a StartOS, el sistema operativo cambia todas las OS-Applications configuradas al estado APPLICATION_ACCESSIBLE antes de ejecutar los Startup Hooks SWS_OS p. 62. El número de núcleos iniciados con éxito se puede consultar en tiempo de ejecución con GetNumberOfActivatedCores SWS_OS p. 196.

Las Schedule Tables están sujetas a una máquina de estados claramente definida. Se pueden iniciar de forma absoluta mediante StartScheduleTableAbs [SWS_Os_00358], relativa mediante StartScheduleTableRel [SWS_Os_00347] o síncrona mediante StartScheduleTableSynchron [SWS_Os_00201]. Las tablas se pueden encadenar (NextScheduleTable, estado SCHEDULETABLE_NEXT) [SWS_Os_00191] o pasar inmediatamente al estado inactivo SCHEDULETABLE_STOPPED con StopScheduleTable [SWS_Os_00006]. Una sincronización explícita en curso puede cancelarse mediante SetScheduleTableAsync, continuándose con el procesamiento de los Expiry Points [SWS_Os_00422].

Para los modos de ahorro de energía en reposo, el OS ofrece la interfaz ControlIdle, con la cual el EcuM puede configurar el estado inactivo de núcleos individuales [SWS_Os_00769]. Durante el apagado, el EcuM coordina la desinicialización de todas las capas y llama finalmente a ShutdownAllCores o ShutdownOS para detener el sistema global de forma controlada SWS_ECUStateManager p. 90.

5. Tratamiento de errores, rastreo de DET y degradación

Las violaciones de protección (como desbordamientos de memoria o violaciones de temporización) conducen a la activación del ProtectionHook global [SWS_Os_00538]. En función del error, el hook decide sobre la estrategia de recuperación mediante un valor de retorno de tipo ProtectionReturnType [SWS_Os_00787]: terminación de la entidad causante (PRO_TERMINATETASKISR), terminación completa de la partición afectada (PRO_TERMINATEAPPL), inicio de un reinicio controlado de la partición (PRO_TERMINATEAPPL_RESTART) o apagado de la ECU (PRO_SHUTDOWN) ApplicationLevelErrorHandling p. 60.

Si una OS-Application se finaliza o se reinicia, el OS la transfiere desde el estado APPLICATION_ACCESSIBLE a APPLICATION_RESTARTING o APPLICATION_TERMINATED [SWS_Os_00773]. Todas las tareas, ISRs, alarmas y Schedule Tables activas de la partición se detienen de inmediato y todas las interrupciones se desactivan [SWS_Os_00447]. En el estado APPLICATION_RESTARTING se ejecuta exclusivamente el OsRestartTask para llevar a cabo tareas de limpieza antes de que se vuelva a habilitar el funcionamiento normal ApplicationLevelErrorHandling p. 53, ApplicationLevelErrorHandling p. 76.

app_lifecycle init ACCESSIBLE APPLICATION_ACCESSIBLE (Normalbetrieb, Tasks/ISRs aktiv) init->ACCESSIBLE StartOS() RESTARTING APPLICATION_RESTARTING (cuarentena, solo OsRestartTask activa) ACCESSIBLE->RESTARTING ProtectionHook() -> PRO_TERMINATEAPPL_RESTART o TerminateApplication(RESTART) TERMINATED APPLICATION_TERMINATED (Endzustand, Partition deaktiviert) ACCESSIBLE->TERMINATED ProtectionHook() -> PRO_TERMINATEAPPL o TerminateApplication(NO_RESTART) RESTARTING->ACCESSIBLE OsRestartTask beendet Bereinigung & schaltet Partition frei RESTARTING->TERMINATED Error durante el reinicio o escalado

Diagrama de estados: Ciclo de vida y estados de particionamiento de una OS-Application de AUTOSAR en caso de error. Fuentes: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling p. 53.

Para la prevención proactiva de errores, el sistema operativo ofrece funciones de comprobación de la protección de memoria como CheckTaskMemoryAccess y CheckISRMemoryAccess [SWS_Os_00512], [SWS_Os_00513], así como comprobaciones de permisos de acceso mediante CheckObjectAccess y CheckObjectOwnership [SWS_Os_00256], [SWS_Os_00017]. Mediante estas comprobaciones estandarizadas se puede garantizar que los componentes no confiables no realicen accesos no autorizados de escritura o ejecución en la memoria SWS_OS p. 73.

Contexto de esta guía: elaborada sobre la base de las especificaciones de AUTOSAR Classic para la versión R20-11. Todas las interfaces y transiciones de estado están estrictamente respaldadas por los requisitos SWS referenciados.

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 función

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 función

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 función

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 función

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 función

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 función

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 función

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 función

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 tipo

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.