DEENESPTFRRUARHIKOZHNL

AUTOSAR Classic Runtime Environment (RTE)

ClustergidsAI-GEGENEREERD

Faciliteert de getypeerde communicatie van softwarecomponenten en bestuurt de inplanning van de Basic Software-modules.
DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 72e8e2f22679 Herkomst
Causaal anker: R20-11 Geldig vanaf R20-11 Nieuw gesynthetiseerd voor deze specificatiestand.
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

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.

RteArchitecture cluster_app Applikationsschicht (Application Layer) cluster_rte_cluster Runtime Environment Cluster (RTE / SchM) cluster_bsw Basissoftware (BSW) SWC_A Software Component A (Runnable Entities) RTE_Core RTE Engine (S/R, C/S, Invalidation, PIM) SWC_A->RTE_Core Rte_Read / Rte_Write Rte_Call / Rte_Switch SWC_B Software Component B (Runnable Entities) SWC_B->RTE_Core Rte_IRead / Rte_IWrite Rte_Result COM COM Module (Com_SendSignal, Callbacks) RTE_Core->COM Com_SendSignal Com_SendSignalGroup LdCom LdCom Module (Large Data Path) RTE_Core->LdCom LdCom_Transmit OS AUTOSAR OS / IOC (Tasks, ISRs, Spinlocks, IOC Buffer) RTE_Core->OS IOC Transfer Exclusive Areas NvM NVRAM Manager (NvM) (RAM Block Dirty Flags) RTE_Core->NvM Dirty Flags (DF_*) SchM_Core Basic Software Scheduler (SchM) (BswMainFunctions, Mode Control) SchM_Core->COM Com_MainFunctionTx Com_MainFunctionRx SchM_Core->OS Task Activation OS Resources COM->RTE_Core Rte_COMCbk... (Rx Notifications)

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

RteArchitecture cluster_app Applikationsschicht (Application Layer) cluster_rte_cluster Runtime Environment Cluster (RTE / SchM) cluster_bsw Basissoftware (BSW) SWC_A Software Component A (Runnable Entities) RTE_Core RTE Engine (S/R, C/S, Invalidation, PIM) SWC_A->RTE_Core Rte_Read / Rte_Write Rte_Call / Rte_Switch SWC_B Software Component B (Runnable Entities) SWC_B->RTE_Core Rte_IRead / Rte_IWrite Rte_Result COM COM Module (Com_SendSignal, Callbacks) RTE_Core->COM Com_SendSignal Com_SendSignalGroup LdCom LdCom Module (Large Data Path) RTE_Core->LdCom LdCom_Transmit OS AUTOSAR OS / IOC (Tasks, ISRs, Spinlocks, IOC Buffer) RTE_Core->OS IOC Transfer Exclusive Areas NvM NVRAM Manager (NvM) (RAM Block Dirty Flags) RTE_Core->NvM Dirty Flags (DF_*) SchM_Core Basic Software Scheduler (SchM) (BswMainFunctions, Mode Control) SchM_Core->COM Com_MainFunctionTx Com_MainFunctionRx SchM_Core->OS Task Activation OS Resources COM->RTE_Core Rte_COMCbk... (Rx Notifications)

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

Expliziter Sender-Receiver Kommunikationsablauf (Inter-ECU)Sender SWCSender RTECOM ModulReceiver RTEReceiver SWCUse Case: InitialisierungsphaseRte_Read(data)Nog geen gegevens ontvangen: teruggave van initValueRTE_E_OK (initValue)Use Case: Expliciete overdracht en signaleringRte_Write_p_o(data)Com_SendSignal(SignalId, data)RTE_E_OKUse Case: Netwerkontvangst en doorzendingRte_COMCbkRxIndication(SignalId)Bufferen van de nieuwe signaalwaardeValiditeitscontrole / range checkRte_Read_p_o(data)RTE_E_OK (neuer Datenwert)

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].
Worden gegevens tussen verschillende geheugenbeveiligingspartities overgedragen, dan controleert de RTE pointerparameters om onbevoegde geheugentoegangen vanuit niet-vertrouwde partities te voorkomen [SWS_Rte_02752], [SWS_Rte_02753].

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

10-staps verloop van een modusomschakeling (SWS_Rte_02665)Mode ManagerRTE / Mode MachineMode User (SWC/BSW)Use Case: Aanvraag van de modusomschakelingRte_Switch(Mode)Eintragen in Mode FIFO QueueRTE_E_OKUse Case: 10-Stufen-Transitionssequenz1. Activering modus-deactiveringen volgende modus2. Wachten op beëindiging van getroffen entiteiten3. Uitvoering OnExit Executable Entities4. Wachten op beëindiging van alle OnExit-entiteiten5. Uitvoering OnTransition Executable Entities6. Wachten op beëindiging van alle OnTransition-entiteiten7. Uitvoering OnEntry Executable Entities8. Wachten op beëindiging van alle OnEntry-entiteiten9. Deaktivierung bisheriger Modus & Aktivierung neuer ModusUse Case: Quittierung10. Triggeren ModeSwitchedAckEvent / Rte_SwitchAck

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

AUTOSAR RTE

The RTE realizes the Virtual Functional Bus (VFB) on a specific ECU, providing communication between Software Components and basic software.

BSW ID 2 13 APIs (10 Funktionen, 3 Typen) #include "Rte.h"

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 functie

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 functie

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 functie

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 functie

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

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