AUTOSAR Classic Runtime Environment (RTE)
ClustergidsAI-GEGENEREERD
Faciliteert de getypeerde communicatie van softwarecomponenten en bestuurt de inplanning van de Basic Software-modules.
Faciliteert de getypeerde communicatie van softwarecomponenten en bestuurt de inplanning van de Basic Software-modules.
Het modulecluster Runtime Environment (RTE) realiseert de AUTOSAR Virtual Functional Bus op de ECU en stelt gestandaardiseerde API's beschikbaar voor de getypeerde sender-receiver- en client-server-communicatie van softwarecomponenten [SWS_Rte_01091], [SWS_Rte_01102]. Het integreert de Basic Software Scheduler (SchM) voor de cyclische inplanning van de Basic Software-modules en koppelt aan OS/IOC en de communicatiestack (COM, LdCom) [SWS_Rte_01376], [SWS_Rte_04546]. Daarbij garandeert de RTE dataconsistentie en deterministische modusovergangen door middel van configureerbare beveiligde gebieden, buffering en gedefinieerde transitieprocessen in 10 stappen [SWS_Rte_02665], [SWS_Rte_03504].
Het modulecluster Runtime Environment (RTE) vormt de realisatie van de Virtual Functional Bus (VFB) op ECU-niveau. Het ontkoppelt AUTOSAR-softwarecomponenten (SWC's) volledig van de onderliggende Basic Software en coördineert via de Basic Software Scheduler (SchM) de inplanning van BSW-modules [SWS_Rte_04546], [SWS_Rte_05165]. Het cluster handelt zowel partitie-interne toegangen als partitie-overschrijdende datastromen via het OS-IOC en de ECU-bus via de modules COM en LdCom af [SWS_Rte_01376], [SWS_Rte_02736], SWS_RTE p. 106.
Contextdiagram: inbedding van het RTE- en SchM-cluster tussen de applicatielaag (SWC's), OS/IOC en Basic Software-services. Bronnen: [SWS_Rte_05165], [SWS_Rte_02736], [SWS_Rte_01376], SWS_RTE p. 106.
De communicatie steunt op sender-receiver- en client-server-patronen: S/R-data worden impliciet consistent via bufferkopieën (`Rte_IRead`/`Rte_IWrite`) of expliciet direct en gebufferd (`Rte_Read`/`Rte_Write`/`Rte_Receive`) overgedragen [SWS_Rte_01091], [SWS_Rte_02521], [SWS_Rte_06000]. Bij uitval of aanwezigheid van ongeldige signalen grijpen mechanismen in zoals `initValue`-substitutie of `handleInvalid`-strategieën [SWS_Rte_05030], [SWS_Rte_06009]. Client-server-aanroepen (`Rte_Call`, `Rte_Result`) worden bij asynchrone uitvoering via FIFO-wachtrijen aan server- en clientzijde gesynchroniseerd en door middel van transactie-handles eenduidig toegewezen [SWS_Rte_01102], [SWS_Rte_02527], [SWS_Rte_02649].
Bij het task- en levenscyclusbeheer waarborgt de RTE re-entrantie door code-sharing en beveiligt deze kritieke secties via configureerbare blokkeermechanismen zoals interrupt-blokkeringen, OS-resources of OS-spinlocks [SWS_Rte_03015], [SWS_Rte_03504]. Moduswisselingen doorlopen een strikte 10-staps sequentie van OnExit-, OnTransition- tot OnEntry-activeringen en worden ordelijk via bevestigingsevents afgesloten [SWS_Rte_02665], [SWS_Rte_02679].
Systeemarchitectuur & rol van het modulecluster
Het modulecluster van de Runtime Environment (RTE) vormt de functionele en communicatieve ruggengraat van het AUTOSAR Classic Platform. Het vormt de concrete realisatie van de Virtual Functional Bus (VFB) op een ECU en ontkoppelt softwarecomponenten (SWC's) volledig van de onderliggende Basic Software (BSW) en de microcontrollerhardware SWS_RTE p. 106. Binnen het cluster neemt de eigenlijke RTE de bemiddeling van de toepassingsgerelateerde inter- en intra-ECU-communicatie op zich, terwijl de geïntegreerde Basic Software Scheduler (SchM) de programmastroombesturing, consistentieborging en cyclische inplanning van de BSW-modules bestuurt [SWS_Rte_04546], [SWS_Rte_05165].
De architectuur overspant gestandaardiseerde interfaces tussen applicatie-SWC's, sensor-/actuatorcomponenten en de BSW-lagen. Voor de voertuigbrede netwerkcommunicatie steunt het RTE-cluster rechtstreeks op de communicatiestack: signaalgeoriënteerde berichten worden overgedragen aan de module COM, terwijl grote hoeveelheden data via de LdCom-module (Large Data COM) worden afgehandeld [SWS_Rte_01376], [SWS_Rte_04527]. De proces- en geheugenisolatie over partitie- en core-grenzen heen wordt verzorgd door het AUTOSAR-besturingssysteem (OS) en het bijbehorende Inter-OS-Application-Communication-mechanisme (IOC) [SWS_Rte_02736]. Kalibratiedata en geheugenblokken koppelen via gestandaardiseerde descriptors aan NVRAM Manager (NvM) en kalibratietools [SWS_Rte_03961], [SWS_Rte_05118].
Contextdiagram: inbedding van het RTE- en SchM-cluster tussen de applicatielaag (SWC's), OS/IOC en Basic Software-services. Bronnen: [SWS_Rte_05165], [SWS_Rte_02736], [SWS_Rte_01376], SWS_RTE p. 106.
Samenspel & interactiepaden tussen de modules
Het samenspel in het RTE-cluster maakt een strikt onderscheid tussen sender-receiver- (S/R) en client-server-communicatie (C/S). Bij de S/R-communicatie ondersteunt de RTE zowel impliciete als expliciete lees- en schrijfsemantiek: bij impliciete toegang (`Rte_IRead`, `Rte_IWrite`) maakt de RTE aan het begin van de runnable-uitvoering een lokale kopie die gedurende de gehele looptijd consistent wordt gehouden [SWS_Rte_06000], [SWS_Rte_03744]. Bij expliciete toegang (`Rte_Read`, `Rte_Write`, `Rte_Send`, `Rte_Receive`) vindt de gegevensuitwisseling direct synchroon of via wachtrijen plaats [SWS_Rte_01091], [SWS_Rte_01092]. Voor gebeurtenissen met wachtrijen (`swImplPolicy = queued`) richt de RTE aan ontvangerszijde FIFO-wachtrijen in; loopt een dergelijke buffer over, dan wordt het element verworpen en wordt een foutstatus ingesteld [SWS_Rte_02521], [SWS_Rte_02523].
Loopt het datapad over ECU-grenzen heen (inter-ECU), dan transformeert en serialiseert de RTE samengestelde datastructuren en roept `Com_SendSignal` respectievelijk `Com_SendSignalGroup` aan om de atomaire PDU-overdracht in de COM-module te waarborgen [SWS_Rte_04527]. Bij grote data-arrays valt de RTE als alternatief terug op `LdCom_Transmit` en blokkeert bij transportprotocollen (TP) de bijbehorende buffer tot aan de bevestiging via callbacks [SWS_Rte_01377], [SWS_Rte_01379]. Aan de ontvangerszijde ontvangt de RTE data asynchroon via COM-callbacks en leidt daaruit activeringsgebeurtenissen voor applicatie-runnables af [SWS_Rte_03530], [SWS_Rte_03531]. Zijn er nog geen busgegevens binnengekomen, dan levert de RTE geconfigureerde initiële waarden [SWS_Rte_06009], [SWS_Rte_06010].
Sequentiediagram: expliciete sender-receiver-datastroom over ECU-grenzen heen met buffering en uitvoer van initiële waarden. Bronnen: [SWS_Rte_06010], [SWS_Rte_04527], [SWS_Rte_03530], AUTOSAR_SWS_RTE p. 148.
Bij de client-server-communicatie genereert de RTE voor synchrone aanroepen `Rte_Call` en voor asynchrone aanroepen gescheiden aanroep- en opvraag-API's (`Rte_Call`, `Rte_Result`) [SWS_Rte_01102], [SWS_Rte_01111]. Voor zover aanroepen niet direct als C-functie binnen dezelfde context kunnen worden afgehandeld, buffert de RTE verzoeken op serverniveau in FIFO-wachtrijen en antwoorden op clientniveau in een wachtrij met een diepte van 1 [SWS_Rte_02527], [SWS_Rte_02528]. Voor partitie- of ECU-overschrijdende C/S-aanroepen gebruikt de RTE transactie-handles bestaande uit een client-ID en een sequentieteller, om antwoorden nauwkeurig toe te wijzen aan de oorspronkelijke aanroeper [SWS_Rte_02649], [SWS_Rte_03885].
Synchronisatie, re-entrantie en taakcontexten
De uitvoering van programmacode in het RTE-cluster vindt plaats binnen OS-tasks of ISR-contexten. De RTE maakt onderscheid tussen eenvoudige runnables (categorie 1 zonder blokkerende OS-aanroepen) en uitgebreide runnables (categorie 2 met wachtpunten), die door events zoals `DataReceivedEvent` of COM-callbacks uit de toestand `WaitPoint` worden gewekt [SWS_Rte_03532], SWS_RTE p. 304. Het gelijktijdig activeren van dezelfde instantie van een Runnable Entity is strikt verboden, tenzij het attribuut `canBeInvokedConcurrently` expliciet op `TRUE` is ingesteld [SWS_Rte_03523]. Bij multi-geïnstantieerde SWC's kiest AUTOSAR consequent voor code-sharing: meerdere instanties delen dezelfde uitvoerbare code, maar benaderen via instantiespecifieke descriptors gescheiden data en Per-Instance-Memory (PIM) [SWS_Rte_02002], [SWS_Rte_03015], [SWS_Rte_02301].
Ter beveiliging van kritieke secties genereert de RTE zogeheten Exclusive Areas (`Rte_Enter`, `Rte_Exit`). Het onderliggende synchronisatiemechanisme wordt geconfigureerd via de parameter `RteExclusiveAreaImplMechanism` [SWS_Rte_03504]. Hierbij staan vijf gedefinieerde strategieën ter beschikking:
ALL_INTERRUPT_BLOCKING: globaal blokkeren van alle hardware-interrupts [SWS_Rte_03504].OS_INTERRUPT_BLOCKING: selectief blokkeren van OS-specifieke interrupts (categorie 2) [SWS_Rte_03504].OS_RESOURCE: gebruik van OSEK-/AUTOSAR-besturingssysteem-resources met Priority Ceiling Protocol [SWS_Rte_03504].OS_SPINLOCK: multicore-compatibele synchronisatie via OS-spinlocks voor de coördinatie tussen tasks en ISR's van verschillende cores [SWS_Rte_03504].NONE: afzien van interne vergrendelingen, mits de dataconsistentie reeds door strikte task-prioritering of inplanning is gewaarborgd [SWS_Rte_03504].
Typische levenscycli en bedrijfsmodi
De levenscyclus van het systeem is onderworpen aan een strikte fase-indeling tussen initialisatie, reguliere werking en gecontroleerd afsluiten. Bij de systeemstart wordt eerst het SchM-deel geïnitialiseerd: het EcuM roept op elke processorcore `SchM_Start` aan, voordat BSW-modules zoals het BswM worden gestart [SWS_Rte_04546], [SWS_Rte_04548]. Aansluitend activeert `SchM_StartTiming` de periodieke BSW-events en MainFunctions [SWS_Rte_04549], [SWS_Rte_04551]. Volgens de design-constraint mogen `SchM_Start` en `SchM_StartTiming` per core precies één keer worden aangeroepen SWS_RTE p. 928. Daarna schakelt `Rte_Start` de applicatie-RTE vrij; mislukt de interne toewijzing van resources, dan breekt de initialisatie af met `RTE_E_LIMIT` [SWS_Rte_01261], [SWS_Rte_01262].
Bedrijfsmodi worden via Mode-Declaration-Groups gerepresenteerd. Initieert een Mode Manager via `Rte_Switch` een moduswisseling, dan wordt deze in een FIFO-wachtrij geplaatst [SWS_Rte_02631], [SWS_Rte_02718], [SWS_Rte_02719]. Elke modusmachine doorloopt tijdens het omschakelen een bindende sequentie van 10 stappen [SWS_Rte_02665]: eerst worden modus-deactiveringen voor de doelmodus van kracht en wordt gewacht tot actieve entiteiten zijn afgerond (stappen 1–2). Vervolgens vindt de sequentiële uitvoering en beëindiging plaats van OnExit- (stappen 3–4), OnTransition- (stappen 5–6) en OnEntry-Executable-Entities (stappen 7–8). Tot slot wordt de deactivering van de vorige modus opgeheven en de nieuwe modus geactiveerd (stap 9), voordat de moduswisseling via `ModeSwitchedAckEvent` resp. `Rte_SwitchAck` wordt bevestigd (stap 10) [SWS_Rte_02665], [SWS_Rte_02679], [SWS_Rte_02725]. Via `RteModeToScheduleTableMapping` kunnen bedrijfsmodi bovendien rechtstreeks aan OS-Schedule-Tables worden gekoppeld [SWS_Rte_05146].
Sequentiediagram: gestandaardiseerd 10-staps verloop van een AUTOSAR-moduswisseling met bevestiging. Bronnen: [SWS_Rte_02665], [SWS_Rte_02679], EXP_ModeManagementGuide p. 16.
De de-initialisatie vindt plaats aan het begin van de shutdown-fase via `Rte_Stop`. Na deze aanroep blokkeert de RTE het activeren, starten of vrijgeven van verdere runnables op de desbetreffende core [SWS_Rte_02538]. Binnenkomende S/R-data en C/S-verzoeken worden in de gestopte toestand van de RTE verworpen en genegeerd [SWS_Rte_02535], [SWS_Rte_02536].
Foutafhandeling, statusbewaking en datavalidatie
Foutstatussen en interface-statussen worden in de RTE uniform via het scalaire type `Std_ReturnType` aan de aanroeper doorgegeven [SWS_Rte_01034], SWS_RTE p. 586. De RTE differentieert tussen applicatiefouten (foutwaarden 1–63), directe infrastructuurfouten (waarden 128–255) en overlappende statusbits zoals dataverlies (`RTE_E_LOST_DATA = 64`) of veroudering (`RTE_E_MAX_AGE_EXCEEDED = 64`) SWS_RTE p. 586. Typische infrastructuur-retourwaarden omvatten gestopte communicatie (`RTE_E_COM_STOPPED = 128`), communicatie- en antwoordtimeouts (`RTE_E_TIMEOUT = 129`), ontbrekende data (`RTE_E_NO_DATA = 131`) en resource-overflows (`RTE_E_LIMIT = 130`) [SWS_Rte_01060], [SWS_Rte_01061], [SWS_Rte_01064]. Bij actieve waardebereikcontrole bevestigt de RTE bereikoverschrijdingen met `RTE_E_OUT_OF_RANGE` [SWS_Rte_03845], [SWS_Rte_03846].
Voor de behandeling van niet-plausibele of foutieve signalen stelt de RTE mechanismen voor data-invalidatie beschikbaar. Aan de zendzijde markeert `Rte_Invalidate` het signaal met een gedefinieerde vervangende waarde [SWS_Rte_01206], [SWS_Rte_05024]. Aan de ontvangstzijde bestuurt het attribuut `handleInvalid` de vervangingsstrategie: bij `keep` wordt de voorgaande waarde behouden en wordt een `DataReceiveErrorEvent` geactiveerd, terwijl bij `replace` een automatische substitutie door de `initValue` plaatsvindt [SWS_Rte_05030], [SWS_Rte_05049]. Communicatie-uitval op netwerkniveau wordt bewaakt via `aliveTimeout`; verstrijkt de bewakingstijd, dan meldt de COM-module via `Rte_COMCbkRxTOut` een ontvangsttimeout aan de RTE, waarna afhankelijke componenten worden geïnformeerd of fallback-waarden worden geactiveerd [SWS_Rte_08061].
Context en bewijsvoering: deze handleiding is uitsluitend gebaseerd op de AUTOSAR-specificatie van de module RTE (R20-11/R25-11) en de AUTOSAR Mode Management Guide.
Die Runtime Environment (RTE) realisiert den Virtual Functional Bus (VFB) auf einer konkreten ECU und vermittelt alle Inter- und Intra-ECU-Kommunikationsverbindungen zwischen Software-Components (SW-Cs) und Basis-Software.
Module im Cluster
Initialisatie en status
Rte_Rips_SchM_DeinitSchM_DeinitSchM_GetVersionInfoSchM_InitDiensten
Rte_StartRte_StartTimingRte_StopSchM_StartSchM_StartTimingCallouts en verwachte interfaces
<name of the Invocation Handler>Typen
Rte_DsmqStatusTypeRte_Rips_SwitchNotificationStatusTypeRteCalibrationSwAddrMethodRefParentContainerRteComponentTypeThemakaart
Geen elementgegevens voor deze release
Rte
Performs invocation of server runnables, hard error runnables, ASCR runnables and triggered runnables via a transformer".
void <name of the Invocation Handler> (void);Rte_Rips_SchM_Deinit deinitializes those RTE Implementation Plug-In parts which are relevant for the SchM related operations.
void Rte_Rips_SchM_Deinit (void);Rte_Start is intended to allocate and initialize system resources and communication resources used by the RTE.
Std_ReturnType Rte_Start (void);Rte_StartTiming API is intended to release the activation of RunnableEntitys triggered by TimingEvents and BackgroundEvents after the last call of a Rte_Init function.
void Rte_StartTiming (void);Rte_Stop is used to finalize the RTE on the core it is called. This service releases all system and communication resources allocated by the RTE on that core.
Std_ReturnType Rte_Stop (void);SchM_Deinit is used to finalize Basic Software Scheduler part of the RTE of the core on which it is called. This service releases all system resources allocated by the Basic Software Scheduler part on that core.
void SchM_Deinit (void);Returns the version information of the Basic Software Scheduler.
void SchM_GetVersionInfo (Std_VersionInfoType* versioninfo);SchM_Init is intended to allocate and initialize system resources used by the Basic Software Scheduler part of the RTE for the core on which it is called.
void SchM_Init (const SchM_ConfigType* ConfigPtr);Basic Software Scheduler initialized. Shall be called before BswM_Init().
void SchM_Start (void);Start periodical events for BSW/SWCs. SchM_Init() has to be called before.
void SchM_StartTiming (void);Status of the enqueue operation on a distributed shared mode queue
Status of the en- and dequeue operation on a mode queue Tags: atp.Status=draft
Reference to the SwAddrMethod for which software calibration support shall be enabled. Multiplicity 0..* Type Foreign reference to SW-ADDR-METHOD Post-Build Variant Multiplicity false Post-Build Variant Value false Multiplicity Configuration Class Pre-compile time X All Variants Link time Post-build time Value Configuration Class Pre-compile time X All Variants Link time Post-build time Scope / Dependency scope: local No Included Containers 8.7 Implicit communication configuration Figure 8.22: Configuration of the implicit communication SWS Item [ECUC_Rte_09034] Container Name
gemini-3.8-flash-low· 2026-10-13 · Duits origineel