AUTOSAR Classic Operating System
ClustergidsAI-GEGENEREERD
Biedt deterministische realtime-scheduling, geheugenbescherming, meerkernsynchronisatie en foutbeheersing.
Biedt deterministische realtime-scheduling, geheugenbescherming, meerkernsynchronisatie en foutbeheersing.
De modulecluster Operating System biedt deterministische realtime-scheduling voor tasks en ISRs, evenals geheugenbescherming en foutinkapseling in gepartitioneerde OS-Applications [SWS_Os_00445]. Hij ondersteunt meerkernsystemen door kernoverstijgende spinlocks, asynchrone task-activering en de Inter-OS-Application Communicator (IOC) [SWS_Os_00686], [SWS_Os_00824]. Bij het optreden van beveiligingsschendingen stelt het OS via configureerbare hooks in staat om afzonderlijke partities tijdens runtime gericht te beëindigen of gecontroleerd te herstarten ApplicationLevelErrorHandling p. 53.
De modulecluster “Operating System” biedt in AUTOSAR Classic de fundamentele uitvoerings- en beveiligingsinfrastructuur voor softwarecomponenten en basissoftwaremodules. Het besturingssysteem kapselt bronnen zoals tasks, ISRs, alarmen en tellers in OS-Applications in [SWS_Os_00445] en maakt daarbij onderscheid tussen vertrouwde (trusted) en niet-vertrouwde partities [SWS_Os_00446] om strikte foutbeheersing op basis van MPU-geheugenbescherming te garanderen SafetyConceptStatusReport p. 49. In meerkernsystemen beheert het OS logische kernen via gestandaardiseerde kern-ID's [SWS_Os_00790] en biedt het voor gegevens- en gebeurtenisgebaseerde uitwisseling tussen kernen en partities de Inter-OS-Application Communicator (IOC) [SWS_Os_00824].
Contextdiagram: Inbedding van het OS-cluster in de AUTOSAR-basissoftwarearchitectuur en interfaces naar EcuM, StbM, RTE en hardware. Bronnen: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral p. 48.
Naast gebeurtenisgestuurde task-scheduling maakt het OS tijdgestuurde uitvoeringsbewaking via Schedule Tables mogelijk [SWS_Os_00783]. Deze kunnen via de Synchronized Time-Base Manager (StbM) met behulp van SyncScheduleTable worden aangepast aan globale voertuigtijdbases [SWS_Os_00199], SWS_SynchronizedTimeBaseManager p. 220. Voor synchronisatie over kerngrenzen heen biedt de module hardwarematige spinlocks met geïntegreerde deadlock-detectie [SWS_Os_00686], terwijl kernoverstijgende task-activeringen asynchroon met ActivateTaskAsyn kunnen worden uitgevoerd [SWS_Os_91022].
In geval van fouten (zoals geheugenoverschrijdingen) activeert het OS de ProtectionHook [SWS_Os_00538]. Via de retourwaarde daarvan kan een defecte OS-Application worden geïsoleerd en gecontroleerd worden beëindigd, of via een specifieke herstart-task opnieuw worden geïnitialiseerd zonder het complete systeem te resetten [SWS_Os_00787], ApplicationLevelErrorHandling p. 53.
Toestandsdiagram: Levenscyclus en partitioneringstoestanden van een AUTOSAR OS-Application in geval van fouten. Bronnen: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling p. 53.
1. Systeemarchitectuur & rol van het modulecluster
De modulecluster “Operating System” vormt in het AUTOSAR-lagenmodel het fundamentele fundament van de System Services voor de uitvoering en coördinatie van alle realtime-softwarecomponenten en basissoftwaremodules. De kernmodule [SWS_Os_00445] kapselt tasks, interrupt-serviceroutines (ISRs), alarmen, tellers (counters) en executietabellen (Schedule Tables) in configureerbare uitvoeringseenheden in, de zogeheten OS-Applications. Hierbij maakt het besturingssysteem strikt onderscheid tussen vertrouwde (trusted) en niet-vertrouwde (non-trusted) OS-Applications [SWS_Os_00446] om functionele veiligheid en geheugenbescherming conform de vereiste schaalbaarheidsklassen te bieden SafetyConceptStatusReport p. 49.
In meerkernarchitecturen beheert het OS logische kernen waarnaar wordt verwezen via unieke identifiers van het type CoreIdType [SWS_Os_00790]. De kern-ID's zijn nulgebaseerd en opeenvolgend gerangschikt [SWS_Os_00825], waarbij de constante OS_CORE_ID_MASTER de masterkern aanduidt SWS_OS p. 111. Via de geïntegreerde Inter-OS-Application Communicator (IOC) biedt het besturingssysteem mechanismen voor veilige, partitie- en kernoverstijgende gegevensoverdracht [SWS_Os_00824]. Door de standaardisatie van de interfaces volgens OSEK OS en de AUTOSAR-specifieke uitbreidingen daarvan garandeert het OS deterministisch realtimegedrag voor bovenliggende modules zoals de ECU State Manager (EcuM), de Synchronized Time-Base Manager (StbM) en de runtime-omgeving RTE SWS_BSWGeneral p. 48.
Contextdiagram: Inbedding van het OS-cluster in de AUTOSAR-basissoftwarearchitectuur en interfaces naar EcuM, StbM, RTE en hardware. Bronnen: [SWS_Os_00445], [SWS_Os_00790], SWS_BSWGeneral p. 48.
2. Samenspel & interactiepaden tussen de modules
De interactie tussen de OS-objecten en de lagen van de AUTOSAR-architectuur verloopt via scherp afgebakende controle- en gegevenspaden. Voor partitieoverstijgende gegevensuitwisseling genereert de IOC getypeerde communicatiefuncties met unqueued (“data”, IocWrite / IocRead) of queued semantiek (“event”, IocSend / IocReceive) [SWS_Os_00718], [SWS_Os_00738]. Bij groepsoverdrachten worden de services IocSendGroup respectievelijk IocReceiveGroup gebruikt [SWS_Os_00728], [SWS_Os_00746]. Als een interne buffer van de ontvanger vol raakt, signaleert de IOC dit met de status IOC_E_LIMIT aan de zender en registreert voor navolgende leesbewerkingen een IOC_E_LOST_DATA SWS_OS p. 225.
Wanneer een niet-vertrouwde OS-Application toegang moet krijgen tot geprivilegieerde services van een vertrouwde partitie, verloopt de gecontroleerde contextwissel via de systeemservice CallTrustedFunction [SWS_Os_00097]. Hierbij worden de parameters doorgegeven via een pointerstructuur van het type TrustedFunctionParameterRefType [SWS_Os_00776]. Het besturingssysteem wisselt de MPU-rechten tijdelijk naar die van de doelapplicatie SWS_OS p. 172. De functie GetCurrentApplicationID retourneert tijdens deze uitvoering de ID van de aangeroepen Trusted Application, terwijl GetApplicationID de oorspronkelijke aanroeper-applicatie oplevert [SWS_Os_00797].
Voor de temporele afstemming met externe tijdbases synchroniseert de module StbM via de OS-interfaces expliciet geconfigureerde Schedule Tables. StbM vraagt eerst cyclisch via GetScheduleTableStatus de synchronisatietoestand op [SWS_Os_00227] en draagt vervolgens de actuele synchronisatiewaarde via SyncScheduleTable over aan het OS [SWS_Os_00199]. Het besturingssysteem berekent vervolgens de afwijking ten opzichte van de vervalpunten (Expiry Points) en past de vertragingstijden stapsgewijs aan totdat de tabel synchroon loopt met de globale tijdbasis SWS_OS p. 57, SWS_SynchronizedTimeBaseManager p. 220.
Sequentiediagram: Expliciete synchronisatie van een OS Schedule Table door de Synchronized Time-Base Manager (StbM). Bronnen: [SWS_Os_00199], [SWS_Os_00227], SWS_SynchronizedTimeBaseManager p. 220.
3. Synchronisatie, re-entrantie en taakcontexten
Het runtimemodel maakt een duidelijk onderscheid tussen taskniveau, interruptniveaus van categorie 1 (Cat 1 ISR) en categorie 2 (Cat 2 ISR) en hook-routines. Terwijl Cat 1 ISRs zonder besturingssysteem-overhead worden uitgevoerd en geen OS-services mogen aanroepen, worden Cat 2 ISRs volledig door het OS beheerd [SWS_Os_00782]. De actieve ISR-ID kan worden bepaald met GetISRID; bij een aanroep buiten een Cat 2 ISR retourneert de service INVALID_ISR [SWS_Os_00511]. Afzonderlijke interruptbronnen kunnen gericht worden bestuurd via EnableInterruptSource, DisableInterruptSource en ClearPendingInterrupt op interrupt-controllerniveau [SWS_Os_91020], [SWS_Os_91019], [SWS_Os_91021].
Voor de synchronisatie van kritieke secties over processorkerngrenzen heen stelt het OS spinlocks ter beschikking [SWS_Os_00791]. Een spinlock wordt synchroon blokkerend bezet met GetSpinlock [SWS_Os_00686] of niet-blokkerend opgevraagd via TryToGetSpinlock [SWS_Os_00703]. De vrijgave geschiedt via ReleaseSpinlock [SWS_Os_00695]. Om deadlocks uit te sluiten, controleert het OS in de uitgebreide status op nest- en overlappingsfouten (E_OS_INTERFERENCE_DEADLOCK, E_OS_NESTING_DEADLOCK) SWS_OS p. 199.
Voor kernoverstijgende task-activeringen en event-instellingen biedt het OS asynchrone API-varianten: ActivateTaskAsyn en SetEventAsyn keren direct terug naar de aanroeper, zonder te wachten op de uitvoering op de doelkern [SWS_Os_91022], [SWS_Os_91023]. Mogelijke fouten worden daarbij niet geretourneerd aan de aanroeper, maar gelogd via geconfigureerde error-hooks [SWS_Os_00816], SWS_OS p. 203.
4. Typische levenscycli en bedrijfsmodi
De systeemstart wordt grotendeels gecoördineerd door de ECU State Manager (EcuM). Op de masterkern start EcuM vóór de start van het besturingssysteem onderliggende kernen via de OS-service StartCore [SWS_Os_00676], SWS_ECUStateManager p. 82. Vervolgens roept elke gestarte kern autonoom StartOS aan. Na de aanroep van StartOS schakelt het besturingssysteem alle geconfigureerde OS-Applications over naar de toestand APPLICATION_ACCESSIBLE, voordat startup-hooks worden uitgevoerd SWS_OS p. 62. Het aantal succesvol opgestarte kernen kan tijdens runtime worden opgevraagd met GetNumberOfActivatedCores SWS_OS p. 196.
Schedule Tables volgen een duidelijk gedefinieerde toestandsautomaat. Ze kunnen absoluut via StartScheduleTableAbs [SWS_Os_00358], relatief via StartScheduleTableRel [SWS_Os_00347] of synchroon via StartScheduleTableSynchron worden gestart [SWS_Os_00201]. Tabellen kunnen worden gekoppeld (NextScheduleTable, toestand SCHEDULETABLE_NEXT) [SWS_Os_00191] of met StopScheduleTable direct in de rusttoestand SCHEDULETABLE_STOPPED worden gebracht [SWS_Os_00006]. Een lopende expliciete synchronisatie kan met SetScheduleTableAsync worden afgebroken, waarbij de verwerking van de Expiry Points wordt voortgezet [SWS_Os_00422].
Voor energiebesparingsmodi bij inactiviteit biedt het OS de interface ControlIdle, waarmee de EcuM de rusttoestand van individuele kernen kan configureren [SWS_Os_00769]. Bij het afsluiten coördineert de EcuM de de-initialisatie van alle lagen en roept uiteindelijk ShutdownAllCores respectievelijk ShutdownOS aan om het complete systeem gecontroleerd te stoppen SWS_ECUStateManager p. 90.
5. Foutafhandeling, DET-tracing en degradatie
Beveiligingsschendingen (zoals geheugenoverschrijdingen of timingschendingen) leiden tot activering van de globale ProtectionHook [SWS_Os_00538]. Aan de hand van de fout beslist de hook over de herstelstrategie via een retourwaarde van het type ProtectionReturnType [SWS_Os_00787]: beëindiging van de veroorzakende entiteit (PRO_TERMINATETASKISR), volledige beëindiging van de getroffen partitie (PRO_TERMINATEAPPL), in gang zetten van een gecontroleerde herstart van de partitie (PRO_TERMINATEAPPL_RESTART) of uitschakelen van de ECU (PRO_SHUTDOWN) ApplicationLevelErrorHandling p. 60.
Als een OS-Application wordt beëindigd of opnieuw gestart, brengt het OS deze vanuit de toestand APPLICATION_ACCESSIBLE naar APPLICATION_RESTARTING respectievelijk APPLICATION_TERMINATED [SWS_Os_00773]. Alle actieve tasks, ISRs, alarmen en Schedule Tables van de partitie worden onmiddellijk gestopt en alle interrupts worden gedeactiveerd [SWS_Os_00447]. In toestand APPLICATION_RESTARTING wordt exclusief de OsRestartTask uitgevoerd om opschoonacties te verrichten voordat de normale werking weer wordt vrijgegeven ApplicationLevelErrorHandling p. 53, ApplicationLevelErrorHandling p. 76.
Toestandsdiagram: Levenscyclus en partitioneringstoestanden van een AUTOSAR OS-Application in geval van fouten. Bronnen: [SWS_Os_00773], [SWS_Os_00258], ApplicationLevelErrorHandling p. 53.
Ter preventieve foutvermijding biedt het besturingssysteem geheugenbeschermingscontrolefuncties zoals CheckTaskMemoryAccess en CheckISRMemoryAccess [SWS_Os_00512], [SWS_Os_00513], evenals toegangsrechtencontroles via CheckObjectAccess en CheckObjectOwnership [SWS_Os_00256], [SWS_Os_00017]. Via deze gestandaardiseerde controles kan worden gewaarborgd dat niet-vertrouwde componenten geen ongeoorloofde schrijf- of uitvoeringstoegang in het geheugen uitoefenen SWS_OS p. 73.
Context van deze handleiding: Opgesteld op basis van de AUTOSAR Classic-specificaties voor release R20-11. Alle interfaces en toestandsovergangen worden strikt gestaafd door de gerefereerde SWS-eisen.
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
Diensten · Get…
Diensten · Start…
Diensten · Check…
Diensten · Modify…
Diensten · Read…
Diensten · Write…
Diensten · Overige
AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceIncrementCounterIocInitNextScheduleTableProtectionHookReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlockCallouts en verwachte interfaces
<ReceiverPullCB>Typen
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockTypeFuncties
<ReceiverPullCB>AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionCheckISRMemoryAccessCheckObjectOwnershipCheckTaskMemoryAccessClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceGetApplicationIDGetApplicationStateGetCoreIDGetCounterValueGetCurrentApplicationIDGetElapsedValueGetISRIDGetNumberOfActivatedCoresGetScheduleTableStatusGetSpinlockIncrementCounterIocInitModifyPeripheral16ModifyPeripheral32ModifyPeripheral8NextScheduleTableProtectionHookReadPeripheral16ReadPeripheral32ReadPeripheral8ReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStartCoreStartNonAutosarCoreStartScheduleTableAbsStartScheduleTableRelStartScheduleTableSynchronStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlockWritePeripheral16WritePeripheral32WritePeripheral8Typen
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockTypeThemakaart
Os
79Geen elementgegevens voor deze release
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 · Duits origineel