DEENESPTFRRUARHIKOZHNL

Memory Abstraction Interface (MemIf)

ModulMemIf (Memory Abstraction Interface)
BSW-Modul-ID22
Standard-Header#include "MemIf.h"
SWS-SpezifikationAUTOSAR_SWS_MemoryAbstractionInterface.pdf
ClusterMemory Services

ModulegidsAI-GEGENEREERD

Stuurt geheugenopdrachten van de NVRAM-manager via apparaatindex door naar Flash EEPROM-emulatie of EEPROM-abstractie.
DOOR AI GEGENEREERD ongecontroleerd Model: claude-opus-5-5 · Inspanning: high · Temperatuur: niet regelbaar · Prompt: 423eb9cf4c9b Herkomst Open vragen (5)
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

Stuurt geheugenopdrachten van de NVRAM-manager via apparaatindex door naar Flash EEPROM-emulatie of EEPROM-abstractie.

MemIf stuurt de geheugenopdrachten van de NVRAM Manager door naar Fee- of Ea-modules en verbergt het aantal daarvan achter een uniforme API SWS MemIf p. 7. De parameter DeviceIndex selecteert de module; als er slechts één geconfigureerd is, wordt deze genegeerd en wordt MemIf geïmplementeerd als een macroset SWS MemIf p. 17. De services nemen opdrachten synchroon aan en geven de retourwaarde door, terwijl de geheugenoperatie daaronder asynchroon verloopt. Status en resultaat worden geleverd door MemIf_GetStatus en MemIf_GetJobResult. Bij actieve detectie van ontwikkelfouten leveren foutieve aanroepen E_NOT_OK resp. MEMIF_JOB_FAILED op.

De Memory Abstraction Interface vervangt de vroegere driver-interfacelagen voor Flash en EEPROM. Hiermee kan de NVRAM Manager via een uniforme API meerdere abstractiemodules aanspreken: de Flash EEPROM Emulation (Fee) en de EEPROM Abstraction (Ea) SRS MemHwAb p. 5. MemIf verbergt het aantal van deze modules en biedt een virtuele segmentatie op een lineaire adresruimte SWS MemIf p. 7.

kontext cluster_services Services Layer cluster_abstraktion Memory Hardware Abstraction cluster_treiber Memory Drivers NvM NvM (NVRAM Manager) MemIf MemIf (Memory Abstraction Interface) NvM->MemIf MemIf_Read / MemIf_Write / ... (DeviceIndex) Fee Fee (Flash EEPROM Emulation) MemIf->Fee Fee_* Ea Ea (EEPROM Abstraction) MemIf->Ea Ea_* Lib Herstellerspezifische Bibliothek (statt Fee/Ea + Treiber) MemIf->Lib dezelfde API als Fee/Ea Det Det (optional) MemIf->Det Det_ReportError Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Flash Driver Fee->Fls Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep EEPROM Driver Ea->Eep

Contextdiagram: MemIf bemiddelt tussen NvM en Fee/Ea; gereedmeldingen gaan direct van Fee/Ea naar de NvM. Bronnen: SWS Fee p. 6, [SWS_MemIf_00047]

MemIf heeft zelf geen geheugenlogica. De parameter DeviceIndex selecteert de module; als er slechts één geconfigureerd is, wordt deze genegeerd en wordt MemIf geïmplementeerd als macroset. Bij meerdere modules vindt de verdeling bijvoorbeeld plaats via functiewijzertabellen SWS MemIf p. 17. In R20-11 is DeviceIndex van het type uint8 [SWS_MemIf_00039]; latere versies gebruiken uint16.

De services nemen opdrachten synchroon aan en geven de retourwaarde van de module door [SWS_MemIf_00040]. De geheugenoperatie draait daarna asynchroon in de hoofdfunctie van de onderliggende laag. De NvM verneemt de voltooiing via callback vanuit Fee/Ea of door polling van MemIf_GetJobResult SWS Fee p. 48. MemIf_GetStatus meldt UNINIT, IDLE, BUSY of BUSY_INTERNAL [SWS_MemIf_00064]. Het jobresultaat heeft altijd betrekking op de laatste opdracht en onderscheidt onder andere afgebroken, inconsistente en ongeldige blokken [SWS_MemIf_00065]. MemIf_SetMode heeft effect op alle modules tegelijk [SWS_MemIf_00038].

Schrijfopdracht via MemIf (voorbeeld Ea/Eep)NvMMemIfEaEepBSW-taak (OS-taak of cyclische aanroep)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)Module via DeviceIndex selecterenEa_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (ongewijzigd)Use Case: Uitvoering (asynchroon)Tot het einde levert GetJobResultMEMIF_JOB_PENDINGlooptotdat de opdracht beëindigd isEep_MainFunction()altBenachrichtigung konfiguriertEa_JobEndNotification()NvM_JobEndNotification()Polling-BetriebMemIf_GetJobResult(DeviceIndex)Ea_GetJobResult()MEMIF_JOB_OKMEMIF_JOB_OK

Sequentiediagram: synchrone aanname via MemIf, asynchrone uitvoering in de driver, voltooiing via callback of polling. Bronnen: SWS Ea p. 41, [SWS_MemIf_00040]

In geval van een fout meldt MemIf ongeldige apparaatindices en NULL-pointers als ontwikkelfouten [SWS_MemIf_00006]. De services leveren dan E_NOT_OK op, MemIf_GetJobResult levert MEMIF_JOB_FAILED op SWS MemIf p. 21. Runtimefouten van het geheugen worden gedetecteerd door Fee resp. Ea; de NvM leest deze bij pollingbedrijf als MEMIF_JOB_FAILED en is verantwoordelijk voor het herstel ErrorDescription p. 58.

Rol in de geheugenstack: wissel tussen NvM en Fee/Ea

De Memory Abstraction Interface (MemIf) vervangt de vroegere driver-interfacelagen voor Flash en EEPROM. Hiermee kan de NVRAM Manager (NvM) via één enkele API meerdere geheugenabstractiemodules aanspreken: de Flash EEPROM Emulation (Fee) en de EEPROM Abstraction (Ea) SRS MemHwAb p. 5. Naar boven toe verbergt MemIf hoeveel Fee- en Ea-modules eronder liggen. Het biedt een virtuele segmentatie op een uniforme lineaire adresruimte SWS MemIf p. 7. Fee en Ea leveren de blokgebaseerde adressering en een „virtueel onbeperkt” aantal wis-schrijfcycli. Daarom hoeft de NvM niet te worden gewijzigd als de driver of het component verandert SRS MemHwAb p. 5.

MemIf bevat zelf geen geheugenlogica. De API ervan moet worden gemapt op de API van de abstractiemodules, en het functionele gedrag wordt vastgelegd door de specificaties daarvan resp. die van de geheugendrivers SWS MemIf p. 17. Dienovereenkomstig heeft MemIf de services van de abstractiemodules nodig, voor Ea bijvoorbeeld Ea_Read, Ea_Cancel, Ea_GetStatus en Ea_GetJobResult [SWS_MemIf_00047]. Optioneel gebruikt het Det_ReportError [SWS_MemIf_00048]. De in MemIf.h gedefinieerde types MemIf_StatusType, MemIf_JobResultType en MemIf_ModeType vormen het gemeenschappelijke vocabulaire van de stack [SWS_MemIf_00064] [SWS_MemIf_00065] [SWS_MemIf_00066]. Zo levert bijvoorbeeld Fls_GetJobResult direct MemIf_JobResultType op SWS Fls p. 36.

De afbeeldingen van recentere releases tonen onder Ea en Fee aanvullend de modules MemAcc en Mem SWS Ea p. 42. Voor R20-11 is vermoedelijk het oudere overzicht doorslaggevend, waarin Fee op de Flash-driver en Ea op de EEPROM-driver rusten SWS Fee p. 6. Voor MemIf is het verschil niet van belang, omdat het alleen doorstuurt tot aan het abstractieniveau SWS MemIf p. 17. Vraag Q-3c74a6029dd0d159 (open)

kontext cluster_services Services Layer cluster_abstraktion Memory Hardware Abstraction cluster_treiber Memory Drivers NvM NvM (NVRAM Manager) MemIf MemIf (Memory Abstraction Interface) NvM->MemIf MemIf_Read / MemIf_Write / ... (DeviceIndex) Fee Fee (Flash EEPROM Emulation) MemIf->Fee Fee_* Ea Ea (EEPROM Abstraction) MemIf->Ea Ea_* Lib Herstellerspezifische Bibliothek (statt Fee/Ea + Treiber) MemIf->Lib dezelfde API als Fee/Ea Det Det (optional) MemIf->Det Det_ReportError Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Flash Driver Fee->Fls Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep EEPROM Driver Ea->Eep

Contextdiagram: MemIf ligt tussen NvM en de abstractiemodules Fee/Ea; gereedmeldingen bereiken de NvM direct vanuit Fee/Ea. Bronnen: SWS Fee p. 6, SRS MemHwAb p. 5, [SWS_MemIf_00047], [SWS_MemIf_00048]

Apparaatselectie via DeviceIndex: macro's of distributietabel

De parameter DeviceIndex selecteert de abstractiemodule en daarmee het geheugencomponent. Als er slechts één module is geconfigureerd, wordt deze genegeerd SWS MemIf p. 17. In dat geval moet MemIf worden geïmplementeerd als een set macro's, zoals #define MemIf_Write(DeviceIndex, BlockNumber, DataPtr) Fee_Write(BlockNumber, DataPtr). Bij meerdere modules moeten de aanroepen via efficiënte mechanismen worden verdeeld; als één oplossing noemt de specificatie tabellen van functiewijzers die via DeviceIndex worden geïndexeerd SWS MemIf p. 17. Vervangt een fabrikantspecifieke bibliotheek alle benodigde Fee- en Ea-modules, dan bestaat MemIf uitsluitend uit macro's SRS MemHwAb p. 5.

In R20-11 is DeviceIndex van het type uint8 [SWS_MemIf_00039] [SWS_MemIf_00041]. Latere versies van de specificatie vermelden dit als uint16 SWS MemIf p. 18. Normatief voor deze release is uint8.

abbildung start Konfiguration von MemIf q0 Vervangt een bibliotheek van de fabrikant alle Fee- en Ea-modules? start->q0 lib MemIf bestaat alleen uit macro's naar de bibliotheek-API q0->lib ja q1 Hoeveel abstractiemodules zijn er geconfigureerd? q0->q1 nein ende Functie van de module wordt aangeroepen, retourwaarde wordt doorgegeven lib->ende ein Macro's beelden de MemIf-API af (bijv. MemIf_Write -> Fee_Write) q1->ein precies één mehr Effiziente Verteilung, z. B. Funktionszeigertabelle q1->mehr mehrere ign DeviceIndex wordt genegeerd ein->ign ign->ende idx DeviceIndex selecteert de module (Fee of Ea) mehr->idx idx->ende

Activiteitendiagram: het aantal geconfigureerde abstractiemodules bepaalt de keuze tussen macromapping en distributie via DeviceIndex. Bronnen: SWS MemIf p. 17, SRS MemHwAb p. 5

Opdrachtverloop: synchrone aanname, asynchrone uitvoering

Alle MemIf-services zijn synchroon gespecificeerd. Elk roept de gelijknamige functie van de geselecteerde module aan en retourneert de retourwaarde daarvan, zoals Read, Write en InvalidateBlock [SWS_MemIf_00039] [SWS_MemIf_00040] [SWS_MemIf_00044]. De feitelijke geheugenoperatie draait daarna asynchroon in de cyclisch aangeroepen hoofdfunctie van de onderliggende laag. De Ea-sequentie toont daartoe een lus over Eep_MainFunction in de BSW-taak SWS Ea p. 41. Volgens de Fee-specificatie geldt dit patroon ook voor de overige asynchrone services SWS Fee p. 48.

Het einde van een opdracht verneemt de NvM afhankelijk van de stackconfiguratie op een van twee manieren. Ofwel roept de abstractiemodule een callback zoals NvM_JobEndNotification resp. NvM_JobErrorNotification aan, ofwel pollt de NvM MemIf_GetJobResult SWS Fee p. 48 EXP ErrorDescription p. 45. MemIf zelf stelt geen callbackfunctie beschikbaar; de API ervan bestaat uit de volgende services [SWS_MemIf_00038] [SWS_MemIf_00046].

ServiceService-IDRetourwaardeWerking
MemIf_SetMode0x01–roept SetMode van alle abstractiemodules aan [SWS_MemIf_00038]
MemIf_Read0x02Std_ReturnTypeleest Length bytes van het blok vanaf BlockOffset naar DataBufferPtr [SWS_MemIf_00039]
MemIf_Write0x03Std_ReturnTypeschrijft een blok [SWS_MemIf_00040]
MemIf_Cancel0x04–breekt de lopende opdracht af [SWS_MemIf_00041]
MemIf_GetStatus0x05MemIf_StatusTypemodulestatus [SWS_MemIf_00042]
MemIf_GetJobResult0x06MemIf_JobResultTyperesultaat van de laatste opdracht [SWS_MemIf_00043]
MemIf_InvalidateBlock0x07Std_ReturnTypeinvalideert een blok [SWS_MemIf_00044]
MemIf_GetVersionInfo0x08–versie-informatie, re-entrant [SWS_MemIf_00045]
MemIf_EraseImmediateBlock0x09Std_ReturnTypewist een blok [SWS_MemIf_00046]
Schrijfopdracht via MemIf (voorbeeld Ea/Eep)NvMMemIfEaEepBSW-taak (OS-taak of cyclische aanroep)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)Module via DeviceIndex selecterenEa_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (ongewijzigd)Use Case: Uitvoering (asynchroon)Tot het einde levert GetJobResultMEMIF_JOB_PENDINGlooptotdat de opdracht beëindigd isEep_MainFunction()altBenachrichtigung konfiguriertEa_JobEndNotification()NvM_JobEndNotification()Polling-BetriebMemIf_GetJobResult(DeviceIndex)Ea_GetJobResult()MEMIF_JOB_OKMEMIF_JOB_OK

Sequentiediagram: een schrijfopdracht wordt synchroon via MemIf aangenomen, asynchroon in de driver uitgevoerd en via callback of polling afgerond. Bronnen: SWS Ea p. 41, SWS Fee p. 48, ErrorDescription p. 60, [SWS_MemIf_00040]

Status, jobresultaat en bedrijfsmodus

MemIf_GetStatus levert de status van de geselecteerde module op [SWS_MemIf_00042]. Mogelijk zijn MEMIF_UNINIT, MEMIF_IDLE, MEMIF_BUSY en MEMIF_BUSY_INTERNAL. Bij MEMIF_BUSY_INTERNAL is de abstractiemodule bezig met intern beheer, terwijl de driver busy of idle kan zijn [SWS_MemIf_00064]. De Fee-specificatie concretiseert de voorwaarden en noemt als voorbeeld voor intern beheer de reorganisatie van het flashgeheugen (garbage collection) SWS Fee p. 30. Bij de Flash-driver mag de status al vóór de initialisatie worden opgevraagd en luidt deze dan MEMIF_UNINIT SWS Fls p. 35.

status start Start UNINIT MEMIF_UNINIT start->UNINIT IDLE MEMIF_IDLE UNINIT->IDLE Modul initialisiert BUSY MEMIF_BUSY IDLE->BUSY Opdracht van de hogere laag in behandeling BUSYINT MEMIF_BUSY_INTERNAL IDLE->BUSYINT interne Verwaltung (z. B. Garbage Collection) BUSY->IDLE Auftrag beendet BUSYINT->IDLE interne Verwaltung beendet

Toestandsdiagram: levenscyclus van de via MemIf_GetStatus zichtbare modulestatus. Bronnen: [SWS_MemIf_00064], SWS Fee p. 30

MemIf_GetJobResult levert het resultaat van de laatste opdracht op [SWS_MemIf_00043] [SWS_MemIf_00065]. Lezen, schrijven en wissen delen één enkel jobresultaat, zodat alleen dat van de laatste opdracht opvraagbaar is. Bij de aanname van een nieuwe opdracht wordt dit op MEMIF_JOB_PENDING gezet SWS Fls p. 36; Fee spreekt over de laatste aangenomen opdracht SWS Fee p. 31. Naast OK, FAILED en CANCELED zijn er twee blokgerelateerde resultaten. MEMIF_BLOCK_INCONSISTENT betekent dat het blok corrupt is of niet is gevonden; MEMIF_BLOCK_INVALID betekent dat het als ongeldig is gemarkeerd [SWS_MemIf_00065].

jobergebnis neu Neuer Auftrag angenommen PENDING MEMIF_JOB_PENDING neu->PENDING OK MEMIF_JOB_OK PENDING->OK erfolgreich beendet FAILED MEMIF_JOB_FAILED PENDING->FAILED niet succesvol CANCELED MEMIF_JOB_CANCELED PENDING->CANCELED abgebrochen INCONS MEMIF_BLOCK_INCONSISTENT PENDING->INCONS Blok corrupt of niet gevonden INVALID MEMIF_BLOCK_INVALID PENDING->INVALID Blok als ongeldig gemarkeerd OK->neu volgende opdracht FAILED->neu volgende opdracht CANCELED->neu volgende opdracht INCONS->neu volgende opdracht INVALID->neu volgende opdracht

Toestandsdiagram: een aangenomen opdracht staat op PENDING en eindigt in precies een van de eindresultaten. Bronnen: [SWS_MemIf_00065], SWS Fls p. 36, SWS Fee p. 31

MemIf_SetMode heeft als enige service geen DeviceIndex en roept SetMode van alle abstractiemodules aan [SWS_MemIf_00038]. De modi zijn MEMIF_MODE_SLOW en MEMIF_MODE_FAST [SWS_MemIf_00066]. Bij de drivers staat dit voor langzame leestoegang resp. normale SPI-toegang enerzijds en snelle leestoegang resp. SPI-burst anderzijds. Eep_SetMode mag niet tijdens een lopende operatie worden aangeroepen SWS Eep p. 34. Fls_SetMode wijst bij actieve controle een verzoek in de busy-toestand af SWS Fls p. 42. Interpretatie: aangezien MemIf_SetMode alle modules bereikt, dient deze alleen te worden aangeroepen wanneer alle apparaten MEMIF_IDLE melden. Vraag Q-d6ee630fca619042 (open)

Afbreken van lopende opdrachten

MemIf_Cancel roept de Cancel-functie van de geselecteerde module aan [SWS_MemIf_00041]. Het afbreken zelf is synchroon, maar met betrekking tot de hardware asynchroon: de hardware kan nog naloop vertonen wanneer de aanroep al is teruggekeerd SWS Fee p. 45 SWS Ea p. 44. Het jobresultaat luidt daarna MEMIF_JOB_CANCELED [SWS_MemIf_00065], wat Fee uitdrukkelijk als mislukking beschouwt SWS Fee p. 31.

Voor het Flash-pad toont de driverspecificatie de keten MemIf_Cancel → Fee_Cancel → Fls_Cancel met aansluitende foutnotificaties. Ze eist bovendien Fls_Cancel niet tijdens een lopende Fls_MainFunction aan te roepen. Daarvoor zijn er twee manieren: de jobfuncties van NvM en Flash-driver worden gesynchroniseerd, of de taak van de Fls_MainFunction wordt niet onderbroken SWS Fls p. 58.

Afbreken van een lopende flash-opdrachtNvMMemIfFeeFlsMemIf_Cancel(DeviceIndex)Fee_Cancel()Fls_Cancel()Fls_Cancel niet tijdenslaufender Fls_MainFunctionTerugkeerTerugkeerTerugkeer (synchroon)Afbreken is asynchroonnaar de hardwareoptFehlerbenachrichtigung konfiguriertFee_JobErrorNotification()NvM_JobErrorNotification()MemIf_GetJobResult(DeviceIndex)Fee_GetJobResult()MEMIF_JOB_CANCELEDMEMIF_JOB_CANCELED

Sequentiediagram: het afbreken loopt synchroon door alle lagen, de foutnotificatie volgt, daarna meldt GetJobResult CANCELED. Bronnen: SWS Fls p. 58, SWS Fee p. 45, [SWS_MemIf_00041]

Aanroepregels, re-entrantie en inbedding in de BSW

Met uitzondering van MemIf_GetVersionInfo zijn alle services niet re-entrant [SWS_MemIf_00045] [SWS_MemIf_00040]. Parallelle aanroepen vanuit meerdere contexten moeten daarom worden uitgesloten. Omdat status en jobresultaat per module alleen de laatste opdracht weerspiegelen, dient de aanroeper een nieuwe opdracht pas na voltooiing van de vorige te verstrekken SWS Fls p. 36.

Het memory-mapping-voorbeeld van een ICC2-cluster „MEM” voert MemIf gezamenlijk met de NvM op. Daar is MemIf_SetMode gemodelleerd als BswCalledEntity, en MemIf heeft het sectievoorvoegsel MEMIF SWS MemoryMapping p. 50. De BSW Distribution Guide noemt MEMIF naast FLS en FEE als voorbeeld van „Type I”; het geldigheidsgebied kan via SwAddrMethod met lokale scope tot één core worden beperkt EXP BSWDistributionGuide p. 31. Vermoedelijk dient MemIf in multicore-systemen daarmee core-lokaal te worden gebruikt. Vraag Q-d998fdc58e0bcddd (open)

Gedrag in het foutgeval

MemIf kent twee ontwikkelfouten. MEMIF_E_PARAM_DEVICE (0x01) staat voor een onjuiste DeviceIndex, MEMIF_E_PARAM_POINTER (0x02) voor een NULL-pointer [SWS_MemIf_00006]. Ze worden gemeld via het optionele Det_ReportError [SWS_MemIf_00048]. Specifieke foutcodes worden volgens de tracing-tabel niet via de API geretourneerd SWS MemIf p. 12.

Als de detectie van ontwikkelfouten actief is en een fout wordt gedetecteerd, leveren Read, Write, InvalidateBlock en EraseImmediateBlock E_NOT_OK op [SWS_MemIf_00039] [SWS_MemIf_00040] [SWS_MemIf_00044] [SWS_MemIf_00046]. MemIf_GetJobResult levert in dit geval MEMIF_JOB_FAILED op SWS MemIf p. 21. Anders wordt de waarde van de module ongewijzigd doorgegeven.

fehlerpruefung aufruf Aanroep van een MemIf-service (DeviceIndex, evt. pointer) q1 Entwicklungsfehlererkennung aktiviert? aufruf->q1 q2 Parameter geldig? q1->q2 ja weiter Functie van de via DeviceIndex geselecteerde module aanroepen q1->weiter nein det Det_ReportError met MEMIF_E_PARAM_DEVICE (0x01) of MEMIF_E_PARAM_POINTER (0x02) q2->det nein q2->weiter ja fehl Retourwaarde E_NOT_OK (MemIf_GetJobResult: MEMIF_JOB_FAILED) det->fehl rueck Retourwaarde van de module ongewijzigd retourneren weiter->rueck

Activiteitendiagram: parametercontrole bij actieve detectie van ontwikkelfouten en het doorgeven van het moduleresultaat. Bronnen: [SWS_MemIf_00006], [SWS_MemIf_00048], SWS MemIf p. 18, SWS MemIf p. 21

Runtimefouten van het geheugen worden niet gedetecteerd door MemIf, maar door Fee resp. Ea; MemIf zelf reageert hier niet op („N/A”). Bij pollingbedrijf leest de NvM de fout via MemIf_GetJobResult als MEMIF_JOB_FAILED, en het herstel ligt bij de NvM ErrorDescription p. 58 ErrorDescription p. 60. Een recentere versie beschrijft dit herstel nader. Volgens deze versie verhoogt de NvM bij schrijfopdrachten een herhaalteller, breekt na overschrijding af en meldt NVM_E_REQ_FAILED aan de DEM EXP ErrorDescription p. 45. Voor R20-11 is dit detail hier niet normatief onderbouwd.

Verdere gedetailleerde bewijzen

AI-gegenereerde handleiding op basis van de in de prompt beschikbaar gestelde specificatie-uittreksels. Normatief zijn de gereferentieerde requirements van release R20-11. Interpretaties zijn als zodanig aangeduid.

Memory Abstraction Interface (MemIf)

Abstracts underlying Flash and EEPROM memory drivers.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

functie MemIf_SetMode [SWS_MemIf_00038] 📄 PDF

void MemIf_SetMode (MemIf_ModeType Mode);

Invokes the "Set Mode" functions of all underlying memory abstraction modules.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e9d6121ccdfc Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie MemIf_SetMode dient voor het synchroon omschakelen van de bedrijfsmodus via de geheugeninterface [SWS_MemIf_00038]. Bij aanroep stuurt deze de vereiste modus door naar de individuele „Set Mode”-functies van alle onderliggende geheugenabstractiemodules [SWS_MemIf_00038]. Als parameter wordt de doelmodus Mode meegegeven, terwijl de functie geen retourwaarde oplevert [SWS_MemIf_00038]. De interface is met het service-ID 0x01 gedefinieerd in de header MemIf.h [SWS_MemIf_00038].

Wat betreft de gelijktijdigheid is MemIf_SetMode gespecificeerd als niet-reentrant (Non Reentrant) [SWS_MemIf_00038]. Interpretatie: Aanroepers mogen de functie vermoedelijk niet gelijktijdig of onderbrekend vanuit meerdere taken of interrupt service routines aanroepen, waardoor gelijktijdige toegang desgewenst via externe beveiligingsmechanismen moet worden gecoördineerd. Vraag Q-02b14e9cb4b05dc9 (open)

Vanwege de synchrone uitvoeringssemantiek keert de aanroep pas na het doorsturen van het verzoek naar de geheugenabstractiemodules terug naar de aanroeper [SWS_MemIf_00038]. Specifieke retourwaarden voor foutindicatie of afzonderlijke DET- of DEM-foutmeldingen zijn voor deze functie niet voorzien in de elementspecificatie [SWS_MemIf_00038].

Deze gebruiksinstructie is automatisch gegenereerd en is uitsluitend gebaseerd op de gegevens van de specificatie AUTOSAR R20-11.

Implementer's Guide volgt (complexiteit I1)

functie MemIf_Read [SWS_MemIf_00039] 📄 PDF

Std_ReturnType MemIf_Read (uint8 DeviceIndex, uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);

Invokes the "Read" function of the underlying memory abstraction module selected by the parameter Device Index.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 9f6882978f36 Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De functie MemIf_Read stuurt een leesverzoek synchroon door naar de via parameter DeviceIndex geselecteerde onderliggende geheugenabstractiemodule [SWS_MemIf_00039]. Deze is gedeclareerd in header MemIf.h en dient voor het uitlezen van gegevens van een logisch geheugenblok.

Parameters en interface

De aanroep van MemIf_Read omvat de volgende in- en uitvoerparameters [SWS_MemIf_00039]:

  • DeviceIndex: Index van het doelapparaat voor de selectie van de doelmodule.
  • BlockNumber: Logisch bloknummer van het te lezen geheugenblok.
  • BlockOffset: Byte-offset binnen het logische blok vanaf waar wordt gelezen.
  • DataBufferPtr: Pointer naar de buffer voor de opslag van de gelezen gegevens.
  • Length: Aantal te lezen databytes.

Foutafhandeling en retourwaarden

Wanneer de detectie van ontwikkelingsfouten (Development Error Detection) actief is en een ontwikkelingsfout wordt gedetecteerd, retourneert de functie E_NOT_OK [SWS_MemIf_00039]. Anders wordt de retourwaarde van de aangeroepen leesfunctie van de onderliggende module doorgegeven als Std_ReturnType [SWS_MemIf_00039].

Gelijktijdigheid en beperkingen

De functie is gespecificeerd als synchroon en niet-re-entrant (Non Reentrant) [SWS_MemIf_00039]. Een aanroep zal daarom typisch plaatsvinden in taskcontext; parallelle of geneste aanroepen moeten door de aanroeper worden vermeden resp. geserialiseerd. Vraag Q-b774bf07a69e28af (open)

Deze gebruiksinstructie is gegenereerd door een AI en gebaseerd op de AUTOSAR-specificatie R20-11.

functie MemIf_Write [SWS_MemIf_00040] 📄 PDF

Std_ReturnType MemIf_Write (uint8 DeviceIndex, uint16 BlockNumber, const uint8* DataBufferPtr);

Invokes the "Write" function of the underlying memory abstraction module selected by the parameter Device Index.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 88682d2af3e3 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik en aanroepcontext

De interfacefunctie MemIf_Write dient als abstractielaag en roept de Write-functie aan van de onderliggende geheugenabstractiemodule, die via parameter DeviceIndex wordt geselecteerd [SWS_MemIf_00040]. Bij de synchrone aanroep worden drie ingangsparameters meegegeven: de apparaatindex DeviceIndex voor de selectie van de doeldriver, het logische bloknummer BlockNumber en de pointer DataBufferPtr naar de buffer met de te schrijven gegevens [SWS_MemIf_00040]. De functie is gespecificeerd onder service-ID 0x03 en beschikbaar via het headerbestand MemIf.h [SWS_MemIf_00040].

Foutafhandeling en retourwaarden

De retourwaarde is van het type Std_ReturnType [SWS_MemIf_00040]. Indien de detectie van ontwikkelingsfouten (Development Error Detection) voor de Memory Abstraction Interface actief is en een ontwikkelingsfout conform [SWS_MemIf_00022] wordt vastgesteld, levert MemIf_Write de foutcode E_NOT_OK terug [SWS_MemIf_00040]. Is er geen sprake van een fout, dan stuurt de functie de retourwaarde van de aangeroepen onderliggende module ongewijzigd door naar de aanroeper [SWS_MemIf_00040].

Gelijktijdigheid en randvoorwaarden

Wat het concurrencygedrag betreft, is MemIf_Write gedefinieerd als synchroon en niet-re-entrant (Non Reentrant) [SWS_MemIf_00040].

Deze gebruiksinstructie is gegenereerd door een AI op basis van de specificatie AUTOSAR Classic R20-11.

functie MemIf_Cancel [SWS_MemIf_00041] 📄 PDF

void MemIf_Cancel (uint8 DeviceIndex);

Invokes the "Cancel" function of the underlying memory abstraction module selected by the parameter Device Index.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: fa67da25152e Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie MemIf_Cancel dient ertoe de Cancel-functie van de onderliggende geheugenabstractiemodule aan te roepen die via parameter Device Index wordt geselecteerd [SWS_MemIf_00041]. De dienst heeft geen retourwaarde en stuurt de afbreekopdracht direct door naar de geadresseerde abstractie-instantie [SWS_MemIf_00041].

Voor de aanroep en de integratie gelden de volgende technische eigenschappen:

  • Aanroepcontext en concurrency: De functie is gedefinieerd als niet-re-entrant (Non Reentrant) [SWS_MemIf_00041]. Aanroepers moeten ervoor zorgen dat de uitvoering niet gelijktijdig of onderbrekend door andere contexten plaatsvindt.
  • Signatuur en identificatie: De interface void MemIf_Cancel (uint8 Device Index) heeft het service-ID 0x04 en wordt beschikbaar gesteld via het headerbestand MemIf.h [SWS_MemIf_00041].
  • Parameters: De ingangsparameter Device Index (type uint8) selecteert de doelmodule; in-/uitvoer- of retourparameters zijn niet aanwezig [SWS_MemIf_00041].
  • Foutafhandeling: De specificatie beschrijft voor deze functie geen specifieke foutcodes, retourwaarden of DET-meldingen [SWS_MemIf_00041] (interpretatie: een controle op ongeldige apparaatindices is vermoedelijk overgelaten aan de bovenliggende systeemarchitectuur of de onderliggende module). Vraag Q-4a5d989ce611ba89 (open)

Deze gebruiksinstructie is opgesteld door een AI op basis van de AUTOSAR-specificatie R20-11.

functie MemIf_GetStatus [SWS_MemIf_00042] 📄 PDF

MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);

Invokes the "Get Status" function of the underlying memory abstraction module selected by the parameter Device Index.

functie MemIf_GetJobResult [SWS_MemIf_00043] 📄 PDF

MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);

Invokes the "Get Job Result" function of the underlying memory abstraction module selected by the parameter Device Index. Available v ia Mem If.h

functie MemIf_InvalidateBlock [SWS_MemIf_00044] 📄 PDF

Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);

Invokes the "Invalidate Block" function of the underlying memory abstraction module AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface selected by the parameter Device Index.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 65e4894eca9b Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

De synchrone functie MemIf_InvalidateBlock leidt de opdracht tot ongeldigverklaring van een logisch blok door naar de via de parameter DeviceIndex geselecteerde onderliggende geheugenabstractiemodule [SWS_MemIf_00044]. De interface wordt beschikbaar gesteld via de header MemIf.h en voert het service-ID 0x07 [SWS_MemIf_00044].

Gebruik en parameters

De aanroep geschiedt synchroon en draagt de volgende invoerparameters over aan het adresseringsdoel [SWS_MemIf_00044]:

  • DeviceIndex: Numerieke index van de onderliggende geheugenabstractiemodule [SWS_MemIf_00044].
  • BlockNumber: Eenduidige identificatie van het te invalideren geheugenblok [SWS_MemIf_00044].

Foutafhandeling en retourwaarden

De functie retourneert een statuswaarde van het type Std_ReturnType [SWS_MemIf_00044]:

  • Indien de detectie van ontwikkelingsfouten (Development Error Detection) voor het Memory Abstraction Interface is geactiveerd en er een fout conform SWS_MemIf_00022 optreedt, retourneert de functie E_NOT_OK [SWS_MemIf_00044].
  • Indien er geen ontwikkelingsfout wordt vastgesteld, retourneert de interface het resultaat van de aangeroepen functie van de onderliggende module [SWS_MemIf_00044].

Concurrency

De functie is gespecificeerd als niet-reentrant (Non Reentrant) [SWS_MemIf_00044].

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR Classic Release R20-11.

functie MemIf_EraseImmediateBlock [SWS_MemIf_00046] 📄 PDF

Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);

Invokes the "Erase Immediate Block" function of the underlying memory abstraction module selected by the parameter Device Index.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: e3fb9cffcdad Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Gebruik

De synchrone functie MemIf_EraseImmediateBlock initieert het wissen van een als onmiddellijk geclassificeerd blok in de onderliggende geheugenabstractiemodule [SWS_MemIf_00046]. De aanroep wordt beschikbaar gesteld via de header MemIf.h en voert het service-ID 0x09 [SWS_MemIf_00046]. Als invoerparameters dienen DeviceIndex voor het adresseren van het specifieke geheugenapparaat respectievelijk de abstractiemodule, evenals BlockNumber voor de identificatie van het doelblok [SWS_MemIf_00046]. Aanvullende inout- of out-parameters bestaan niet [SWS_MemIf_00046].

Retourwaarden en foutafhandeling

De functie retourneert een statuswaarde van het type Std_ReturnType [SWS_MemIf_00046]. Wanneer de detectie van ontwikkelingsfouten voor het Memory Abstraction Interface is geactiveerd en een desbetreffende fout conform [SWS_MemIf_00022] wordt vastgesteld, levert de aanroep de vaste retourwaarde E_NOT_OK op [SWS_MemIf_00046]. Treedt er geen dergelijke fout op, dan wordt het directe resultaat van de aangeroepen functie van de onderliggende module doorgegeven aan de aanroeper [SWS_MemIf_00046].

Gelijktijdigheid en beperkingen

De uitvoering van MemIf_EraseImmediateBlock vindt synchroon plaats en is gespecificeerd als niet-reentrant (Non Reentrant) [SWS_MemIf_00046]. Interpretatie: Aangezien parallelle aanroepen van de interface ontoelaatbaar zijn, mag de functie in het totale systeem vermoedelijk alleen worden aangeroepen vanuit een gesynchroniseerde context op taakniveau, om data-inconsistenties in de onderliggende geheugendrivers te voorkomen. Vraag Q-4fce518bab0115db (open)

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie AUTOSAR CP R20-11.

type MemIf_StatusType [SWS_MemIf_00064] 📄 PDF

Denotes the current status of the underlying abstraction module and device drive. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: a0c9a4a73b28 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het opsommingstype MemIf_StatusType markeert de actuele bedrijfs- en uitvoeringsstatus van de onderliggende geheugenabstractiemodule evenals de bijbehorende apparaatdriver conform [SWS_MemIf_00064]. Dit type is gedefinieerd in het Memory Abstraction Interface en staat via het headerbestand MemIf.h ter beschikking van aanroepers [SWS_MemIf_00064].

De enumeratie omvat vier afzonderlijke toestanden voor het weergeven van de bedrijfsgereedheid [SWS_MemIf_00064]:

  • MEMIF_UNINIT: De onderliggende abstractiemodule of de bijbehorende apparaatdriver is (nog) niet geïnitialiseerd [SWS_MemIf_00064].
  • MEMIF_IDLE: De abstractiemodule of de apparaatdriver is bedrijfsklaar en voert momenteel geen opdrachten uit [SWS_MemIf_00064].
  • MEMIF_BUSY: De onderliggende module of de apparaatdriver verwerkt momenteel een operatie [SWS_MemIf_00064].
  • MEMIF_BUSY_INTERNAL: De abstractiemodule handelt interne beheeroperaties af, terwijl de driver vrij of bezig kan zijn [SWS_MemIf_00064].

Aanroepende lagen gebruiken deze status om voorafgaand aan het toekennen van opdrachten synchroon vast te stellen of de geheugenlagen bedrijfsklaar zijn dan wel of er interne beheerprocessen lopen [SWS_MemIf_00064]. Aangezien MemIf_StatusType een zuivere gegevenstypedefinitie is, zijn functionele aspecten zoals DET- of DEM-meldingen, reentrantieregels of aanroepcontexten niet afzonderlijk vermeld in het specificatie-element.

Deze tekst is gegenereerd door een AI op basis van de AUTOSAR-specificatie.

Implementer's Guide volgt (complexiteit I1)

type MemIf_JobResultType [SWS_MemIf_00065] 📄 PDF

Denotes the result of the last job.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 975aee2541ba Herkomst Open vragen (1)
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het opsommingstype MemIf_JobResultType beschrijft het resultaat van de laatst verwerkte opdracht aan de geheugeninterface en wordt beschikbaar gesteld via het headerbestand MemIf.h [SWS_MemIf_00065].

De enumeratie definieert toestanden voor de uitvoering alsmede specifieke fout- en bloktoestanden [SWS_MemIf_00065]:

  • MEMIF_JOB_OK: De aangevraagde opdracht is succesvol voltooid [SWS_MemIf_00065].
  • MEMIF_JOB_PENDING: De opdracht is nog niet afgerond [SWS_MemIf_00065]. Interpretatie: Dit duidt erop dat opdrachten asynchroon worden verwerkt en dat de aanroeper de voltooiing via deze tussentoestand vaststelt. Vraag Q-31078cf25506334e (open)
  • MEMIF_JOB_FAILED: De opdracht is niet succesvol afgerond [SWS_MemIf_00065].
  • MEMIF_JOB_CANCELED: De opdracht is geannuleerd [SWS_MemIf_00065].
  • MEMIF_BLOCK_INCONSISTENT: Het opgevraagde blok is inconsistent, bevat mogelijk beschadigde gegevens of is niet gevonden [SWS_MemIf_00065].
  • MEMIF_BLOCK_INVALID: Het opgevraagde blok is als ongeldig gemarkeerd, zodat de gewenste bewerking niet kan worden uitgevoerd [SWS_MemIf_00065].

Bij de evaluatie van het opdrachtresultaat dient het type voor het differentiëren tussen algemene uitvoeringsfouten (MEMIF_JOB_FAILED) en blokgerelateerde problemen (MEMIF_BLOCK_INCONSISTENT, MEMIF_BLOCK_INVALID) [SWS_MemIf_00065].

Deze tekst is gegenereerd door een AI en dient ter oriëntatie.

type MemIf_ModeType [SWS_MemIf_00066] 📄 PDF

Denotes the operation mode of the underlying abstraction mod ules and device drivers.

DOOR AI GEGENEREERD ongecontroleerd Model: gemini-3.8-flash-medium · Inspanning: medium · Temperatuur: niet regelbaar · Prompt: 00926ceab163 Herkomst
vertaald uit de Duitse handleidinggemini-3.8-flash-low · 2026-10-13 · Duits origineel

Het opsommingstype MemIf_ModeType definieert de bedrijfsmodus van de onderliggende geheugenabstractiemodules en apparaatstuurprogramma's [SWS_MemIf_00066]. Het wordt beschikbaar gesteld via het headerbestand MemIf.h en dient voor de besturing van het snelheids- en bedrijfsgedrag van de geheugentoegangen [SWS_MemIf_00066].

Het waardebereik omvat conform [SWS_MemIf_00066] twee toestanden:

  • MEMIF_MODE_SLOW: De onderliggende abstractiemodules en apparaatstuurprogramma's werken in de langzame modus (Slow Mode) [SWS_MemIf_00066].
  • MEMIF_MODE_FAST: De onderliggende abstractiemodules en apparaatstuurprogramma's werken in de snelle modus (Fast Mode) [SWS_MemIf_00066].

Wat betreft foutafhandeling, re-entrantie of specifieke aanroepcontexten bevat de specificatie van het type geen afzonderlijke bepalingen; de overdracht en evaluatie van de modus vindt synchroon plaats via de bijbehorende interfaces van de geheugeninterface respectievelijk de onderliggende stuurprogramma's [SWS_MemIf_00066].

Deze tekst is gegenereerd door een AI en dient voor technische oriëntatie.

Implementer's Guide volgt (complexiteit I1)

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

Record
AUTOSAR/AP/record/CP_MOD_MemIf
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_MemIf@rel:R20-11#a7d6d84a
Content hash
a7d6d84a
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_MemoryAbstractionInterface.pdf#nameddest=SWS_MemIf_00038

Initialisatie en status

Invokes the "Get Status" function of the underlying memory abstraction module selected by the parameter Device Index.

MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);

Returns version information.

void MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);

Diensten

MemIf_Cancel functie

Invokes the "Cancel" function of the underlying memory abstraction module selected by the parameter Device Index.

void MemIf_Cancel (uint8 DeviceIndex);

Invokes the "Erase Immediate Block" function of the underlying memory abstraction module selected by the parameter Device Index.

Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);

Invokes the "Get Job Result" function of the underlying memory abstraction module selected by the parameter Device Index. Available v ia Mem If.h

MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);

Invokes the "Invalidate Block" function of the underlying memory abstraction module AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface selected by the parameter Device Index.

Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);
MemIf_Read functie

Invokes the "Read" function of the underlying memory abstraction module selected by the parameter Device Index.

Std_ReturnType MemIf_Read (uint8 DeviceIndex, uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);

Invokes the "Set Mode" functions of all underlying memory abstraction modules.

void MemIf_SetMode (MemIf_ModeType Mode);
MemIf_Write functie

Invokes the "Write" function of the underlying memory abstraction module selected by the parameter Device Index.

Std_ReturnType MemIf_Write (uint8 DeviceIndex, uint16 BlockNumber, const uint8* DataBufferPtr);

Typen

Denotes the result of the last job.

Denotes the operation mode of the underlying abstraction mod ules and device drivers.

Denotes the current status of the underlying abstraction module and device drive. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_MemoryAbstractionInterface