DEENESPTFRRUARHIKOZHNL

AUTOSAR OS

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

Modul-GuideKI-GENERIERT

Steuert zeitgesteuerte Abläufe, schützt OS-Applications voneinander und koordiniert die Kerne eines Steuergeräts.
KI-GENERIERT ungeprüft Modell: claude-opus-5-5 · Aufwand: high · Temperatur: nicht steuerbar · Prompt: 5b459e21507a Herkunft
Kausaler Anker: R20-11 Gültig ab R20-11 Neu synthetisiert für diesen Spezifikationsstand.
KI-generiertclaude-opus-5-5 · 2026-10-13

Steuert zeitgesteuerte Abläufe, schützt OS-Applications voneinander und koordiniert die Kerne eines Steuergeräts.

Das Betriebssystem führt Tasks und ISRs aus, treibt Counter und ScheduleTables und trennt Software in geschützte OS-Applications. Der EcuM startet die Kerne mit StartCore; danach wird auf jedem Kern StartOS aufgerufen [SWS_Os_00676]. ScheduleTables lassen sich über den StbM explizit mit einer globalen Zeit synchronisieren. Zugriffe auf fremde Objekte sind nur mit konfigurierten Rechten möglich SWS OS S. 62. Bei Schutzverletzungen entscheidet der ProtectionHook, ob ein Task, eine OS-Application oder das ganze System beendet wird.

Das Betriebssystem ist der Ausführungskern des Classic-Stacks. Es verwaltet Tasks, ISRs, Alarme, Counter und ScheduleTables und fasst sie zu OS-Applications zusammen, die trusted oder non-trusted sind SWS OS S. 61. Der EcuM startet die Kerne mit StartCore und danach das OS mit StartOS; jeder gestartete Kern ruft StartOS selbst auf SWS EcuM S. 82, [SWS_Os_00676]. ShutdownAllCores fährt das OS auf allen Kernen herunter und kehrt nicht zurück [SWS_Os_00713]. Software-Komponenten nutzen OS-Dienste über die RTE, und für BSW-Module ist eingeschränkt, welche Dienste sie verwenden dürfen SWS BSWGeneral S. 48.

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (Teil des Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os nur zulässige Dienste laut SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc enthält hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os Exception bei Schutzverletzung

Kontextdiagramm: EcuM, StbM, RTE und BSW-Module greifen über getrennte Dienstgruppen auf das Os zu; der IOC ist Teil des Os. Quellen: SWS EcuM S. 34, SWS OS S. 119

Counter bilden die Zeitbasis; Hardwarewerte werden so korrigiert, dass sie bei null beginnen und monoton steigen SWS OS S. 39. ScheduleTables startet die Anwendung absolut oder relativ zum Counter, und ein Stopp wirkt sofort SWS OS S. 46. Bei expliziter Synchronisation liefert der StbM mit SyncScheduleTable den Wert der globalen Zeit. Das OS führt die Expiry Points daraufhin nach, bis die Abweichung innerhalb der konfigurierten Präzision liegt [SWS_Os_00199], SWS OS S. 57.

ScheduleTable start Start STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() oder Tabelle endet RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() oder |Abweichung| > Precision

Zustandsdiagramm: Lebenszyklus einer ScheduleTable vom Start über die Synchronisation bis zum Stopp. Quellen: [SWS_Os_00784], SWS OS S. 49

Das Schutzkonzept verbietet Zugriffe auf Objekte anderer OS-Applications, sofern die Konfiguration sie nicht erlaubt SWS OS S. 62. Kontrollierte Übergänge zwischen OS-Applications ermöglicht CallTrustedFunction [SWS_Os_00097]. Mehrere Kerne koordinieren sich über Spinlocks mit Deadlock-Erkennung und über den IOC [SWS_Os_00686], [SWS_Os_00718].

Bei schweren Fehlern entscheidet der Rückgabewert des ProtectionHook, was folgt [SWS_Os_00538]:

  • Fehler ignorieren,
  • Task oder ISR beenden,
  • OS-Application beenden, mit oder ohne Restart,
  • System herunterfahren.

Eine neu gestartete OS-Application gibt sich mit AllowAccess selbst wieder frei [SWS_Os_00501].

Rolle des Betriebssystems und seine Nachbarn im Steuergerät

Das Betriebssystem ist der Ausführungskern des Classic-Stacks. Es verwaltet Tasks, ISRs, Alarme, Counter und ScheduleTables. Diese Objekte fasst es zusammen mit Hooks und Trusted Functions zu konfigurierbaren OS-Applications, die entweder trusted oder non-trusted sind SWS OS S. 61. Zusätzlich initialisiert und konfiguriert es alle Timer, die es selbst nutzt und die nicht der GPT-Treiber verwaltet SWS OS S. 39.

Die Nachbarmodule greifen über abgegrenzte Schnittstellen zu:

  • Der EcuM steuert Hochlauf und Herunterfahren über StartOS, StartCore, GetCoreID und ShutdownAllCores SWS EcuM S. 34.
  • Der StbM nutzt GetCounterValue, GetElapsedValue, GetScheduleTableStatus und SyncScheduleTable SWS StbM S. 152.
  • Software-Komponenten erreichen OS-Dienste über einen RTE-Port mit dem Service-Interface OsService TR VFB S. 89. Für Counter mit konfiguriertem OsSecondsPerTick bietet dieses Interface unter anderem GetCounterValue und GetElapsedValue an [SWS_Os_00560].

Für BSW-Module legt eine Tabelle fest, welche OS-Dienste sie überhaupt verwenden dürfen SWS BSWGeneral S. 48. Die Kommunikation zwischen OS-Applications übernimmt der IOC. Er ist Teil des Betriebssystems und wird von der RTE aufgerufen SWS OS S. 119, [SWS_Os_00718].

Kontext swc Software-Komponente rte RTE swc->rte Port os: OsService os Os (Tasks, ISRs, Counter, ScheduleTables, OS-Applications) rte->os OS-Dienste ioc IOC (Teil des Os) rte->ioc IocSend / IocWrite, IocReceive / IocRead bsw BSW-Module bsw->os nur zulässige Dienste laut SWS BSWGeneral ecum EcuM ecum->os StartCore, StartOS, GetCoreID, ShutdownAllCores stbm StbM stbm->os GetScheduleTableStatus, SyncScheduleTable, GetCounterValue os->ioc enthält hw Hardware (Timer, Interrupt-Controller, Prozessor) os->hw Timer initialisieren, Interrupt-Quellen steuern hw->os Exception bei Schutzverletzung

Kontextdiagramm: Das Os wird von EcuM, StbM, RTE und BSW-Modulen über jeweils eigene Dienstgruppen genutzt und kapselt den IOC sowie die Hardwarezugriffe. Quellen: SWS EcuM S. 34, SWS StbM S. 152, TR VFB S. 89, SWS OS S. 119

Hochlauf, Kernverwaltung und Herunterfahren

Im Mehrkernbetrieb startet der EcuM auf dem Master-Kern in einer Schleife alle konfigurierten Kerne mit StartCore. Danach ruft er StartOS(ECUM_DEFAULT_APP_MODE) auf SWS EcuM S. 82. Auf jedem gestarteten Kern muss ebenfalls StartOS aufgerufen werden [SWS_Os_00676]. Das übernimmt der EcuM des jeweiligen Slave-Kerns nach GetCoreID SWS EcuM S. 83.

Für StartCore gelten folgende Regeln SWS OS S. 166:

  • Der Dienst ist nicht reentrant.
  • Ein Aufruf nach StartOS liefert E_OS_ACCESS, und der Kern wird nicht gestartet.
  • Ein bereits gestarteter Kern ergibt E_OS_STATE.

Für Kerne außerhalb der Kontrolle des AUTOSAR OS gibt es StartNonAutosarCore [SWS_Os_00682].

Kerne werden über CoreIdType identifiziert. Die logischen IDs sind nullbasiert und lückenlos, und OS_CORE_ID_MASTER bezeichnet den Master-Kern [SWS_Os_00790], [SWS_Os_00825]. GetCoreID liefert die logische ID des aufrufenden Kerns [SWS_Os_00674]. Der Dienst ist schon vor StartOS aufrufbar SWS OS S. 111.

Nach StartOS und vor dem ersten StartupHook setzt das OS alle OS-Applications auf APPLICATION_ACCESSIBLE SWS OS S. 62. Danach folgt der systemweite StartupHook. Erst dann laufen die anwendungsspezifischen StartupHook_<App>, jeweils mit den Rechten ihrer OS-Application SWS OS S. 134, [SWS_Os_00539].

Mehrkern-Hochlauf des OsEcuM (Master-Kern)Os (Master-Kern)Os (Slave-Kern)EcuM (Slave-Kern)GetCoreID()CoreIdTypeloopfür alle konfigurierten KerneStartCore(CoreID, &Status)Kern unter Kontrolledes AUTOSAR OS startenStatus = E_OKStartOS(ECUM_DEFAULT_APP_MODE)GetCoreID()StartOS(ECUM_DEFAULT_APP_MODE)Nach StartOS: OS-Applications auf APPLICATION_ACCESSIBLE,dann StartupHook, danach StartupHook_<App>optStartCore nach StartOSStartCore(CoreID, &Status)Status = E_OS_ACCESS,Kern wird nicht gestartet

Sequenzdiagramm: Der Master-Kern startet die übrigen Kerne vor seinem eigenen StartOS; jeder Kern ruft StartOS selbst auf, ein späteres StartCore wird abgewiesen. Quellen: SWS EcuM S. 82, SWS EcuM S. 83, SWS OS S. 166, SWS OS S. 188

GetNumberOfActivatedCores liefert in R20-11 die Zahl der mit StartCore aktivierten Kerne [SWS_Os_00672]. Spätere Fassungen sprechen stattdessen von „Kernen, auf denen das AUTOSAR OS läuft“ SWS OS S. 196.

Mit ControlIdle wählt man je Kern die Aktion für die Leerlaufzeit, etwa zum Energiesparen. Standard ist IDLE_NO_HALT. Ein unbekannter Kern oder Modus ergibt E_OS_ID [SWS_Os_00769], [SWS_Os_00771], [SWS_Os_00793].

ShutdownAllCores fährt das OS auf allen AUTOSAR-Kernen herunter, zwingt die anderen Kerne in den Shutdown und kehrt nie zurück [SWS_Os_00713]. Dabei laufen zuerst die ShutdownHook_<App>. Dann synchronisieren sich die Kerne, und erst danach folgt der globale ShutdownHook SWS OS S. 98, [SWS_Os_00541].

Counter und ScheduleTables als Zeitbasis

GetCounterValue liefert bei Hardware-Countern den Timerwert und bei Software-Countern die Software-Ticks. Hardwarewerte korrigiert das OS so, dass sie bei null beginnen und bis zum Modulus steigen SWS OS S. 39, [SWS_Os_00383].

GetElapsedValue liefert die Ticks seit einem früher gelesenen Wert. Ist Value größer als der maximal zulässige Counterwert, folgt E_OS_VALUE SWS OS S. 192, [SWS_Os_00392].

IncrementCounter erhöht nur Software-Counter; für Hardware-Counter liefert es E_OS_ID. Scheitert dabei eine Alarmaktion, ruft das OS die Error-Hooks auf, der Dienst selbst liefert aber E_OK SWS OS S. 190, [SWS_Os_00399].

Start und Stopp einer ScheduleTable sind Aufgabe der Anwendung SWS OS S. 46. Der Initial Expiry Point wird zu folgendem Zählerstand verarbeitet:

Beim relativen Start ergibt ein Offset von 0 oder größer als OsCounterMaxAllowedValue − InitialOffset den Fehler E_OS_VALUE. Eine bereits gestartete Tabelle ergibt E_OS_STATE SWS OS S. 179.

StopScheduleTable bricht sofort ab; eine bereits gestoppte Tabelle ergibt E_OS_NOFUNC [SWS_Os_00006]. Ein späterer Neustart beginnt am Tabellenanfang SWS OS S. 46.

NextScheduleTable kettet eine Folgetabelle an. Beide Tabellen müssen vom selben Counter getrieben sein, sonst folgt E_OS_ID [SWS_Os_00191], SWS OS S. 184.

GetScheduleTableStatus meldet für eine nicht gestartete Tabelle SCHEDULETABLE_STOPPED zusammen mit E_OK SWS OS S. 189, [SWS_Os_00784].

ScheduleTable start Start STOPPED SCHEDULETABLE_STOPPED start->STOPPED NEXT SCHEDULETABLE_NEXT STOPPED->NEXT NextScheduleTable() WAITING SCHEDULETABLE_WAITING STOPPED->WAITING StartScheduleTableSynchron() RUNNING SCHEDULETABLE_RUNNING STOPPED->RUNNING StartScheduleTableAbs() StartScheduleTableRel() NEXT->STOPPED StopScheduleTable() NEXT->RUNNING vorherige Tabelle endet WAITING->STOPPED StopScheduleTable() SYNC SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS WAITING->SYNC SyncScheduleTable() RUNNING->STOPPED StopScheduleTable() oder Tabelle endet RUNNING->SYNC |Abweichung| <= Precision SYNC->STOPPED StopScheduleTable() SYNC->RUNNING SetScheduleTableAsync() oder |Abweichung| > Precision

Zustandsdiagramm: Lebenszyklus einer ScheduleTable mit allen Zuständen von ScheduleTableStatusType; WAITING und RUNNING treten nur bei expliziter Synchronisation auf, implizit synchronisierte Tabellen kennen nur STOPPED, NEXT und RUNNING_AND_SYNCHRONOUS. Quellen: [SWS_Os_00784], SWS OS S. 43, SWS OS S. 49, SWS OS S. 48

Synchronisation von ScheduleTables mit globaler Zeit

Bei impliziter Synchronisation ist der treibende Counter selbst der Synchronisationszähler. Die Tabelle kennt dann nur drei Zustände SWS OS S. 48. StartScheduleTableRel liefert für OsScheduleTblSyncStrategy = IMPLICIT den Fehler E_OS_ID SWS OS S. 179. Explizite Synchronisation gleicht dagegen eine lokal getriebene Tabelle an einen fremden Synchronisationszähler an. Sie ist als Sicherheitsmaßnahme für die Kopplung an die Zeitbasis des StbM aufgeführt Safety Measures S. 66.

Für den Start gibt es zwei Wege SWS OS S. 49, [SWS_Os_00201]:

  • Asynchron über StartScheduleTableAbs oder StartScheduleTableRel, bezogen auf den treibenden Counter.
  • Synchron über StartScheduleTableSynchron. Hier wird der Initial Expiry Point (Duration − Value) + InitialOffset Ticks nach Bereitstellung des Synchronisationswerts verarbeitet.

SyncScheduleTable übergibt den aktuellen Wert des Synchronisationszählers. Dessen Modulus entspricht der Tabellendauer SWS OS S. 52, [SWS_Os_00199].

Das OS berechnet daraus die Abweichung und passt an jedem Expiry Point die Verzögerung an. Liegt die Abweichung innerhalb von OsScheduleTblExplicitPrecision, gilt die Tabelle als „running and synchronous“ SWS OS S. 57. SetScheduleTableAsync stoppt die Nachführung bis zum nächsten SyncScheduleTable; die Expiry Points laufen dabei weiter SWS OS S. 188, [SWS_Os_00422].

Explizite Synchronisation einer ScheduleTable durch den StbMBSW-Task (OS-Task oder zyklischer Aufruf)StbMOsStbM_MainFunction()GetScheduleTableStatus(ScheduleTableID, &ScheduleStatus)E_OK, ScheduleStatusaltScheduleStatus == WAITING, RUNNING oder RUNNING_AND_SYNCHRONOUSSyncScheduleTable(ScheduleTableID, GlobalTimeTick)Abweichung berechnen,Verzögerung bis zum nächsten Expiry Point anpassensonstkein SyncScheduleTableAblauf wiederholt sich bei jedem Aufruf von StbM_MainFunction()

Sequenzdiagramm: Der StbM fragt zyklisch den Tabellenstatus ab und liefert nur bei gestarteter Tabelle einen Synchronisationswert. Quellen: SWS StbM S. 220, SWS StbM S. 117, [SWS_Os_00227], [SWS_Os_00199]

Schutzkonzept: OS-Applications, Zugriffsrechte und Trusted Functions

Das OS verhindert Zugriffe einer OS-Application auf fremde Objekte, sofern die Konfiguration sie nicht ausdrücklich erlaubt SWS OS S. 62. Fehlen die Rechte, liefert ein Dienst E_OS_ACCESS. Ausgenommen sind die Prüfdienste für Speicher- und Objektzugriff, die immer erlaubt sind SWS OS S. 73.

Zur Laufzeit stehen folgende Abfragen zur Verfügung:

  • GetApplicationID nennt die OS-Application, zu der der Aufrufer konfiguriert ist [SWS_Os_00016].
  • GetCurrentApplicationID nennt die OS-Application, in der der Aufrufer gerade ausgeführt wird. Beide Werte unterscheiden sich nur innerhalb von CallTrustedFunction [SWS_Os_00797], [SWS_Os_00798].
  • CheckObjectOwnership liefert den Eigentümer eines Objekts oder INVALID_OSAPPLICATION SWS OS S. 178.
  • CheckObjectAccess liefert ACCESS oder NO_ACCESS; bei ungültigen Argumenten immer NO_ACCESS SWS OS S. 177.

CheckTaskMemoryAccess und CheckISRMemoryAccess liefern als AccessType die Rechte auf einen Speicherbereich und ob er zum Stack gehört. Ein Recht, das nicht für den ganzen Bereich gilt, wird verneint. Eine ungültige ID ergibt gar keine Rechte SWS OS S. 175, SWS OS S. 174. Ausgewertet wird das Ergebnis mit Makros wie OSMEMORY_IS_WRITEABLE SWS OS S. 160.

CallTrustedFunction führt eine Funktion mit den Schutzeinstellungen der bereitstellenden OS-Application aus. Ist der Index nicht konfiguriert, folgen E_OS_SERVICEID und ein Aufruf des ErrorHook SWS OS S. 85, SWS OS S. 172. In R20-11 richtet sich das Synchronverhalten nach der aufgerufenen Funktion, und der Aufruf kann ein Rescheduling auslösen [SWS_Os_00097]. Auch für trusted OS-Applications muss sich der Schreibzugriff beschränken lassen [SWS_Os_00795].

Aufruf einer Trusted Functionaufrufende OS-ApplicationTrusted-Function-StubBetriebssystem (System-Call-Dispatcher)bereitstellende OS-ApplicationDienstaufrufArgumente in Parameterstruktur packenCallTrustedFunction(FunID, FunParPtr)Berechtigung prüfenaltverweigertE_OS_SERVICEIDakzeptiert<trusted function>mit Schutzeinstellungen der bereitstellenden OS-ApplicationCheckTaskMemoryAccess(...)AccessTypeRückkehrE_OKRückgabewert

Sequenzdiagramm: Ein Stub verpackt die Argumente; das OS prüft die Berechtigung und wechselt erst dann in die bereitstellende OS-Application, deren Funktion ihrerseits Speicherrechte prüft. Quellen: SWS OS S. 185, SWS OS S. 396, [SWS_Os_00097]

Für geschützte Hardwarezugriffe gibt es ReadPeripheral, WritePeripheral und ModifyPeripheral in 8, 16 und 32 Bit. Sie arbeiten auf Peripheriebereichen vom Typ AreaIdType [SWS_Os_91000]. Die Modify-Variante berechnet *Address = (*Address & Clearmask) | Setmask SWS OS S. 209.

Für jede Kategorie-2-ISR gibt es DisableInterruptSource, EnableInterruptSource und ClearPendingInterrupt [SWS_Os_00808]. ClearPendingInterrupt löscht nur das Pending-Flag im Interrupt-Controller [SWS_Os_00814].

Unterschied zwischen den Fassungen: In R20-11 löscht EnableInterruptSource das Pending-Flag immer [SWS_Os_00811], obwohl die Signatur einen Parameter ClearPending enthält. Spätere Fassungen beschreiben das Löschen als optional SWS OS S. 177.

Koordination über Kerne und Partitionen hinweg

Spinlocks wirken über Kerngrenzen hinweg. GetSpinlock wartet aktiv, ohne den Aufrufer zu entplanen, und ist auf Task- und Kategorie-2-ISR-Ebene aufrufbar SWS OS S. 115. Im Extended Status erkennt es zwei Deadlock-Fälle [SWS_Os_00686]:

  • E_OS_INTERFERENCE_DEADLOCK: Ein Task auf demselben Kern hält den Lock bereits.
  • E_OS_NESTING_DEADLOCK: Die Verschachtelung mit einem anderen gehaltenen Spinlock ist unzulässig.

TryToGetSpinlock kehrt zurück, wenn ein Task auf einem anderen Kern den Lock belegt. Es liefert dann E_OK mit TRYTOGETSPINLOCK_NOSUCCESS [SWS_Os_00703], [SWS_Os_00792]. Vor dem Beenden eines Tasks und vor WaitEvent sind alle Spinlocks in korrekter Reihenfolge freizugeben [SWS_Os_00695]. Gegen Interferenz hilft das Umschließen mit SuspendAllInterrupts oder die Einstellung OsSpinlockLockMethod SWS OS S. 101.

ActivateTask über Kerngrenzen arbeitet synchron. Der Fehlerbehandler läuft auf dem aufrufenden Kern SWS OS S. 103. ActivateTaskAsyn und SetEventAsyn geben dagegen keine Fehler an den Aufrufer zurück, sondern melden sie nur an den globalen Error-Hook [SWS_Os_00816], [SWS_Os_00817]. Beide gibt es nur in Systemen mit OS-Applications [SWS_Os_00818], [SWS_Os_00819]. Existiert der Aufrufer nicht mehr, entfällt die Meldung SWS OS S. 179.

Der IOC erzeugt seine Funktionen je Sender und Empfänger:

Ist der Puffer voll, meldet der Sender IOC_E_LIMIT, und der Empfänger erhält beim nächsten Lesen IOC_E_LOST_DATA SWS OS S. 219. IocInit und die getrennte Erzeugung von OS- und IOC-Code haben in R20-11 noch den Status DRAFT [SWS_Os_00835], [SWS_Os_00831], [SWS_Os_00834].

Verhalten im Fehlerfall

Viele Prüfungen, etwa auf E_OS_ID, erfolgen nur im Extended Status. Pointer-Argumente werden dort auf NULL_PTR geprüft und mit E_OS_ILLEGAL_ADDRESS abgewiesen SWS OS S. 38. Weitere Fehlerkennungen wie E_OS_PROTECTION_MEMORY und E_OS_STACKFAULT sind zentral definiert [SWS_Os_91025]. Liefert ein Dienst nicht E_OK, ruft das OS den ErrorHook und den ErrorHook_<App> auf SWS OS S. 186, [SWS_Os_00540].

Bei schweren Fehlern ruft das OS den ProtectionHook auf. Dessen ProtectionReturnType bestimmt die weitere Reaktion [SWS_Os_00538], [SWS_Os_00787]. Ist kein ProtectionHook konfiguriert, ruft das OS ShutdownOS auf EXP ALEH S. 60. Beim Beenden einer OS-Application stoppt das OS alle zugehörigen Objekte SWS OS S. 62:

  • alle Tasks und ISRs,
  • ihre Interrupts,
  • ihre Alarme,
  • ihre ScheduleTables.
Reaktion auf eine Schutzverletzung über den ProtectionHookTask / Kategorie-2-ISR der OS-Application <App>ProzessorBetriebssystemUse Case: SchutzverletzungAusführung mit Schutzverletzung«Exception»ProtectionHook(Fatalerror)altPRO_TERMINATETASKISRerzwungene Beendigung des Tasks / der ISRPRO_TERMINATEAPPLerzwungene Beendigung der OS-ApplicationPRO_TERMINATEAPPL_RESTARTerzwungene Beendigung der OS-Application,Restart-Task startenPRO_IGNOREkeine weitere AktionPRO_SHUTDOWNShutdownOS()

Sequenzdiagramm: Der Rückgabewert des ProtectionHook wählt zwischen Ignorieren, Beenden des Tasks/der ISR, Beenden der OS-Application (mit oder ohne Restart) und Herunterfahren. Quellen: SWS OS S. 187, [SWS_Os_00538], [SWS_Os_00787]

Eine OS-Application ist APPLICATION_ACCESSIBLE, APPLICATION_RESTARTING oder APPLICATION_TERMINATED. Den Zustand liefert GetApplicationState [SWS_Os_00773], [SWS_Os_00499]. TerminateApplication nimmt in R20-11 RESTART oder NO_RESTART entgegen [SWS_Os_00258], [SWS_Os_00788]. Spätere Fassungen ignorieren diesen Parameter SWS OS S. 194.

Im Zustand RESTARTING läuft nur die OSRestartTask; andere OS-Applications haben keinen Zugriff. Den Zustand APPLICATION_TERMINATED verlässt eine OS-Application nur durch einen Neustart des Steuergeräts EXP ALEH S. 53. Die OSRestartTask räumt bei Bedarf über CallTrustedFunction auf und gibt die OS-Application dann mit AllowAccess wieder frei EXP ALEH S. 76, [SWS_Os_00501]. Den Code für den ECU-weiten ProtectionHook und die Restart-Task stellt der Integrator bereit EXP ALEH S. 79.

OsApplication start Start ACC APPLICATION_ACCESSIBLE start->ACC StartOS (vor dem ersten StartupHook) RES APPLICATION_RESTARTING ACC->RES PRO_TERMINATEAPPL_RESTART oder TerminateApplication(AppID, RESTART) TER APPLICATION_TERMINATED ACC->TER PRO_TERMINATEAPPL oder TerminateApplication(AppID, NO_RESTART) RES->ACC AllowAccess() (aus der Restart-Task) RES->TER TerminateApplication(self, NO_RESTART)

Zustandsdiagramm: StartOS macht jede OS-Application zugänglich; Schutzreaktionen oder TerminateApplication führen in RESTARTING oder TERMINATED, nur AllowAccess führt zurück. Quellen: EXP ALEH S. 61, [SWS_Os_00773], [SWS_Os_00501]

Weiterführende Detailbelege

KI-generierter Leitfaden auf Basis der im Payload enthaltenen Requirements und Dokumentstellen; normativ sind die Requirements des Releases R20-11, Abweichungen späterer Fassungen sind benannt.

AUTOSAR OS

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

function GetApplication [SWS_Os_00016] 📄 PDF

ApplicationType GetApplicationID (void);

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

function GetCurrentApplication [SWS_Os_00797] 📄 PDF

ApplicationType GetCurrentApplicationID (void);

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

function CallTrustedFunction [SWS_Os_00097] 📄 PDF

StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f4173cc0ef4f Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Über den Systemservice CallTrustedFunction (Service-ID 0x02) kann eine vertrauenswürdige oder nicht-vertrauenswürdige OS-Application eine definierte Trusted Function zur Ausführung aufrufen [SWS_Os_00097]. Die Schnittstelle wird über den Header Os.h bereitgestellt [SWS_Os_00097].

Der Aufruf erfordert die Übergabe von zwei Eingabeparametern [SWS_Os_00097]:

  • FunctionIndex (Typ TrustedFunctionIndexType): Bezeichnet den Index der aufzurufenden Funktion [SWS_Os_00097].
  • FunctionParams (Typ TrustedFunctionParameterRefType): Übergibt einen Zeiger auf die Parameter der Zielfunktion; werden keine Argumente benötigt, muss zwingend ein NULL-Zeiger übergeben werden [SWS_Os_00097].

Hinsichtlich des Zeitverhaltens richtet sich die Ausführung nach der Zielroutine: Ist die aufgerufene Funktion synchron, verhält sich auch der Service synchron [SWS_Os_00097]. Die Funktion ist reentrant implementiert, kann jedoch während der Ausführung ein Rescheduling des Betriebssystems herbeiführen [SWS_Os_00097].

Als Rückgabewert liefert der Dienst einen Statuswert vom Typ StatusType [SWS_Os_00097]:

  • E_OK: Die Ausführung war erfolgreich und fehlerfrei [SWS_Os_00097].
  • E_OS_SERVICEID: Dem übergebenen Index ist keine gültige Funktion zugeordnet [SWS_Os_00097].

Dieser Nutzungshinweis wurde automatisiert auf Basis von AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function CheckISRMemoryAccess [SWS_Os_00512] 📄 PDF

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

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9eaf26d27eff Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion CheckISRMemoryAccess ist ein synchroner und reentranter Systemdienst des OS-Moduls ([SWS_Os_00512]). Sie dient dazu, die Speicherzugriffsrechte einer spezifizierten ISR für einen bestimmten Speicherbereich zur Laufzeit zu überprüfen.

Verwendung und Parameter

Der Aufruf von CheckISRMemoryAccess erwartet drei Eingabeparameter ([SWS_Os_00512]):

  • ISRID: Referenz auf die zu prüfende ISR (ISRType).
  • Address: Startadresse des zu untersuchenden Speicherbereichs (MemoryStartAddressType).
  • Size: Größe des Speicherbereichs (MemorySizeType).

Als Rückgabewert liefert der Dienst den Typ AccessType. Dieser Rückgabewert enthält die Zugriffsrechte (Lesen, Schreiben, Ausführen) auf den spezifizierten Bereich und gibt zusätzlich Auskunft darüber, ob der Speicherbereich Teil des Stack-Bereichs ist ([SWS_Os_00512]).

Nebenläufigkeit und Integration

Gemäß Spezifikation besitzt die Funktion die Service-ID 0x03 und ist als reentrant deklariert ([SWS_Os_00512]). Sie steht über den Header Os.h zur Verfügung ([SWS_Os_00512]). Spezifische Fehlercodes oder explizite Rückmeldungen an DET/DEM werden im vorliegenden Spezifikationsauszug nicht aufgeführt.

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikationsdaten von AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function CheckTaskMemoryAccess [SWS_Os_00513] 📄 PDF

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

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 91d38acf9e0a Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion CheckTaskMemoryAccess stellt einen synchronen Dienst des Betriebssystems dar, der über den Header Os.h bereitgestellt wird und die Service-ID 0x04 besitzt [SWS_Os_00513]. Sie dient dazu, die Speicherzugriffsrechte eines spezifischen Tasks für ein bestimmtes Speichersegment abzufragen [SWS_Os_00513].

Parameter und Rückgabewerte

Beim Aufruf nimmt der Dienst drei Eingangsparameter entgegen [SWS_Os_00513]:

  • Task ID (vom Typ TaskType): Referenz auf den Task, dessen Zugriffsrechte überprüft werden sollen.
  • Address (vom Typ MemoryStartAddressType): Die Startadresse des zu prüfenden Speicherbereichs.
  • Size (vom Typ MemorySizeType): Die Größe des zu überprüfenden Speicherbereichs.

Als Rückgabewert liefert der Dienst eine Variable des Typs AccessType [SWS_Os_00513]. Dieser Rückgabewert enthält die Information, ob der angegebene Speicherbereich für den Task mit Schreib-, Lese- oder Ausführungsrechten zugänglich ist, und gibt zusätzlich an, ob der Bereich Teil des Stack-Bereichs ist [SWS_Os_00513]. Zusätzliche Fehlercodes oder DET-Meldungen sind für diesen Service nicht spezifiziert.

Nebenläufigkeit und Zusammenspiel

Der Dienst ist als reentrant spezifiziert und kann daher in nebenläufigen Ausführungskontexten sicher verwendet werden [SWS_Os_00513]. Während CheckTaskMemoryAccess die Berechtigungen für Speicherbereiche zur Laufzeit abfragt, definiert der AUTOSAR-Standard in ARTI-Modulbeschreibungen Schnittstellen und Datenstrukturen, über die Debugging-Werkzeuge Zustände und Attribute von Betriebssystemobjekten erfassen und auswerten können [SWS_Os_00829].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function CheckObjectAccess [SWS_Os_00256] 📄 PDF

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

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c7ec73500d6c Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die Funktion CheckObjectAccess ([SWS_Os_00256]) ermittelt synchron, ob eine bestimmte OS-Application die Berechtigung besitzt, die ID eines Betriebssystemobjekts in API-Aufrufen zu verwenden. Zur Identifikation der Anwendung dient der Eingangsparameter ApplID vom Typ ApplicationType ([SWS_Os_00256]). Über ObjectType (Typ ObjectTypeType) wird festgelegt, welche Art von Objekt geprüft werden soll; unterstützt werden Task, Resource, Counter, Alarm und Schedule Table ([SWS_Os_00256]). Als dritter Parameter folgt das zu untersuchende Objekt selbst über die variable Parameterliste ... ([SWS_Os_00256]).

Als Rückgabewert liefert die Funktion den Typ ObjectAccessType: Ist der Zugriff der Anwendung auf das Objekt gestattet, wird ACCESS zurückgegeben, andernfalls NO_ACCESS ([SWS_Os_00256]). Der Dienst ist über den Header Os.h deklariert und besitzt die Service-ID 0x05 ([SWS_Os_00256]).

Nebenläufigkeit, Fehlerbehandlung und Zusammenspiel

Der Service ist als reentrant spezifiziert und kann daher in nebenläufigen Ausführungskontexten aufgerufen werden ([SWS_Os_00256]). Spezifische Fehlercodes, Rückgabewerte für Fehlerzustände oder Meldungen an DET oder DEM sind für diese Funktion in der Spezifikation nicht vorgesehen ([SWS_Os_00256]).

Interpretation: Das variable Argument ... dürfte in der Implementierung die konkrete Kennung des Objekts passend zu ObjectType übergeben. Frage Q-5cb52ff94bb07826 (offen) Die geprüften Betriebssystemobjekte spiegeln sich auch in den ARTI-Debugging-Informationen wider, welche Attribute und Zustände von Betriebssystemobjekten erfassen und auswerten ([SWS_Os_00829]).

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function CheckObjectOwnership [SWS_Os_00017] 📄 PDF

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

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 20318a993e09 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Systemfunktion CheckObjectOwnership dient dazu festzustellen, zu welcher OS-Application ein bestimmtes Betriebssystemobjekt gehört [SWS_Os_00017]. Zu den über diesen Dienst abfragbaren Objekten gehören Tasks, Interrupt Service Routines (ISRs), Counter, Alarme sowie Schedule Tables [SWS_Os_00017].

Die Funktion ist über die Header-Datei Os.h verfügbar und besitzt die Service-ID 0x06 [SWS_Os_00017]. Bei der Verwendung nimmt die Funktion zwei Eingabeparameter entgegen:

  • ObjectType: Kennzeichnet als Eingabeparameter vom Typ ObjectTypeType die Art des nachfolgend übergebenen Betriebssystemobjekts [SWS_Os_00017].
  • ...: Übergibt das konkrete, zu untersuchende Objekt an den Dienst [SWS_Os_00017].

Als Rückgabewert liefert die Funktion den Datentyp ApplicationType [SWS_Os_00017]. Dieser enthält die Kennung derjenigen OS-Application, welcher das überprüfte Objekt zugeordnet ist [SWS_Os_00017].

Fehlerbehandlung und Ausführungseigenschaften

Sofern das abgefragte Objekt im System nicht existiert, liefert der Dienst den Rückgabewert INVALID_OSAPPLICATION zurück [SWS_Os_00017].

Hinsichtlich des Nebenläufigkeitsverhaltens ist CheckObjectOwnership als reentrant spezifiziert und arbeitet vollständig synchron [SWS_Os_00017]. Ein- und Ausgabeparameter (inout oder out) existieren neben dem Rückgabewert nicht [SWS_Os_00017].

Dieser Nutzungshinweis basiert auf der Spezifikation SWS_Os_00017 aus AUTOSAR Classic R20-11.

Implementer's Guide folgt (Komplexität I1)

function StartScheduleTableRel [SWS_Os_00347] 📄 PDF

StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9cbbffcaa010 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Parameter

Der Systemdienst StartScheduleTableRel startet die Verarbeitung einer Schedule-Tabelle relativ zum aktuellen Zählerwert („Now“) des zugrundeliegenden Counters [SWS_Os_00347]. Der Aufruf wird synchron ausgeführt und ist über die Schnittstelle Os.h mit der Service-ID 0x07 verfügbar [SWS_Os_00347].

  • ScheduleTableID (Eingabe, ScheduleTableType): Bezeichner der zu startenden Schedule-Tabelle [SWS_Os_00347].
  • Offset (Eingabe, TickType): Relative Anzahl an Zählertakten auf dem Counter, bevor die Verarbeitung der Tabelle beginnt [SWS_Os_00347].

Rückgabewerte und Fehlerbehandlung

Die Funktion gibt einen Statuscode vom Typ StatusType zurück [SWS_Os_00347]:

  • E_OK: Die Schedule-Tabelle wurde fehlerfrei gestartet [SWS_Os_00347].
  • E_OS_STATE: Die angegebene Schedule-Tabelle wurde bereits gestartet [SWS_Os_00347].
  • E_OS_ID (nur bei Status EXTENDED): Die angegebene ScheduleTableID ist ungültig [SWS_Os_00347].
  • E_OS_VALUE (nur bei Status EXTENDED): Der Parameter Offset ist gleich 0 oder überschreitet den Wert (OsCounterMaxAllowedValue - InitialOffset) [SWS_Os_00347].

Nebenläufigkeit und Einschränkungen

Die Funktion ist reentrant spezifiziert [SWS_Os_00347]. Es existieren keine Aus- oder Ein-/Ausgabe-Parameter [SWS_Os_00347].

Dieser Nutzungshinweis basiert auf der Spezifikation AUTOSAR CP R20-11.

Implementer's Guide folgt (Komplexität I2)

function StartScheduleTableAbs [SWS_Os_00358] 📄 PDF

StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8536dbe30f67 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion StartScheduleTableAbs dient dem Starten einer Ablauf-Tabelle (Schedule Table) zu einem vorgegebenen absoluten Zählerstand auf dem zugrunde liegenden Zähler ([SWS_Os_00358]). Der Dienst ist über den Header Os.h verfügbar und wird über die Service-ID 0x08 identifiziert ([SWS_Os_00358]).

Beim Aufruf werden zwei Eingangsparameter übergeben ([SWS_Os_00358]):

  • ScheduleTableID: Kennung der zu startenden Schedule Table.
  • Start: Absoluter Zähler-Tickwert, an dem die Schedule Table gestartet wird.

Als Rückgabewert liefert die Funktion den Status vom Typ StatusType ([SWS_Os_00358]):

  • E_OK: Der Startvorgang war erfolgreich.
  • E_OS_STATE: Die angegebene Schedule Table wurde bereits zuvor gestartet.
  • E_OS_ID: Die übergebene ScheduleTableID ist ungültig (wird nur im Status EXTENDED zurückgegeben).
  • E_OS_VALUE: Der Wert von Start überschreitet den maximal zulässigen Zählerwert OsCounterMaxAllowedValue (wird nur im Status EXTENDED zurückgegeben).

Hinsichtlich des Zusammenspiels können der Zustand und die dynamischen Attribute von Betriebssystem-Objekten wie Schedule Tables über ARTI-Modulbeschreibungen von angeschlossenen Debug-Werkzeugen ausgewertet und dargestellt werden ([SWS_Os_00829]). Interpretation: Der Aufrufkontext dürfte vor allem Task-Ebenen umfassen, da im Spezifikationsauszug keine explizite Einschränkung angegeben ist. Frage Q-213de28d0345ccb1 (offen)

Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationen des Releases R20-11.

Implementer's Guide folgt (Komplexität I2)

function StopScheduleTable [SWS_Os_00006] 📄 PDF

StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: acbfdebe2422 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Systemfunktion StopScheduleTable ([SWS_Os_00006]) bricht die Abarbeitung einer laufenden Schedule-Tabelle zu jedem beliebigen Verarbeitungszeitpunkt unmittelbar ab. Der Dienst ist im Header Os.h deklariert und besitzt die Service-ID 0x09 ([SWS_Os_00006]). Als einziger Eingangsparameter dient ScheduleTableID vom Typ ScheduleTableType, welcher die zu stoppende Schedule-Tabelle spezifiziert; Ein-/Ausgangs- oder reine Ausgangsparameter existieren nicht ([SWS_Os_00006]).

Der synchrone Aufruf liefert als Rückgabewert einen Statuscode vom Typ StatusType ([SWS_Os_00006]):

  • E_OK: Die Verarbeitung der Schedule-Tabelle wurde fehlerfrei gestoppt ([SWS_Os_00006]).
  • E_OS_NOFUNC: Die angegebene Schedule-Tabelle befand sich bereits im Zustand gestoppt ([SWS_Os_00006]).
  • E_OS_ID: Die übergebene Kennung ScheduleTableID ist ungültig. Dieser Rückgabewert wird laut Spezifikation nur im Status EXTENDED erzeugt ([SWS_Os_00006]).

Die Funktion ist als reentrant definiert ([SWS_Os_00006]). Interpretation: Angesichts der deklarierten Reentranz dürfte der synchrone Aufruf aus mehreren OS-Kontexten zulässig sein, obgleich konkrete Kontextbeschränkungen im vorliegenden Spezifikationsauszug fehlen. Frage Q-9cb147c4bc7dba7e (offen) Zur Laufzeitüberwachung können Zustand und dynamische Attribute von OS-Objekten wie Schedule-Tabellen über ARTI-Beschreibungsdateien an angeschlossene Debug- und Analysewerkzeuge übermittelt werden ([SWS_Os_00829]).

Hinweis: Diese Erläuterung wurde automatisiert auf Basis der Spezifikation von AUTOSAR Classic Release R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function NextScheduleTable [SWS_Os_00191] 📄 PDF

StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: dfc067e72659 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion NextScheduleTable dient dem synchronen Umschalten der Verarbeitung von einer laufenden Schedule-Tabelle auf eine Folgetabelle [SWS_Os_00191]. Der Service ist reentrant ausgelegt und über den Header Os.h deklariert [SWS_Os_00191].

Parameter und Aufruf

Dem Aufruf werden zwei Eingabeparameter vom Typ ScheduleTableType übergeben [SWS_Os_00191]:

  • ScheduleTableID_From: Kennung der gegenwärtig verarbeiteten Schedule-Tabelle [SWS_Os_00191].
  • ScheduleTableID_To: Kennung der Schedule-Tabelle, welche die nachfolgende Folge von Ablaufpunkten (Expiry Points) bereitstellt [SWS_Os_00191].

Rückgabewerte und Fehlerbehandlung

Die Funktion liefert einen Statuswert vom Typ StatusType zurück [SWS_Os_00191]:

  • E_OK: Der Wechselauftrag wurde fehlerfrei abgesetzt [SWS_Os_00191].
  • E_OS_ID: Wird ausschließlich bei konfiguriertem EXTENDED-Status zurückgegeben, falls mindestens eine der übergebenen Tabellenkennungen ungültig ist [SWS_Os_00191].
  • E_OS_NOFUNC: Die Ausgangstabelle ScheduleTableID_From befindet sich nicht im gestarteten Zustand [SWS_Os_00191].
  • E_OS_STATE: Die Zieltabelle ScheduleTableID_To ist bereits aktiv gestartet oder bereits als Folgetabelle vorgemerkt [SWS_Os_00191].

Zusammenspiel und Diagnose

Zur Beobachtung und Analyse des Betriebssystems unterstützen ARTI-Modulbeschreibungen entsprechende ORTI-Container, womit Debug-Werkzeuge unter anderem dynamische Zustände von Betriebssystem-Objekten auswerten und darstellen können [SWS_Os_00829].

Dieser Text wurde automatisch generiert. Alle Angaben basieren ausschließlich auf den Spezifikationen des AUTOSAR-Releases R20-11.

Implementer's Guide folgt (Komplexität I2)

function StartScheduleTableSynchron [SWS_Os_00201] 📄 PDF

StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);

This service starts an explicitly synchronized schedule table synchronously.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 8edf7224d053 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Der Systemdienst StartScheduleTableSynchron dient dazu, eine explizit synchronisierte Schedule-Tabelle synchron zu starten [SWS_Os_00201]. Die Funktion ist in der Header-Datei Os.h deklariert und besitzt die Service-ID 0x0b [SWS_Os_00201]. Als einzigen Übergabeparameter erwartet die Funktion den Eingabeparameter ScheduleTableID vom Typ ScheduleTableType, der die zu startende Tabelle eindeutig referenziert [SWS_Os_00201]. Ein-Ausgabe- oder reine Ausgabe-Parameter sind nicht vorhanden [SWS_Os_00201]. Die Verarbeitung erfolgt synchron und liefert einen Rückgabewert vom Typ StatusType zurück [SWS_Os_00201].

Fehlerbehandlung

Im fehlerfreien Ablauf gibt der Funktionsaufruf den Statuscode E_OK zurück [SWS_Os_00201]. Bei Fehlern sind folgende Rückgabewerte spezifiziert:

  • E_OS_STATE: Die angegebene Schedule-Tabelle befindet sich bereits im gestarteten Zustand und kann nicht erneut synchron gestartet werden [SWS_Os_00201].
  • E_OS_ID: Die übergebene ScheduleTableID ist ungültig [SWS_Os_00201]. Diese Fehlerprüfung und Fehlermeldung ist ausschließlich im EXTENDED-Status aktiv [SWS_Os_00201].

Nebenläufigkeit und Einschränkungen

Die Funktion ist als reentrant spezifiziert [SWS_Os_00201]. Da der wiederholte Aufruf für eine bereits aktive Tabelle mit E_OS_STATE abgewiesen wird, muss der Aufrufer sicherstellen, dass die Zieltabelle vor dem Aufruf nicht bereits läuft [SWS_Os_00201].

Zusammenspiel

Zustandsübergänge und dynamische Eigenschaften von Betriebssystemobjekten können für Test- und Diagnosewerkzeuge über ARTI-Modulbeschreibungsdateien und ORTI-Container nachvollzogen werden [SWS_Os_00829]. Externe Debugger nutzen diese Beschreibungen, um den internen Status der OS-Objekte zur Laufzeit auszuwerten [SWS_Os_00829].

Dieser Text wurde von einer KI basierend auf der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function SyncScheduleTable [SWS_Os_00199] 📄 PDF

StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);

Service SyncScheduleTable.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 50f85b0fc4ce Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der synchrone und reentrante Betriebssystemdienst SyncScheduleTable dient dazu, einer Schedule-Tabelle einen Zählerwert zu übergeben und den Synchronisationsprozess zu starten ([SWS_Os_00199]). Die Funktion wird über die Header-Datei Os.h bereitgestellt ([SWS_Os_00199]).

Parameter und Rückgabewerte

Die Funktion erwartet zwei Eingabeparameter ([SWS_Os_00199]):

  • Schedule Table ID: Kennung der zu synchronisierenden Schedule-Tabelle vom Typ ScheduleTableType ([SWS_Os_00199]).
  • Value: Aktueller Zählerstand des Synchronisationszählers vom Typ TickType ([SWS_Os_00199]).

Der Rückgabewert vom Typ StatusType signalisiert mit E_OK die fehlerfreie Ausführung ([SWS_Os_00199]).

Fehlerbehandlung und Randbedingungen

Befindet sich die Tabelle zum Aufrufzeitpunkt im Zustand SCHEDULETABLE_STOPPED, wird der Fehler E_OS_STATE zurückgegeben ([SWS_Os_00199]). Ist das Betriebssystem im EXTENDED-Status konfiguriert, greifen weitere Prüfungen ([SWS_Os_00199]):

  • E_OS_ID: Die angegebene Tabellen-ID ist ungültig oder die Tabelle kann nicht synchronisiert werden, weil Os Schedule Tbl Sync Strategy unkonfiguriert oder auf IMPLICIT gesetzt ist ([SWS_Os_00199]).
  • E_OS_VALUE: Der übergebene Zählerwert Value liegt außerhalb des zulässigen Bereichs ([SWS_Os_00199]).

Zusammenspiel und Diagnose

Zustände und dynamische Attribute von Betriebssystemobjekten wie Schedule-Tabellen können über ARTI-Modulbeschreibungen und ORTI-Container durch angeschlossene Debug- und Diagnose-Werkzeuge ausgewertet werden ([SWS_Os_00829]).

Dieser Text wurde von einer KI basierend auf AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function SetScheduletableAsync [SWS_Os_00422] 📄 PDF

StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);

This service stops synchronization of a schedule table.

function GetScheduleTableStatusof [SWS_Os_00227] 📄 PDF

StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);

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

function IncrementCounter [SWS_Os_00399] 📄 PDF

StatusType IncrementCounter (CounterType CounterID);

This service increments a software counter.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 40e8148ee79f Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone Betriebssystemfunktion IncrementCounter dient dem expliziten Weiterschalten eines Software-Zählers [SWS_Os_00399]. Sie erwartet als Eingangsparameter die Kennung CounterID vom Typ CounterType, modifiziert keine weiteren Parameter und steht über den Header Os.h zur Verfügung [SWS_Os_00399]. Zu beachten ist, dass der Aufruf ein sofortiges Rescheduling des Betriebssystems veranlassen kann [SWS_Os_00399].

Fehlerbehandlung

Der Rückgabewert vom Typ StatusType gibt Aufschluss über den Erfolg der Operation: Im regulären Betriebsfall meldet E_OK die fehlerfreie Ausführung [SWS_Os_00399]. Bei aktivierter erweiterter Statusprüfung (EXTENDED-Status) liefert der Dienst E_OS_ID zurück, falls eine ungültige Zähler-ID angegeben wurde oder wenn der referenzierte Zähler in Hardware realisiert ist und sich folglich nicht per Software inkrementieren lässt [SWS_Os_00399].

Nebenläufigkeit und Diagnose

Die Funktion ist reentrant ausgelegt und darf somit nebenläufig aufgerufen werden [SWS_Os_00399]. Ein mögliches Rescheduling dürfte Interpretation: eintreten, wenn das Weiterschalten des Zählers abhängige Aktionen wie Alarmabläufe oder Task-Aktivierungen auslöst. Frage Q-9004b5ced9b96230 (offen) Zur Beobachtung von Betriebssystemobjekten wie Zählern sowie deren dynamischem Zustand unterstützen ARTI-Modulbeschreibungen angeschlossene Analysewerkzeuge bei der Laufzeitüberwachung [SWS_Os_00829].

Dieser Nutzungshinweis wurde automatisiert generiert und basiert auf den Spezifikationen des AUTOSAR-Releases R20-11.

Implementer's Guide folgt (Komplexität I2)

function GetCounterValue [SWS_Os_00383] 📄 PDF

StatusType GetCounterValue (CounterType CounterID, TickRefType Value);

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

function GetElapsedValue [SWS_Os_00392] 📄 PDF

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

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

function TerminateApplication [SWS_Os_00258] 📄 PDF

StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);

Service TerminateApplication.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 2ba1bf6d0722 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion TerminateApplication dient dem Beenden einer OS-Application und steht über die Header-Datei Os.h zur Verfügung [SWS_Os_00258]. Der Aufruf ist aus dem Kontext eines Tasks, einer Kategorie-2-ISR sowie eines anwendungsspezifischen Error-Hooks zulässig [SWS_Os_00258].

Als Eingangsparameter werden die Kennung der Zielanwendung (Application) und das Neustartverhalten (Restart Option) übergeben [SWS_Os_00258]:

  • Gehört der Aufrufer selbst zu der in Application angegebenen Anwendung, führt die Ausführung zu einer Selbstterminierung [SWS_Os_00258].
  • Über Restart Option wird festgelegt, ob die OS-Application im Anschluss neu gestartet werden soll (RESTART) oder nicht (NO_RESTART) [SWS_Os_00258].

Die Funktion gibt einen Statuswert vom Typ StatusType zurück [SWS_Os_00258]:

  • E_OK signalisiert eine fehlerfreie Terminierung [SWS_Os_00258].
  • E_OS_STATE zeigt an, dass der aktuelle Zustand von Application das Beenden nicht erlaubt [SWS_Os_00258].
  • Im EXTENDED-Status werden zusätzliche Fehlerprüfungen durchgeführt: E_OS_ID bei einer ungültigen Anwendungs-ID, E_OS_VALUE bei einem ungültigen Parameterwert für Restart Option sowie E_OS_ACCESS, falls dem Aufrufer die Berechtigung zum Beenden von Application fehlt [SWS_Os_00258].

Dieser Nutzungshinweis wurde automatisch auf Basis der Spezifikation SWS_Os_00258 generiert.

Implementer's Guide folgt (Komplexität I2)

function AllowAccess [SWS_Os_00501] 📄 PDF

StatusType AllowAccess (void);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5da6dc1b3684 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Der synchrone Systemdienst AllowAccess (Service-ID 0x13) dient dazu, den Zustand der eigenen OS-Application von APPLICATION_RESTARTING auf APPLICATION_ACCESSIBLE zu setzen ([SWS_Os_00501]). Die Funktion ist über die Header-Datei Os.h verfügbar, erwartet keine Übergabeparameter und gibt einen Statuswert vom Typ StatusType zurück ([SWS_Os_00501]). Bei erfolgreicher Durchführung der Zustandsänderung liefert der Aufruf den Rückgabewert E_OK ([SWS_Os_00501]).

Fehlerbehandlung und Nebenläufigkeit

Falls sich die aufrufende OS-Application nicht im Zustand APPLICATION_RESTARTING befindet, schlägt die Ausführung fehl und die Funktion gibt den Fehlerwert E_OS_STATE zurück ([SWS_Os_00501]). Spezifische DET- oder DEM-Meldungen sind in der Spezifikation für diesen Dienst nicht definiert. Hinsichtlich des Nebenläufigkeitsverhaltens ist die Funktion als reentrant eingestuft und kann daher sicher in parallelen Abläufen ausgeführt werden ([SWS_Os_00501]).

Zusammenspiel und Diagnose

Interpretation: Der Aufruf dürfte typischerweise am Ende einer applikationseigenen Wiederanlaufphase erfolgen, sobald sämtliche Vorbereitungen abgeschlossen sind und andere Anwendungen wieder auf die Ressourcen zugreifen dürfen. Frage Q-f43a3f702d5d2428 (offen) Die dynamischen Zustände des Betriebssystems und der zugehörigen OS-Objekte können im Rahmen der Systemdiagnose über standardisierte ARTI-Beschreibungsdateien und zugehörige Debug-Tools ausgewertet und visualisiert werden ([SWS_Os_00829]).

Dieser Text wurde von einer KI erstellt und basiert auf dem Spezifikationsstand R20-11.

Implementer's Guide folgt (Komplexität I1)

function GetNumberActivatedCores [SWS_Os_00672] 📄 PDF

uint32 GetNumberOfActivatedCores (void);

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

function StartCore [SWS_Os_00676] 📄 PDF

void StartCore (CoreIdType CoreID, StatusType* Status);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 06b25350e939 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion StartCore startet den über den Parameter Core ID spezifizierten Prozessorkern [SWS_Os_00676]. Die Funktion besitzt keinen direkten Rückgabewert, sondern übergibt das Ergebnis der Ausführung über den OUT-Parameter Status an den Aufrufer [SWS_Os_00676]. Wurde ein Kern mittels dieser Funktion gestartet, muss auf dem betreffenden Kern nachfolgend Start OS aufgerufen werden [SWS_Os_00676].

Für den Aufrufkontext sowie die Nebenläufigkeit gelten feste Einschränkungen: StartCore ist als nicht reentrant (Non Reentrant) spezifiziert [SWS_Os_00676]. Ein Aufruf nach dem Starten des Betriebssystems über Start OS() wird nicht unterstützt [SWS_Os_00676]. Der Dienst ist synchron implementiert und wird über die Header-Datei Os.h mit der Service-ID 0x17 bereitgestellt [SWS_Os_00676].

Die Fehlerbehandlung erfolgt über den Parameter Status, der je nach Status-Konfiguration folgende Werte annehmen kann [SWS_Os_00676]:

  • Im Standard-Status zeigt E_OK eine fehlerfreie Ausführung an [SWS_Os_00676].
  • Im erweiterten Status (extended status) bestätigt E_OK ebenfalls einen erfolgreichen Start [SWS_Os_00676].
  • E_OS_ID meldet, dass die übergebene Core ID ungültig ist [SWS_Os_00676].
  • E_OS_ACCESS signalisiert einen unzulässigen Aufruf nach dem Start des Betriebssystems [SWS_Os_00676].
  • E_OS_STATE zeigt an, dass der angeforderte Prozessorkern bereits aktiviert ist [SWS_Os_00676].

Dieser Nutzungshinweis wurde von einer KI generiert und stützt sich ausschließlich auf die Spezifikation des AUTOSAR-Classic-Betriebssystems aus Release R20-11.

Implementer's Guide folgt (Komplexität I2)

function StartNonCore [SWS_Os_00682] 📄 PDF

void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4541cad4d0e6 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die synchrone und nicht reentrante Funktion StartNonCore startet den über den Parameter CoreID spezifizierten Prozessorkern [SWS_Os_00682]. Sie darf nach dem Start des Betriebssystems über StartOS() aufgerufen werden und ist über die Header-Datei Os.h verfügbar [SWS_Os_00682]. Über den Ausgangsparameter Status kann der Aufrufer überprüfen, ob der Startvorgang erfolgreich war [SWS_Os_00682].

Fehlerbehandlung und Statuswerte

Die Funktion besitzt keinen direkten Rückgabewert, meldet das Ergebnis der Ausführung jedoch über den Zeigerparameter Status zurück [SWS_Os_00682]:

  • E_OK: Die Operation wurde erfolgreich und fehlerfrei ausgeführt [SWS_Os_00682].
  • E_OS_ID: Die angegebene CoreID ist ungültig (im Standard-Status) [SWS_Os_00682].
  • E_OS_STATE: Der angegebene Prozessorkern ist bereits aktiviert (im Standard-Status) [SWS_Os_00682].

Einschränkungen und Reihenfolgebedingungen

Als nicht reentrante Schnittstelle darf StartNonCore nicht nebenläufig ausgeführt werden [SWS_Os_00682]. Zudem gilt die strikte Vorgabe, dass auf Prozessorkernen, die über diese Funktion aktiviert wurden, keinesfalls StartOS aufgerufen werden darf; andernfalls ist das Systemverhalten unpezifiziert [SWS_Os_00682].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function GetSpinlock [SWS_Os_00686] 📄 PDF

StatusType GetSpinlock (SpinlockIdType SpinlockId);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: aaf2a4bc7e29 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Betriebssystemfunktion GetSpinlock ([SWS_Os_00686]) dient der Belegung einer Spinlock-Variablen über den Übergabeparameter SpinlockId (Typ SpinlockIdType). Bei der Ausführung nutzt die Funktion einen aktiven Polling-Mechanismus („busy waiting“), ohne dass ein De-Scheduling des aufrufenden Tasks ausgelöst wird ([SWS_Os_00686]).

Die Funktion kehrt erst zurück, wenn die Sperre erfolgreich akquiriert wurde oder ein Fehler aufgetreten ist. Als Rückgabewert liefert GetSpinlock den StatusType ([SWS_Os_00686]):

  • E_OK: Die Sperre wurde fehlerfrei belegt (im Standard- und Extended-Status).
  • E_OS_ID: Die übergebene SpinlockId ist ungültig (nur im Extended-Status).
  • E_OS_INTERFERENCE_DEADLOCK: Ein Task versucht das Spinlock zu belegen, während es bereits durch einen Task auf demselben Core belegt ist (nur im Extended-Status).
  • E_OS_NESTING_DEADLOCK: Ein Task versucht das Spinlock anzufordern, während ein Task desselben Cores bereits ein anderes Spinlock hält, was einen Deadlock verursachen könnte (nur im Extended-Status).
  • E_OS_ACCESS: Auf das angegebene Spinlock kann nicht zugegriffen werden (nur im Extended-Status).

Im Rahmen der Systembeobachtung und Fehleranalyse stellt das Betriebssystem dynamische Zustandsinformationen über OS-Objekte bereit, welche gemäß [SWS_Os_00829] über ARTI- und ORTI-Container für Debug-Werkzeuge auswertbar sind; vermutlich lassen sich hierüber auch Blockadesituationen an Spinlocks nachvollziehen. Frage Q-bac194d4132f6e88 (offen)

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function ReleaseSpinlock [SWS_Os_00695] 📄 PDF

StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 3c94a21733b1 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion ReleaseSpinlock gibt eine zuvor belegte Spinlock-Variable frei ([SWS_Os_00695]). Über den Übergabeparameter SpinlockId vom Typ SpinlockIdType wird die freizugebende Spinlock-Instanz spezifiziert ([SWS_Os_00695]).

Reihenfolgebedingungen und Einschränkungen

Für den Aufruf gelten strikte zeitliche und strukturelle Vorgaben ([SWS_Os_00695]):

  • Vor dem Beenden eines Tasks müssen sämtliche zuvor mittels GetSpinlock() belegten Spinlock-Variablen wieder freigegeben werden ([SWS_Os_00695]).
  • Vor dem Aufruf von WaitEvent sind ausnahmslos alle gehaltenen Spinlocks freizugeben ([SWS_Os_00695]).
  • Die Freigabe muss in der korrekten Schachtelungsreihenfolge erfolgen; ein Freigabeversuch bei noch belegten übergeordneten Spinlocks oder Ressourcen schlägt fehl ([SWS_Os_00695]).

Rückgabewerte und Fehlerbehandlung

Im Erfolgsfall liefert der Dienst sowohl im Standard- als auch im erweiterten Status E_OK zurück ([SWS_Os_00695]). Im erweiterten Status (Extended Status) sind spezifische Fehlercodes definiert ([SWS_Os_00695]):

  • E_OS_ID: Die übergebene SpinlockId ist ungültig ([SWS_Os_00695]).
  • E_OS_STATE: Der Spinlock ist nicht durch den aufrufenden Task belegt ([SWS_Os_00695]).
  • E_OS_ACCESS: Auf den Spinlock kann nicht zugegriffen werden ([SWS_Os_00695]).
  • E_OS_NOFUNC: Versuch, den Spinlock freizugeben, während zuvor noch ein anderer Spinlock oder eine Ressource freigegeben werden muss ([SWS_Os_00695]).

Die Funktion steht über den Header Os.h zur Verfügung ([SWS_Os_00695]). ARTI-Beschreibungsdateien unterstützen ORTI-Container zur dynamischen Zustands- und Performance-Auswertung von Betriebssystemobjekten ([SWS_Os_00829]).

Dieser Text wurde von einer KI erstellt und durch autodocs kuratiert.

Implementer's Guide folgt (Komplexität I2)

function TryToGetSpinlock [SWS_Os_00703] 📄 PDF

StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 1d98a899f332 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Betriebssystemfunktion TryToGetSpinlock dient dem nicht-blockierenden Belegen einer Spinlock-Instanz über den Header Os.h [SWS_Os_00703]. Sie übernimmt dieselbe Grundfunktionalität wie GetSpinlock, wartet jedoch nicht aktiv, falls der angeforderte Spinlock bereits durch einen TASK auf einem anderen Core belegt ist [SWS_Os_00703].

Parameter und Rückgabewerte

  • SpinlockId (Eingabe): Referenziert die konkrete Spinlock-Instanz, die gesperrt werden soll [SWS_Os_00703].
  • Success (Ausgabe): Zeigt über den Typ TryToGetSpinlockType* an, ob der Lock belegt werden konnte oder nicht [SWS_Os_00703]. Ist die Sperre auf einem anderen Core besetzt, setzt die Funktion diesen Parameter entsprechend und kehrt mit E_OK zurück [SWS_Os_00703].
  • Rückgabewert: Liefert E_OK im Standard- und Extended-Status zurück, wenn kein Fehler vorliegt [SWS_Os_00703].

Fehlerbehandlung und Randbedingungen

Im Extended-Status prüft das Betriebssystem auf ungültige Aufrufe sowie Deadlock-Szenarien [SWS_Os_00703]:

  • E_OS_ID: Die übergebene SpinlockId ist ungültig [SWS_Os_00703].
  • E_OS_ACCESS: Auf den Spinlock kann nicht zugegriffen werden [SWS_Os_00703].
  • E_OS_INTERFERENCE_DEADLOCK: Ein TASK versucht die Sperre zu belegen, während dieselbe Sperre bereits durch einen TASK auf demselben Core gehalten wird [SWS_Os_00703].
  • E_OS_NESTING_DEADLOCK: Ein TASK versucht einen Spinlock zu belegen, während er bereits einen anderen Spinlock hält, was zu einem Deadlock führen könnte [SWS_Os_00703].

Dieser Nutzungshinweis wurde automatisch durch ein KI-System auf Basis der Spezifikation AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function ShutdownAllCores [SWS_Os_00713] 📄 PDF

void ShutdownAllCores (StatusType Error);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 751c4aeab334 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Systemfunktion ShutdownAllCores mit der Service-ID 0x1c dient dem kontrollierten und vollständigen Herunterfahren des AUTOSAR-Betriebssystems über alle vorhandenen Prozessorkerne hinweg ([SWS_Os_00713]). Sobald der Dienst aufgerufen wird, erzwingt die Funktion einen Shutdown auf sämtlichen anderen Cores, sodass das Betriebssystem auf allen AUTOSAR-Kernen heruntergefahren wird ([SWS_Os_00713]).

Aufrufkontext und Nebenläufigkeit

Die Funktion ist im Header Os.h deklariert und als reentrant spezifiziert ([SWS_Os_00713]). Der Aufruf von ShutdownAllCores ist sowohl auf Task-Ebene (TASK level) als auch auf Interrupt-Ebene (ISR level) uneingeschränkt zulässig ([SWS_Os_00713]). Zudem kann der Dienst auch betriebssystemintern direkt durch das AUTOSAR OS ausgeführt werden ([SWS_Os_00713]).

Parameter und Kontrollfluss

Die Schnittstelle erwartet als einzigen Eingangsparameter Error vom Typ StatusType ([SWS_Os_00713]). Für diesen Parameter muss zwingend ein gültiger, vom AUTOSAR-Betriebssystem unterstützter Fehlercode übergeben werden ([SWS_Os_00713]). Aus- oder Ein-/Ausgangsparameter existieren nicht ([SWS_Os_00713]). Da die Funktion nach dem Auslösen des systemweiten Shutdowns niemals zum Aufrufer zurückkehrt, besitzt sie keinen Rückgabewert (void) ([SWS_Os_00713]).

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation von AUTOSAR R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function ControlIdle [SWS_Os_00769] 📄 PDF

StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 33a045f6c446 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone Funktion ControlIdle ermöglicht es dem Aufrufer, die Aktion festzulegen, die während der Leerlaufzeit des Betriebssystems (wenn weder ein Task noch eine ISR aktiv ist) ausgeführt wird [SWS_Os_00769]. Dies dient primär der Implementierung von Maßnahmen zur Energieeinsparung. Die realen Leerlaufmodi sind hardwareabhängig und nicht standardisiert; der Standardmodus auf jedem Prozessorkern lautet IDLE_NO_HALT [SWS_Os_00769]. Bereitgestellt wird die Schnittstelle über die Header-Datei Os.h [SWS_Os_00769].

Die Funktion erwartet zwei Eingabeparameter:

  • CoreID (vom Typ CoreIdType): Wählt den Prozessorkern aus, dessen Leerlaufmodus gesetzt werden soll [SWS_Os_00769].
  • IdleMode (vom Typ IdleModeType): Bestimmt den Modus, der in der Leerlaufzeit ausgeführt werden soll [SWS_Os_00769].

Wurden gültige Parameter übergeben und trat kein Fehler auf, gibt die Funktion E_OK zurück [SWS_Os_00769], [SWS_Os_00770]. Ist der angegebene CoreID oder IdleMode ungültig – beispielsweise weil der referenzierte Kern nicht existiert oder der Modus unbekannt ist –, liefert der Aufruf im EXTENDED-Status den Fehlercode E_OS_ID zurück [SWS_Os_00769], [SWS_Os_00771]. Auf Single-Core-Systemen wird die Überprüfung des Parameters CoreID ausgelassen [SWS_Os_00771].

Bezüglich der Nebenläufigkeit ist die Funktion als nicht reentrant (Non Reentrant) spezifiziert [SWS_Os_00769]. Interpretation: Aufrufer müssen daher sicherstellen, dass Aufrufe von ControlIdle nicht zeitgleich oder unkoordiniert aus verschiedenen Ausführungskontexten erfolgen. Frage Q-7f239cb54752e826 (offen)

Dieser Nutzungshinweis wurde von einer KI auf Basis der Spezifikation AUTOSAR Classic R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function ReadPeripheral [SWS_Os_91013] 📄 PDF

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

This service returns the content of a given memory location (

).

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 00b6c6a1dbf2 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion ReadPeripheral (in der Deklaration als ReadPeripheral8 geführt) dient dem synchronen Auslesen einer Speicheradresse innerhalb eines definierten Hardware-Peripheriebereichs [SWS_Os_91013]. Die Schnittstelle ist über die Header-Datei Os.h verfügbar [SWS_Os_91013]. Als Eingabeparameter erwartet der Dienst die Bereichsreferenz Area vom Typ AreaIdType sowie die Zieladresse Address als Zeiger auf const uint8 [SWS_Os_91013]. Der ausgelesene Inhalt der Speicherstelle wird über den Ausgabeparameter ReadValue bereitgestellt [SWS_Os_91013].

Fehlerbehandlung

Der Dienst gibt einen Statuscode vom Typ StatusType zurück, wobei E_OK die fehlerfreie Durchführung anzeigt [SWS_Os_91013]. Bei aktivierter erweiterter Statusprüfung (EXTENDED status) werden fehlerhafte Aufrufe anhand spezifischer Fehlerwerte differenziert [SWS_Os_91013]:

  • E_OS_ID: Die übergebene Bereichskennung Area liegt außerhalb des gültigen Bereichs [SWS_Os_91013].
  • E_OS_VALUE: Die angegebene Speicheradresse Address gehört nicht zum angegebenen Peripheriebereich [SWS_Os_91013].
  • E_OS_CALLEVEL: Der Aufruf erfolgte aus einem unzulässigen Kontext [SWS_Os_91013].
  • E_OS_ACCESS: Die aufrufende Task oder ISR dürfte nicht über die erforderliche Berechtigung für den Zugriff auf den Bereich verfügen (Interpretation) [SWS_Os_91013]. Frage Q-19e2c22110352ebb (offen)

Nebenläufigkeit und Einschränkungen

Der API-Dienst besitzt die Service-ID 0x28, arbeitet synchron und ist reentrant ausgelegt [SWS_Os_91013]. Aufrufe sind nur aus zulässigen Task- oder ISR-Kontexten gestattet; unzulässige Aufrufe werden im erweiterten Status mit E_OS_CALLEVEL abgewiesen [SWS_Os_91013].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function ReadPeripheral16 [SWS_Os_91015] 📄 PDF

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

This service returns the content of a given memory location (

).

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 5ae7289a82af Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Betriebssystemfunktion ReadPeripheral16 dient dazu, den 16-Bit-Wert einer spezifizierten Speicheradresse innerhalb eines definierten Peripheriebereichs auszulesen [SWS_Os_91015]. Der Systemdienst ist unter der Service-ID 0x29 definiert und über die Header-Datei Os.h verfügbar [SWS_Os_91015].

Verwendung und Parameter

Dem Dienst werden als Eingangsparameter die Referenz auf den Hardware-Peripheriebereich (Area vom Typ AreaIdType) sowie die Zieladresse im Speicher (Address vom Typ const uint16*) übergeben [SWS_Os_91015]. Über den Ausgabeparameter Read Value vom Zeigertyp uint16* wird der an der Speicheradresse ermittelte 16-Bit-Inhalt bereitgestellt [SWS_Os_91015]. Bei fehlerfreier Ausführung liefert die Funktion den Rückgabewert E_OK vom Typ StatusType zurück [SWS_Os_91015].

Fehlerbehandlung und Zugriffsbeschränkungen

Im erweiterten Status (EXTENDED status) überprüft das Betriebssystem die Gültigkeit des Aufrufs und meldet Fehler über spezifische Statuscodes [SWS_Os_91015]:

  • E_OS_ID: Die übergebene Bereichskennung Area liegt außerhalb des gültigen Bereichs [SWS_Os_91015].
  • E_OS_VALUE: Die angegebene Speicheradresse Address gehört nicht zu dem spezifizierten Peripheriebereich Area [SWS_Os_91015].
  • E_OS_CALLEVEL: Der Aufruf erfolgte in einem für die API-Funktion unzulässigen Kontext [SWS_Os_91015].
  • E_OS_ACCESS: Der aufrufende Task oder die Interrupt-Service-Routine (ISR) ist nicht berechtigt, auf den angegebenen Bereich zuzugreifen [SWS_Os_91015].

Dieser Nutzungshinweis wurde automatisiert erstellt und basiert ausschließlich auf den Vorgaben der Spezifikation AUTOSAR Classic R20-11.

Implementer's Guide folgt (Komplexität I1)

function ReadPeripheral32 [SWS_Os_91014] 📄 PDF

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

This service returns the content of a given memory location (

).

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a9f5d6c77f15 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone und reentrante Funktion ReadPeripheral32 liest den Inhalt einer angegebenen Speicheradresse aus ([SWS_Os_91014]). Der Aufrufer übergibt die Referenz auf den Hardware-Peripheriebereich über den Parameter Area und die gewünschte Speicheradresse über Address ([SWS_Os_91014]). Der an dieser Adresse ausgelesene 32-Bit-Wert wird synchron über den Ausgabeparameter ReadValue bereitgestellt ([SWS_Os_91014]). Die Schnittstelle wird über den Header Os.h zur Verfügung gestellt ([SWS_Os_91014]).

Fehlerbehandlung

Der Dienst gibt einen Statuswert vom Typ StatusType zurück. Bei fehlerfreier Ausführung liefert er E_OK ([SWS_Os_91014]). Ist der erweiterte Status konfiguriert (EXTENDED status), werden folgende Fehlercodes zurückgegeben ([SWS_Os_91014]):

  • E_OS_ID: Die übergebene Bereichskennung Area liegt außerhalb des zulässigen Bereichs ([SWS_Os_91014]).
  • E_OS_VALUE: Die angegebene Adresse Address gehört nicht zu dem angegebenen Bereich Area ([SWS_Os_91014]).
  • E_OS_CALLEVEL: Die Funktion wurde in einem unzulässigen Aufrufkontext aufgerufen ([SWS_Os_91014]).
  • E_OS_ACCESS: Der aufrufende Task oder die aufrufende ISR verfügt nicht über die erforderliche Zugriffsberechtigung; dies dürfte sich laut Interpretation auf den Peripheriebereich beziehen ([SWS_Os_91014]). Frage Q-e5893b29acc5133a (offen)

Nebenläufigkeit und Einschränkungen

ReadPeripheral32 ist als reentrant spezifiziert und kann parallel von mehreren Kontrollflüssen aufgerufen werden ([SWS_Os_91014]). Da der Dienst synchron arbeitet, kehrt der Aufruf erst nach Abschluss des Lesevorgangs zurück ([SWS_Os_91014]). Aufrufer müssen gültige Speicherzeiger übergeben und sicherstellen, dass der Aufruf aus einem für die OS-API zulässigen Kontext erfolgt ([SWS_Os_91014]).

Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationen des Releases R20-11.

Implementer's Guide folgt (Komplexität I1)

function WritePeripheral [SWS_Os_91010] 📄 PDF

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

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4e0ec4ae51d7 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die Funktion WritePeripheral (in der Spezifikation auch als Write Peripheral8 bezeichnet) ist ein synchroner und reentranter Dienst des Betriebssystems, um einen Wert an eine angegebene Speicheradresse eines Peripheriebereichs zu schreiben [SWS_Os_91010]. Die Deklaration wird über die Header-Datei Os.h bereitgestellt [SWS_Os_91010]. Der Aufruf erwartet als Parameter die Referenz auf den Hardware-Peripheriebereich (Area vom Typ AreaIdType), die Speicheradresse (Address vom Typ uint8*) sowie den zu schreibenden Wert (Write Value vom Typ uint8) [SWS_Os_91010]. Interpretation: Obwohl Write Value im Spezifikationstext tabellarisch unter den Ausgabeparametern aufgeführt ist, dürfte es sich anhand der Wertübergabe in der Signatur und der Beschreibung um den zu schreibenden Eingabewert handeln. Frage Q-619c69ba7a85ed92 (offen)

Fehlerbehandlung

Die Funktion gibt einen Status vom Typ StatusType zurück [SWS_Os_91010]:

  • E_OK: Der Schreibvorgang wurde fehlerfrei durchgeführt [SWS_Os_91010].
  • E_OS_ID: Die übergebene Bereichs-ID liegt außerhalb des gültigen Bereichs (im erweiterten Status) [SWS_Os_91010].
  • E_OS_VALUE: Die Zieladresse gehört nicht zum angegebenen Bereich (im erweiterten Status) [SWS_Os_91010].
  • E_OS_CALLEVEL: Unzulässiger Aufrufkontext der API-Funktion (im erweiterten Status) [SWS_Os_91010].
  • E_OS_ACCESS: Die aufrufende Task oder ISR besitzt keine Zugriffsberechtigung für den Bereich [SWS_Os_91010].

Nebenläufigkeit und Einschränkungen

Der Aufruf wird synchron abgearbeitet und ist reentrant [SWS_Os_91010]. Aufrufer müssen sicherstellen, dass die ausführende Task oder ISR aus einem gültigen Kontext heraus agiert und über die notwendigen Zugriffsrechte für den adressierten Peripheriebereich verfügt [SWS_Os_91010].

Dieser Text wurde automatisch generiert. Alle Angaben stützen sich auf die referenzierten AUTOSAR-Spezifikationen.

Implementer's Guide folgt (Komplexität I1)

function WritePeripheral16 [SWS_Os_91012] 📄 PDF

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

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 4e4afea6b230 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Betriebssystemfunktion WritePeripheral16 ([SWS_Os_91012]) dient dem Schreiben eines 16-Bit-Werts an eine Speicheradresse eines Peripheriebereichs. Der Dienst wird über den Header Os.h bereitgestellt und besitzt die Service-ID 0x2c.

Verwendung und Parameter

Beim Aufruf von WritePeripheral16 übergibt der Aufrufer die Kennung des Ziel-Hardwarebereichs (Area vom Typ AreaIdType), die Zieladresse (Address vom Typ uint16*) sowie den zu schreibenden Wert (Write Value vom Typ uint16, der trotz tabellarischer Ausweisung als Out-Parameter in der Signatur vermutlich als Wertübergabe dient) gemäß [SWS_Os_91012]. Frage Q-2edc50ae2e7fd0b0 (offen) Der Dienst wird synchron ausgeführt und liefert einen Statuswert vom Typ StatusType zurück.

Fehlerbehandlung

Im Erfolgsfall gibt die Funktion E_OK zurück. Unter dem Status EXTENDED sind folgende Fehlercodes spezifiziert ([SWS_Os_91012]):

  • E_OS_ID: Die übergebene Bereichskennung (Area) liegt außerhalb des gültigen Bereichs.
  • E_OS_VALUE: Die Zieladresse (Address) gehört nicht zum angegebenen Peripheriebereich.
  • E_OS_CALLEVEL: Die Funktion wurde aus einem unzulässigen Kontext aufgerufen.
  • E_OS_ACCESS: Die aufrufende Task oder ISR besitzt vermutlich keine Berechtigung für den Zugriff auf den angegebenen Bereich. Frage (offen)

Einschränkungen und Zusammenspiel

Die Funktion ist reentrant ([SWS_Os_91012]), erfordert jedoch die Einhaltung des zulässigen Aufrufkontexts (Task oder ISR), um Fehlerzustände wie E_OS_CALLEVEL zu vermeiden. Zur Überwachung und Analyse von Betriebssystemobjekten sieht AUTOSAR die Bereitstellung von ARTI-Beschreibungsdateien vor ([SWS_Os_00829]).

Dieser Nutzungshinweis wurde automatisiert generiert und basiert ausschließlich auf den Spezifikationsdaten des AUTOSAR-Releases R20-11.

Implementer's Guide folgt (Komplexität I1)

function WritePeripheral32 [SWS_Os_91011] 📄 PDF

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

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: a189c9cd92b9 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion WritePeripheral32 aus dem Modul Os dient dem Schreiben eines 32-Bit-Werts an eine angegebene Speicheradresse eines Peripheriebereichs [SWS_Os_91011]. Der Service ist über den Header Os.h verfügbar und besitzt die Service-ID 0x2d [SWS_Os_91011].

Parameter und Aufruf

Für die Ausführung des Schreibzugriffs benötigt die Funktion drei Übergabeparameter [SWS_Os_91011]:

  • Area (AreaIdType): Referenz auf den Ziel-Hardware-Peripheriebereich [SWS_Os_91011].
  • Address (uint32*): Speicheradresse, an die der Wert geschrieben werden soll [SWS_Os_91011].
  • Write Value (uint32): Der konkrete 32-Bit-Wert, der an die Zieladresse übertragen wird [SWS_Os_91011].

Rückgabewerte und Fehlerbehandlung

Der Aufruf liefert einen Statuswert vom Typ StatusType zurück [SWS_Os_91011]. Im Erfolgsfall wird E_OK gemeldet [SWS_Os_91011]. Bei aktivem EXTENDED-Status signalisiert E_OS_ID eine ungültige Bereichs-ID, E_OS_VALUE eine nicht zum Bereich gehörende Adresse und E_OS_CALLEVEL einen unzulässigen Aufrufkontext [SWS_Os_91011]. Falls der aufrufende Task oder die ISR keine Zugriffsberechtigung für den Bereich besitzt, wird E_OS_ACCESS zurückgegeben [SWS_Os_91011].

Nebenläufigkeit

Da WritePeripheral32 reentrant ist, kann der Dienst in nebenläufigen Ausführungskontexten genutzt werden, sofern der jeweilige Aufrufer zur Laufzeit über die erforderliche Zugriffsberechtigung verfügt [SWS_Os_91011].

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikation AUTOSAR Classic R20-11 erstellt.

Implementer's Guide folgt (Komplexität I1)

function ModifyPeripheral [SWS_Os_91016] 📄 PDF

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

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

= ((*
& ) | )

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 031e78e21a3e Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Semantik

Die synchrone und reentrante Betriebssystemfunktion ModifyPeripheral8 ([SWS_Os_91016]) modifiziert ein Byte an einer angegebenen Speicheradresse Address. Dabei wird der bestehende Speicherinhalt bitweise über die Maske Clearmask per Und-Verknüpfung sowie über die Maske Setmask per Oder-Verknüpfung gemäß der Formel *Address = ((*Address & Clearmask) | Setmask) aktualisiert ([SWS_Os_91016]). Als Eingabeparameter erwartet die Funktion die Peripheriebereichs-Referenz Area vom Typ AreaIdType, die Zieladresse Address (Typ uint8*) sowie die beiden Maskenwerte vom Typ uint8. Die Funktion wird über die Header-Datei Os.h bereitgestellt und besitzt die Service-ID 0x2e ([SWS_Os_91016]).

Fehlerbehandlung und Rückgabewerte

Der Rückgabewert vom Typ StatusType signalisiert den Erfolg der Operation mit E_OK ([SWS_Os_91016]). Bei aktiviertem Extended-Status können spezifische Fehlerbedingungen auftreten:

  • E_OS_ID: Die übergebene Bereichskennung Area liegt außerhalb des zulässigen Bereichs ([SWS_Os_91016]).
  • E_OS_VALUE: Die Zieladresse Address gehört nicht zu dem angegebenen Bereich Area ([SWS_Os_91016]).
  • E_OS_CALLEVEL: Der Dienst wurde in einem unzulässigen Aufrufkontext aufgerufen ([SWS_Os_91016]).
  • E_OS_ACCESS: Der aufrufende Task oder die ISR besitzt keine Zugriffsberechtigung für den Zielbereich ([SWS_Os_91016]).

Nebenläufigkeit und Aufrufbedingungen

Da ModifyPeripheral8 als reentrant spezifiziert ist, kann der Aufruf sicher in parallelen Abläufen erfolgen ([SWS_Os_91016]). Aufrufer müssen sicherstellen, dass sowohl der Kontext als auch die Zugriffsrechte für Area und Address gültig sind, um Fehlerzustände zu vermeiden ([SWS_Os_91016]).

Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function ModifyPeripheral16 [SWS_Os_91018] 📄 PDF

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

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

= ((*
& ) | )

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: f22ffe272912 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Funktion ModifyPeripheral16 modifiziert eine 16-Bit-Speicherstelle innerhalb eines definierten Peripheriebereichs gemäß der Berechnungsformel *Address = ((*Address & Clearmask) | Setmask) [SWS_Os_91018]. Als Parameter werden die Peripheriebereichs-Referenz Area (Typ AreaIdType), die Zieladresse Address (Typ uint16*) sowie die Bitmasken Clearmask für ein bitweises UND und Setmask für ein bitweises ODER übergeben [SWS_Os_91018]. Die Deklaration ist über den Header Os.h verfügbar [SWS_Os_91018].

Im regulären Erfolgsfall liefert der Dienst den Rückgabewert E_OK [SWS_Os_91018]. Bei aktivierter erweiterter Statusprüfung (EXTENDED status) werden fehlerhafte Aufrufe anhand spezifischer Fehlercodes erkannt und abgewiesen [SWS_Os_91018]:

  • E_OS_ID: Die übergebene Bereichskennung Area liegt außerhalb des gültigen Wertebereichs [SWS_Os_91018].
  • E_OS_VALUE: Die übergebene Speicheradresse Address gehört nicht zu dem angegebenen Bereich Area [SWS_Os_91018].
  • E_OS_CALLEVEL: Der Dienst wurde aus einem unzulässigen Kontext aufgerufen [SWS_Os_91018].
  • E_OS_ACCESS: Der aufrufende Task oder die aufrufende ISR besitzt keine Zugriffsberechtigung für den angegebenen Bereich [SWS_Os_91018].

Aufrufer müssen vor der Ausführung sicherstellen, dass sowohl der Kontext als auch die Berechtigungen für den referenzierten Bereich vorliegen, um Zugriffsverletzungen zu vermeiden [SWS_Os_91018].

Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function ModifyPeripheral32 [SWS_Os_91017] 📄 PDF

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

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

= ((*
& ) | )

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c9ed5f9b2fff Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Betriebssystemfunktion ModifyPeripheral32 dient gemäß [SWS_Os_91017] der gezielten bitweisen Manipulation einer 32-Bit-Speicheradresse. Über die Schnittstelle Os.h bereitgestellt, wendet die Funktion auf die Zieladresse Address die feste Berechnungsformel *Address = ((*Address & Clearmask) | Setmask) an. Hierbei werden zunächst über die Bitmaske Clearmask Bits per Und-Verknüpfung zurückgesetzt und anschließend über Setmask per Oder-Verknüpfung gesetzt.

Als Eingangsparameter erwartet der Dienst die Peripheriebereichs-Referenz Area, den Adresszeiger Address sowie die beiden 32-Bit-Masken [SWS_Os_91017]. Bei fehlerfreier Ausführung wird der Statuscode E_OK zurückgegeben. Im erweiterten Status (EXTENDED status) führt die Funktion Plausibilitätsprüfungen durch und meldet folgende Fehlercodes:

  • E_OS_ID: Die übergebene Area liegt außerhalb des zulässigen Wertebereichs [SWS_Os_91017].
  • E_OS_VALUE: Die Zieladresse gehört nicht zu dem angegebenen Peripheriebereich [SWS_Os_91017].
  • E_OS_CALLEVEL: Die Funktion wurde aus einem unzulässigen Kontext aufgerufen [SWS_Os_91017].
  • E_OS_ACCESS: Die aufrufende Task oder ISR besitzt keine Berechtigung für den Zugriff [SWS_Os_91017] (Interpretation: fehlende Zugriffsberechtigung auf den Peripheriebereich). Frage Q-b4d959765dc59c72 (offen)

Nebenläufige Aufrufe sind dank der Reentranz zulässig, sofern der Aufrufkontext gewahrt bleibt [SWS_Os_91017]. Im Gesamtsystem unterscheidet sich diese direkte Registermodifikation von Berechnungsformeln zur dynamischen Datenermittlung, die etwa im Rahmen von ARTI-Debug-Informationen gemäß [SWS_Os_00829] ausgewertet werden.

Dieser Text wurde von einer KI auf Basis der Spezifikation AUTOSAR CP R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function EnableInterruptSource [SWS_Os_91020] 📄 PDF

StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);

Service EnableInterruptSource.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 0e3279bf544b Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die synchrone und reentrante Systemfunktion EnableInterruptSource aktiviert eine Interrupt-Quelle durch Modifikation der Register des Interrupt-Controllers [SWS_Os_91020], [SWS_Os_00811]. Das Betriebssystem stellt diesen Dienst für jede konfigurierte Kategorie-2-Interrupt-Quelle bereit [SWS_Os_00808].

Parameter und Aufruf

Über den Parameter ISRID wird der Bezeichner der Kategorie-2-ISR übergeben [SWS_Os_91020]. Der boolesche Parameter ClearPending bestimmt, ob ein anstehendes Interrupt-Flag bei der Aktivierung gelöscht werden soll (TRUE) oder unverändert bleibt (FALSE) [SWS_Os_91020], [SWS_Os_00811]. Die Funktion steht über die Header-Datei Os.h zur Verfügung [SWS_Os_91020].

Fehlerbehandlung und Rückgabewerte

Wird kein Fehler festgestellt, liefert der Aufruf E_OK zurück [SWS_Os_91020], [SWS_Os_00810]. Erkennt das Betriebssystem einen Fehler, gibt es den entsprechenden Statuscode vom Typ StatusType zurück und ruft den ErrorHook() auf [SWS_Os_00810]. Folgende Fehlerzustände sind definiert:

  • E_OS_ID: Der Parameter ISRID ist kein gültiger Bezeichner einer Kategorie-2-ISR (im Status EXTENDED) [SWS_Os_91020].
  • E_OS_CALLEVEL: Die Funktion wurde aus einem unzulässigen Aufrufkontext aufgerufen (im Status EXTENDED) [SWS_Os_91020].
  • E_OS_ACCESS: Die aufrufende Applikation ist im Rahmen der Service Protection nicht Eigentümer der angegebenen ISRID [SWS_Os_91020].

Zusammenspiel

Die Funktion bildet gemeinsam mit DisableInterruptSource und ClearPendingInterrupt das API-Trio zur gezielten Steuerung einzelner Kategorie-2-Interrupt-Quellen (OsIsrCategory == CATEGORY_2) im Betriebssystem [SWS_Os_00808], [SWS_Os_00810].

Dieser Text wurde automatisch anhand der Spezifikationen des Release R20-11 generiert.

Implementer's Guide folgt (Komplexität I2)

function DisableInterruptSource [SWS_Os_91019] 📄 PDF

StatusType DisableInterruptSource (ISRType ISRID);

Disables the interrupt source by modifying the interrupt controller registers.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: c278819b07d9 Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung

Die synchrone und reentrante Funktion DisableInterruptSource deaktiviert eine spezifische Interruptquelle direkt über die Register des Interrupt-Controllers [SWS_Os_91019], [SWS_Os_00812]. Sie steht über die Header-Datei Os.h zur Verfügung und wird für jede Interruptquelle der Kategorie 2 (OsIsrCategory == CATEGORY_2) bereitgestellt [SWS_Os_91019], [SWS_Os_00808]. Als Parameter wird die Kennung der betreffenden ISR (ISRID) übergeben. Bei erfolgreicher Ausführung liefert der Dienst E_OK zurück [SWS_Os_91019], [SWS_Os_00810].

Fehlerbehandlung

Stellt das Betriebssystem während der Ausführung einen Fehler fest, wird der entsprechende StatusType zurückgegeben und der ErrorHook() aufgerufen [SWS_Os_00810]. Mögliche Fehlercodes sind:

  • E_OS_ID: Die übergebene ISRID ist keine gültige Kennung einer Kategorie-2-ISR (im EXTENDED-Status) [SWS_Os_91019].
  • E_OS_CALLEVEL: Unzulässiger Aufrufkontext der API-Funktion (im EXTENDED-Status) [SWS_Os_91019].
  • E_OS_ACCESS: Die aufrufende OS-Application ist nicht Eigentümer der angegebenen ISR (Service Protection) [SWS_Os_91019].
  • E_OS_NOFUNC: Die angeforderte Interruptquelle ist bereits deaktiviert (im EXTENDED-Status bei geschachtelten Aufrufen) [SWS_Os_00809].

Zusammenspiel und Randbedingungen

Die Funktion bildet gemeinsam mit EnableInterruptSource und ClearPendingInterrupt das API-Trio zur Steuerung von Kategorie-2-Interruptquellen [SWS_Os_00808]. Nebenläufige oder wiederholte Aufrufe werden im erweiterten Status durch die Rückgabe von E_OS_NOFUNC abgesichert, wodurch redundante Deaktivierungen kontrollierbar bleiben [SWS_Os_00809]. Aufrufer müssen zudem die passenden Zugriffsrechte besitzen, um Laufzeitfehler durch die Service-Protection zu verhindern [SWS_Os_91019].

Dieser Nutzungshinweis wurde automatisiert auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

function ClearPendingInterrupt [SWS_Os_91021] 📄 PDF

StatusType ClearPendingInterrupt (ISRType ISRID);

Service ClearPendingInterrupt.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: bf5abba4980e Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Aufrufkontext

Die Funktion ClearPendingInterrupt dient dem Zurücksetzen eines anstehenden Interrupts für Quellen der Kategorie 2 [SWS_Os_00808]. Sie nimmt als einzigen Eingangsparameter die Kennung ISRID einer Kategorie-2-ISR entgegen und modifiziert direkt die zugehörigen Register des Interrupt-Controllers [SWS_Os_91021], [SWS_Os_00813]. Der Aufruf wird synchron verarbeitet und steht über die Header-Datei Os.h zur Verfügung [SWS_Os_91021].

Fehlerbehandlung und Rückgabewerte

Im fehlerfreien Fall wird der Statuscode E_OK zurückgegeben [SWS_Os_91021]. Stellt das Betriebssystem während der Ausführung einen Fehler fest, liefert der Dienst den entsprechenden Fehlercode vom Typ StatusType zurück und ruft zwingend den ErrorHook() auf [SWS_Os_00810]. Folgende Fehlerzustände sind für die Schnittstelle spezifiziert [SWS_Os_91021]:

  • E_OS_ID: Der übergebene Parameter ISRID ist keine gültige Kennung einer Kategorie-2-ISR (wird im Status EXTENDED zurückgegeben) [SWS_Os_91021].
  • E_OS_CALLEVEL: Die Funktion wurde aus einem unzulässigen Aufrufkontext aufgerufen (wird im Status EXTENDED zurückgegeben) [SWS_Os_91021].
  • E_OS_ACCESS: Die aufrufende Applikation ist im Rahmen der Service Protection nicht als Eigentümer der übergebenen ISR autorisiert [SWS_Os_91021].

Nebenläufigkeit und Zusammenspiel im Betriebssystem

Die Schnittstelle ist als reentrant definiert und kann somit sicher nebenläufig aufgerufen werden [SWS_Os_91021]. Das Betriebssystem stellt ClearPendingInterrupt für jede Kategorie-2-Interruptquelle (OsIsrCategory == CATEGORY_2) als festen Bestandteil der Steuer-APIs bereit, zu denen auch DisableInterruptSource und EnableInterruptSource gehören [SWS_Os_00808].

Dieser Text wurde von einer KI auf Basis der AUTOSAR-Spezifikation generiert.

Implementer's Guide folgt (Komplexität I2)

function ActivateTaskAsyn [SWS_Os_91022] 📄 PDF

void ActivateTaskAsyn (TaskType id);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 6cc8f60dfafe Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion ActivateTaskAsyn (Service-ID 0x33) stellt die asynchrone Variante zur Task-Aktivierung dar und wird über die Header-Datei Os.h bereitgestellt ([SWS_Os_91022]). Sie ist primär für die kernübergreifende Task-Aktivierung in Multicore-Systemen vorgesehen ([SWS_Os_91022]).

Als einziger Eingabeparameter wird id vom Typ TaskType übergeben, welcher den zu aktivierenden Task spezifiziert ([SWS_Os_91022]). Die Schnittstelle besitzt keinen Rückgabewert (void) und definiert weder Ein-/Ausgabe- noch reine Ausgabeparameter ([SWS_Os_91022]).

Mögliche Fehler bei der Aktivierung werden dem Aufrufer nicht zurückgemeldet ([SWS_Os_91022], [SWS_Os_00816]). Stattdessen werden auftretende Fehler ausschließlich über den globalen Error-Hook gemeldet, sofern ein solcher konfiguriert ist ([SWS_Os_00816]).

Hinsichtlich der Nebenläufigkeit ist die Funktion reentrant und arbeitet vollständig asynchron ([SWS_Os_91022]), womit der aufrufende Kontext nicht auf die Ausführung blockiert. Das Betriebssystem ist verpflichtet, diese Schnittstelle gemäß [SWS_Os_00816] bereitzustellen.

Dieser Nutzungshinweis wurde von einer KI auf Basis der AUTOSAR-Spezifikation R20-11 generiert.

Implementer's Guide folgt (Komplexität I1)

function SetEventAsyn [SWS_Os_91023] 📄 PDF

void SetEventAsyn (TaskType id, EventMaskType m);

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

function Ioc [SWS_Os_91026] 📄 PDF

void IocInit (void);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 50632b8f91d3 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Funktionsweise

Die Funktion Ioc Init (im Release R20-11 als Entwurf gekennzeichnet) initialisiert die internen Datenstrukturen der Inter-OS-Application Communication (IOC) [SWS_Os_91026]. Der Aufruf erfolgt synchron, akzeptiert keine Übergabeparameter und besitzt keinen Rückgabewert [SWS_Os_91026]. Wird der Betriebssystem-Generator im „IOC mode“ ausgeführt, generiert dieser ausschließlich den IOC-Code in der Quelldatei Ioc.c und deklariert die zugehörigen Schnittstellen in der Header-Datei Ioc.h [SWS_Os_00834], über welche auch Ioc Init bereitgestellt wird [SWS_Os_91026].

Fehlerbehandlung und Nebenläufigkeit

Für Ioc Init sind in der Spezifikation weder spezifische Fehler-Rückgabewerte noch Fehlermeldungen an DET oder DEM vorgesehen [SWS_Os_91026]. Der Dienst ist explizit als nicht reentrant (Non Reentrant) definiert [SWS_Os_91026]. Interpretation: Aufgrund der fehlenden Reentranz und der Initialisierungsaufgabe dürfte der Dienst sequenziell während der Systemstartphase aufgerufen werden müssen, bevor nebenläufige Kommunikationszugriffe stattfinden. Frage Q-47f99a4725b57c89 (offen)

Zusammenspiel mit IOC-Kommunikationsfunktionen

Die ordnungsgemäße Initialisierung der Datenstrukturen bildet die Voraussetzung für die Nutzung der generierten IOC-Kommunikationsschnittstellen:

  • Senden und Schreiben: Sender übertragen Daten asynchron über Einzelwert-Dienste wie Ioc Send [SWS_Os_00718] und Ioc Write [SWS_Os_91003] oder Gruppenfunktionen wie Ioc Send Group [SWS_Os_00728] und Ioc Write Group [SWS_Os_91004].
  • Empfangen und Lesen: Empfänger rufen Daten synchron über Ioc Receive [SWS_Os_00738], Ioc Read [SWS_Os_91005] oder entsprechende Gruppendienste [SWS_Os_00746] [SWS_Os_91006] ab.
  • Queue-Verwaltung und Benachrichtigung: Bei konfigurierter gepufferter Kommunikation kann der Inhalt einer internen Warteschlange mit Ioc Empty Queue synchron geleert werden [SWS_Os_00754]. Zusätzlich kann bei Datenempfang ein konfigurierter Empfänger-Callback <Receiver Pull CB> auf dem Zielkern ausgeführt werden [SWS_Os_00757].

Dieser Text wurde von einer KI erstellt und basiert ausschließlich auf den Spezifikationen des Releases R20-11.

Implementer's Guide folgt (Komplexität I1)

function <ReceiverPullCB> [SWS_Os_00757] 📄 PDF

void <ReceiverPullCB> (void);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: fe12c77b2732 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Callback-Funktion <Receiver Pull CB> kann optional für den Empfänger einer Kommunikation konfiguriert werden und wird über den Header Os.h deklariert [SWS_Os_00757]. Ist dieser Callback eingerichtet, ruft der IOC (Inter-OS-Application Communicator) die Funktion auf dem empfangenden Core bei jedem Datenempfang synchron auf [SWS_Os_00757]. Der konkrete Bezeichner der Callback-Funktion wird empfängerseitig über das Konfigurationsattribut OsIocReceiverPullCB festgelegt [SWS_Os_00757].

Für den Aufruf und die Schnittstelleneigenschaften gelten folgende Vorgaben:

  • Signatur und Parameter: Die Funktion besitzt den Prototyp void <Receiver Pull CB> ( void ); sie nimmt keine Parameter entgegen (weder Eingangs-, Durchgangs- noch Ausgangsparameter) und liefert keinen Rückgabewert [SWS_Os_00757].
  • Synchronität und Reentranz: Der Aufruf durch den IOC erfolgt mit synchroner Semantik direkt auf dem Empfänger-Core [SWS_Os_00757]. Zudem ist die Callback-Funktion als reentrant spezifiziert [SWS_Os_00757].
  • Fehlerbehandlung: Die Spezifikation sieht für diese Funktion weder Rückgabewerte noch spezifische Fehlercodes oder Fehlerbenachrichtigungen vor [SWS_Os_00757].

Da die Signatur keinerlei Nutzdaten übergibt, dürfte der Aufruf primär als Benachrichtigungssignal dienen, um den Empfänger über das Eintreffen neuer Daten zu informieren und das nachfolgende Abholen der Nutzdaten anzustoßen. Frage Q-2365bb46ad77a476 (offen) Entwickler sollten beachten, dass die Ausführung synchron auf dem Empfänger-Core erfolgt [SWS_Os_00757].

Dieser Text wurde von einer KI erstellt und basiert auf der Spezifikation AUTOSAR CP R20-11.

function ProtectionHook [SWS_Os_00538] 📄 PDF

ProtectionReturnType ProtectionHook (StatusType Fatalerror);

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 85982be9edad Herkunft
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Die Funktion ProtectionHook dient als zentraler Callback des Betriebssystems und wird immer dann synchron aufgerufen, wenn ein schwerwiegender Fehler auftritt [SWS_Os_00538]. Als typische Fehlerszenarien nennt die Spezifikation explizit das Überschreiten der Worst-Case-Ausführungszeit (Worst Case Execution Time) sowie Verletzungen des Speicherschutzes [SWS_Os_00538]. Die Deklaration der Schnittstelle wird über den Header Os_Externals.h bereitgestellt [SWS_Os_00538].

Als Eingangsparameter nimmt die Routine Fatalerror vom Typ StatusType entgegen, welcher die auslösende Ursache des Hook-Aufrufs übergibt [SWS_Os_00538]. Zusätzliche Ein-/Ausgangsparameter oder reine Ausgabeparameter sind in der Signatur nicht definiert [SWS_Os_00538].

Über den Rückgabewert vom Typ ProtectionReturnType legt ProtectionHook verbindlich fest, welche Aktion das Betriebssystem nach Ausführung des Hooks zur weiteren Fehlerbehandlung einleiten soll [SWS_Os_00538]. Folgende Aktionen stehen als Rückgabewerte zur Verfügung [SWS_Os_00538]:

In Bezug auf Nebenläufigkeit und Ablaufverhalten ist ProtectionHook als reentrant und synchron spezifiziert [SWS_Os_00538]. Der Aufruf erfolgt unmittelbar bei Eintritt des schwerwiegenden Fehlers, woraufhin das Betriebssystem die definierte Aktion ausführt [SWS_Os_00538].

Dieser Text wurde durch eine KI auf Basis der Spezifikation erstellt.

Implementer's Guide folgt (Komplexität I2)

type AppModeType [SWS_Os_91007] 📄 PDF

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: e91976813761 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Aufzählungstyp AppModeType ist in der Header-Datei Os.h definiert und dient der Festlegung des Anwendungsmodus im Betriebssystem [SWS_Os_91007]. In Mehrkernsystemen ermöglicht dieser Typ, dass der Anwendungsmodus eines Prozessorkerns von einem anderen Core geerbt wird [SWS_Os_91007].

Für den Wertebereich ist der Wert DONOTCARE spezifiziert [SWS_Os_91007]. Interpretation: Dieser Wert dürfte dazu dienen, einen Core explizit so zu konfigurieren, dass er keinen eigenständigen Modus startet, sondern das Verhalten des übergeordneten Cores übernimmt. Frage Q-2b7d9f1c8e5f1a3f (offen) Spezifische Fehlercodes oder Rückgabewerte sind für den Typ selbst nicht definiert.

Hinsichtlich der Diagnose und des Systemzustands ist das Zusammenspiel mit Analysewerkzeugen relevant. Gemäß [SWS_Os_00829] muss die ARTI-Modulbeschreibungsdatei alle ORTI-Container unterstützen, um angebundenen Debug-Tools die Auswertung und Anzeige von Informationen über das Betriebssystem und dessen Objekte zu ermöglichen. Die ARTI-Debuginformationen stellen dynamische Attribute bereit, die über Formeln aufgelöst werden [SWS_Os_00829]. Interpretation: Der Zustand des Anwendungsmodus dürfte somit auf Werkzeugebene über entsprechende ARTI-Objektattribute abgebildet und ausgelesen werden. Frage Q-410d011cbcf1b158 (offen)

Dieser Nutzungshinweis wurde automatisiert auf Basis der Spezifikationsanforderungen generiert.

Implementer's Guide folgt (Komplexität I1)

type ApplicationStateType [SWS_Os_00773] 📄 PDF

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 71b2dfdfc31d Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Datentyp ApplicationStateType dient im Classic AUTOSAR Betriebssystem zur eindeutigen Identifikation des Zustands einer OS-Application [SWS_Os_00773]. Er ist als skalarer Basistyp spezifiziert und wird über die Header-Datei Os.h bereitgestellt [SWS_Os_00773].

Der zulässige Wertebereich von ApplicationStateType umfasst drei diskrete Zustände für eine OS-Application [SWS_Os_00773]:

  • APPLICATION_ACCESSIBLE: Kennzeichnet, dass die OS-Application betriebsbereit ist und auf ihre Ressourcen zugegriffen werden kann [SWS_Os_00773].
  • APPLICATION_RESTARTING: Signalisiert, dass sich die OS-Application gegenwärtig in einer Neustartphase befindet [SWS_Os_00773].
  • APPLICATION_TERMINATED: Zeigt an, dass die OS-Application beendet wurde und keine weiteren Aktionen ausführt [SWS_Os_00773].

In Bezug auf die Verwendung und das Zusammenspiel mit anderen Komponenten dürfte der Typ vermutlich als Rückgabewert oder Ausgabeparameter in entsprechenden OS-Systemdiensten zur Zustandsüberwachung dienen, um Aufrufern den aktuellen Lebenszyklusstatus einer Anwendung mitzuteilen. Frage Q-9a4f2254f4013853 (offen) Da es sich um eine elementare Typdefinition handelt, spezifiziert der Standard hierfür keine eigenständigen Fehlercodes, DET- oder DEM-Meldungen und formuliert keine gesonderten Restriktionen bezüglich Aufrufkontext oder Reentranz [SWS_Os_00773].

Dieser Text wurde von einer KI erstellt und basiert auf AUTOSAR R20-11 Spezifikationsdaten.

Implementer's Guide folgt (Komplexität I1)

type ApplicationStateRefType [SWS_Os_00774] 📄 PDF

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: ae68f3712f9a Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Datentyp ApplicationStateRefType ist Bestandteil des Betriebssystems (Modul Os) in der AUTOSAR-Classic-Plattform und wird über die Header-Datei Os.h zur Verfügung gestellt [SWS_Os_00774]. Der Typ ist von einem Zeiger (Pointer) abgeleitet und verweist direkt auf eine Speicherstelle, an der ein Zustand einer OS-Anwendung (Application State) hinterlegt werden kann [SWS_Os_00774].

Hinsichtlich der praktischen Verwendung dient dieser Zeigertyp der Referenzierung von Anwendungszuständen: Interpretation: Als Zeigertyp dürfte ApplicationStateRefType primär als Referenz- bzw. Ausgabeparameter in Abfragefunktionen des Betriebssystems zum Einsatz kommen, über welche der Zustand einer OS-Anwendung an den Aufrufer übermittelt wird. Frage Q-948bb914d3672a38 (offen) Aufrufer müssen daher sicherstellen, dass vor der Parameterübergabe ein gültiger, beschreibbarer Speicherbereich für den Zielzustand reserviert ist, um fehlerhafte Zeigerzugriffe zur Laufzeit zu vermeiden.

Spezifische Fehlerbehandlungsmechanismen, Fehlercodes für DET oder DEM sowie gesonderte Vorgaben zur Reentranz und Nebenläufigkeit sind für diesen Basistyp in der Spezifikation nicht gesondert ausgewiesen [SWS_Os_00774]. Etwaige Restriktionen hinsichtlich des erlaubten Aufrufkontexts oder einzuhaltender Synchronisationspflichten ergeben sich ausschließlich aus denjenigen Betriebssystem-Schnittstellen, die diesen Typ in ihren Funktionssignaturen verwenden.

Dieser Text wurde von einer KI auf Basis der Spezifikation generiert.

Implementer's Guide folgt (Komplexität I1)

type TrustedFunctionParameterRefType [SWS_Os_00776] 📄 PDF

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

type AccessType [SWS_Os_00777] 📄 PDF

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

type ObjectAccessType [SWS_Os_00778] 📄 PDF

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

type MemoryStartAddressType [SWS_Os_00780] 📄 PDF

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

type ScheduleTableStatusType [SWS_Os_00784] 📄 PDF

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 334083bea161 Herkunft Offene Fragen (1)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Der Typ ScheduleTableStatusType bildet gemäß [SWS_Os_00784] den aktuellen Ausführungs- und Synchronisationsstatus einer Schedule Table im AUTOSAR-Betriebssystem ab. Er wird über die Header-Datei Os.h bereitgestellt und basiert auf einem implementationsspezifischen Wertebereich.

Folgende Statuswerte sind spezifiziert:

  • SCHEDULETABLE_STOPPED: Die Schedule Table ist nicht gestartet.
  • SCHEDULETABLE_NEXT: Die Schedule Table wird nach Ablauf der gegenwärtig aktiven Schedule Table gestartet (Interpretation: dies erfolgt nach Übergabe an den Dienst NextScheduleTable()). Frage Q-8cbcfc83969eea23 (offen)
  • SCHEDULETABLE_WAITING: Die Schedule Table verwendet explizite Synchronisation, wurde bereits gestartet und wartet auf den Abgleich mit der globalen Zeit.
  • SCHEDULETABLE_RUNNING: Die Schedule Table befindet sich in Ausführung, ist jedoch aktuell nicht synchron zu einer globalen Zeitquelle.
  • SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: Die Schedule Table läuft und ist mit der globalen Zeitquelle synchronisiert.

Als reiner Statusdatentyp definiert ScheduleTableStatusType keine eigenen Laufzeitfehler oder DET-/DEM-Meldungen. Im Zusammenspiel mit Analysewerkzeugen dient der Typ gemäß [SWS_Os_00829] zur ARTI-gestützten Auswertung und Darstellung dynamischer Betriebssystemobjekte, wodurch Zustands- und Synchronisationsabweichungen im System transparent erfasst werden können.

Dieser Text wurde von einer KI erstellt und basiert auf der Spezifikation von AUTOSAR R20-11.

Implementer's Guide folgt (Komplexität I1)

type ScheduleTableStatusRefType [SWS_Os_00785] 📄 PDF

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 316994fde661 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Definition

Der Datentyp ScheduleTableStatusRefType ist gemäß [SWS_Os_00785] als Zeigertyp auf eine Variable des Datentyps Schedule Table Status Type definiert. Der Typ wird über den Header Os.h bereitgestellt und dient im AUTOSAR-Betriebssystem als Referenztyp für den Status einer Ablaufverfolgungstabelle (Schedule Table) [SWS_Os_00785].

Einsatz und Randbedingungen

In typischen Betriebssystemaufrufen dürfte dieser Zeigertyp als Ausgabeparameter fungieren, über den eine OS-Systemfunktion den aktuellen Zustand der referenzierten Schedule Table an den Aufrufer zurückmeldet. Frage Q-53364f3a9953dae3 (offen) Da die Spezifikation lediglich die Typdefinition festlegt, müssen aufrufende Komponenten bei der Verwendung Folgendes beachten:

  • Speicherbereitstellung: Vor der Übergabe einer Referenz dieses Typs muss der Aufrufer sicherstellen, dass der Zeiger auf einen gültigen und beschreibbaren Speicherbereich verweist, der während des gesamten Aufrufs gültig bleibt.
  • Gültigkeit und Nullzeiger: Die Übergabe eines Nullzeigers (NULL) dürfte je nach Betriebssystem-Konfiguration (Standard- oder Extended-Status) zu entsprechenden Fehlerrückmeldungen der aufgerufenen OS-Dienste führen. Frage Q-63d77f8c7857e6c4 (offen)
  • Speicherschutz: In sicherheitskritischen Mehrkern- oder speichergeschützten OS-Umgebungen muss der referenzierte Speicherbereich für den aufrufenden Task bzw. die OS-Instanz zugreifbar sein.

Da [SWS_Os_00785] keine weiteren Laufzeiteigenschaften oder spezifische Fehlercodes für den Basistyp ausweist, ergeben sich Reentranz und Aufrufkontext aus den jeweiligen OS-Diensten, welche diesen Zeigertyp als Parameter verwenden.

Dieser Nutzungshinweis wurde automatisiert erstellt und basiert ausschließlich auf den Spezifikationsdaten aus Release R20-11.

Implementer's Guide folgt (Komplexität I1)

type ProtectionReturnType [SWS_Os_00787] 📄 PDF

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

type RestartType [SWS_Os_00788] 📄 PDF

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

type PhysicalTimeType [SWS_Os_00789] 📄 PDF

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

type CoreIdType [SWS_Os_00790] 📄 PDF

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

type SpinlockIdType [SWS_Os_00791] 📄 PDF

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

type TryToGetSpinlockType [SWS_Os_00792] 📄 PDF

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

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 9c58c4e8227f Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Wertebereich

Der Enumerationstyp TryToGetSpinlockType wird über die Header-Datei Os.h bereitgestellt und dient als Statusanzeige dafür, ob ein Spinlock durch den Aufrufer erfolgreich belegt werden konnte oder nicht [SWS_Os_00792]. Er definiert das Ergebnis entsprechender Belegungsoperationen im Betriebssystem [SWS_Os_00792].

Der Wertebereich umfasst genau zwei spezifizierte Literale [SWS_Os_00792]:

  • TRYTOGETSPINLOCK_SUCCESS: Signalisiert, dass der Spinlock erfolgreich belegt werden konnte [SWS_Os_00792].
  • TRYTOGETSPINLOCK_NOSUCCESS: Zeigt an, dass der Spinlock nicht belegt werden konnte [SWS_Os_00792].

Nebenläufigkeit und Systemkontext

Der Typ findet Einsatz bei der Synchronisation in Mehrkernsystemen. Interpretation: Der Aufrufer dürfte den Rückgabewert synchron auswerten, um unmittelbar festzustellen, ob der geschützte kritische Abschnitt betreten werden darf oder ob bei TRYTOGETSPINLOCK_NOSUCCESS ohne blockierendes Warten ein alternativer Programmzweig gewählt werden muss [SWS_Os_00792]. Frage Q-a04e72802dc41325 (offen) Eigene Fehlercodes oder Fehlermeldungen über DET oder DEM sind für diesen Typ nicht spezifiziert [SWS_Os_00792].

Zusammenspiel mit Diagnosewerkzeugen

Im Rahmen von Werkzeuganbindungen unterstützt die ARTI-Modulbeschreibungsdatei alle ORTI-Container, um Informationen über das Betriebssystem, dessen Zustände und Betriebssystemobjekte anzuzeigen und dynamische Werte zu ermitteln [SWS_Os_00829]. Interpretation: Über solche Schnittstellen dürften auch Spinlocks und deren Belegungszustände für Debugging- und Tracing-Werkzeuge visualisierbar sein [SWS_Os_00829]. Frage Q-a488e055eb7d402e (offen)

Dieser Text wurde von einer KI generiert und basiert auf den AUTOSAR-Spezifikationen des Releases R20-11.

Implementer's Guide folgt (Komplexität I1)

type IdleModeType [SWS_Os_00793] 📄 PDF

This data type identifies the idle mode behavior.

KI-GENERIERT ungeprüft Modell: gemini-3.8-flash-medium · Aufwand: medium · Temperatur: nicht steuerbar · Prompt: 20e46b8167e3 Herkunft Offene Fragen (2)
KI-generiertgemini-3.8-flash-medium · 2026-10-13

Verwendung und Wertebereich

Der skalare Datentyp IdleModeType wird über den Header Os.h bereitgestellt und dient der Spezifikation des Verhaltens eines Prozessorkerns im Leerlaufmodus [SWS_Os_00793]. Im definierten Wertebereich ist der Modus IDLE_NO_HALT festgelegt, bei dessen Wahl der Prozessorkern während der Leerlaufzeit keine gesonderten Aktionen ausführt [SWS_Os_00793].

Interpretation: Da IdleModeType von einem skalaren Basistyp abgeleitet ist, dürfte er im Betriebssystemkontext als Konfigurationswert oder Aufrufparameter für Steuerungsdienste des Kern-Leerlaufverhaltens dienen. Frage Q-911a39efb537f1bc (offen) Interpretation: Neben dem Standardwert IDLE_NO_HALT dürften konkrete Betriebssystem-Implementierungen oder Mikrocontroller-Architekturen potenziell zusätzliche Halte- oder Stromsparmodi vorsehen, wenngleich der Spezifikationsauszug lediglich das Ausbleiben spezifischer Aktionen benennt. Frage Q-b6688f74cacbab45 (offen)

Einschränkungen und Fehlerbehandlung

Für IdleModeType sind im vorliegenden Spezifikationsumfang keine spezifischen Fehlercodes, DET- oder DEM-Meldungen sowie keine Anforderungen an Reentranz oder Aufrufkontexte ausgewiesen [SWS_Os_00793]. Etwaige funktionale Einschränkungen oder Vorbedingungen ergeben sich daher ausschließlich aus den übergeordneten Betriebssystem-Schnittstellen, die diesen Typ verarbeiten.

Dieser Text wurde von einer KI auf Basis der Spezifikation SWS_Os_00793 generiert.

Implementer's Guide folgt (Komplexität I1)

type AreaIdType [SWS_Os_91000] 📄 PDF

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

type StatusType [SWS_Os_00002] 📄 PDF

typedef uint8 StatusType;

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

Implementer's Guide folgt (Komplexität I2)

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

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

Themenkarte

Detailansicht

Wähle in der Gliederung einen Eintrag aus.

Dienste · Get…

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

Dienste · Start…

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

Dienste · Check…

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

Dienste · Modify…

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

Dienste · Read…

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

Dienste · Write…

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

Dienste · Weitere

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

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

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

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

Callouts und erwartete Schnittstellen

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

Typen

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.