DEENESPTFRRUARHIKOZHNL

NVRAM Manager (NvM)

ModulNvM (NVRAM Manager)
BSW-Modul-ID20
Standard-Header#include "NvM.h"
SWS-SpezifikationAUTOSAR_SWS_NVRAMManager.pdf
ClusterMemory Services

ModulegidsAI-GEGENEREERD

Beheert niet-vluchtige datablokken en synchroniseert deze asynchroon tussen RAM en NV-geheugen.
DOOR AI GEGENEREERD ongecontroleerd Model: claude-opus-5-5 · Inspanning: high · Temperatuur: niet regelbaar · Prompt: 1d912b11517a Herkomst Open vragen (1)
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

Beheert niet-vluchtige datablokken en synchroniseert deze asynchroon tussen RAM en NV-geheugen.

De NVRAM Manager (NvM) is de enige toegang tot het niet-vluchtige geheugen. Hij kopieert NVRAM-blokken impliciet tussen RAM en NV-geheugen [SWS_NvM_00038]. Bij het opstarten vult het door de BswM geïnitieerde NvM_ReadAll de RAM-blokken; bij de shutdown slaat NvM_WriteAll gewijzigde blokken op. Individuele opdrachten zoals NvM_WriteBlock worden asynchroon in de wachtrij geplaatst, op basis van prioriteit verwerkt en via status of callback bevestigd [SWS_NvM_00185]. Leesfouten vangt de NvM op via herhalingen, redundante kopieën en standaarddata; gebruikers moeten de blokstatus desondanks zelf controleren.

De NVRAM Manager (NvM) is de enige toegang tot het niet-vluchtige geheugen [SWS_NvM_00384]. Hij kopieert blokken impliciet tussen NVRAM en RAM; de applicatie werkt rechtstreeks met de RAM-data [SWS_NvM_00038]. Naar onderen toe gebruikt hij de Memory Abstraction Interface met Fee respectievelijk Ea [SWS_NvM_00051]. Statussen meldt hij aan de BswM, fouten aan DEM en DET [SWS_NvM_00745] [SWS_NvM_00592].

kontext nutzer NvM-gebruiker (SW-C via RTE, BSW-modules) nvm NvM (NVRAM Manager) nutzer->nvm Afzonderlijke opdrachten NvM_ReadBlock, NvM_WriteBlock, … bswm BswM bswm->nvm NvM_Init, NvM_ReadAll, NvM_WriteAll, NvM_CancelWriteAll nvm->nutzer SingleBlock-, InitBlock- en mirror-callbacks nvm->bswm BswM_NvM_CurrentJobMode, BswM_NvM_CurrentBlockMode memif MemIf nvm->memif Lees-/schrijfopdrachten, MemIf_GetJobResult dem Dem nvm->dem Produktionsfehler det Det nvm->det Entwicklungsfehler crc Crc nvm->crc CRC-Berechnung fee Fee / Ea memif->fee Weiterleitung fee->nvm NvM_JobEndNotification, NvM_JobErrorNotification

Contextdiagram: inbedding van de NvM tussen gebruikers, BswM, MemIf/Fee/Ea en DEM en DET. Bronnen: [SWS_NvM_00384] [SWS_NvM_00465] [SWS_NvM_00746]

Elk NVRAM-blok bestaat uit een NV-blok, RAM-blok en Administrative Block, optioneel aangevuld met een ROM-blok met standaarddata [SWS_NvM_00138]. Er zijn de types Native, Redundant en Dataset; zij verschillen in het aantal NV- en ROM-blokken [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559]. Het RAM-blok synchroniseert de NvM impliciet direct of expliciet via een RAM-mirror met callbacks [SWS_NvM_00511].

De levenscyclus verloopt in drie stappen:

Individuele opdrachten zoals NvM_WriteBlock worden in de wachtrij geplaatst en staan daarna op NVM_REQ_PENDING [SWS_NvM_00185]. Optioneel gebruikt de NvM een eigen wachtrij voor Immediate-opdrachten [SWS_NvM_00378]. Het resultaat wordt geleverd door NvM_GetErrorStatus of een geconfigureerde callback [SWS_NvM_00015] [SWS_NvM_00740].

Asynchrone enkelvoudige blokopdracht met terugkoppelingNvM-AnwenderNvMBswMBSW-TaskMemIfNvM_WriteBlock(BlockId, NvM_SrcPtr)einreihen, Blockergebnis:NVM_REQ_PENDINGoptNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, NVM_REQ_PENDING)E_OKlooptotdat de schrijfjob is voltooidNvM_MainFunction()Schreibauftrag / Status abfragenJob-ErgebnisoptNvMSingleBlockCallback konfiguriertNvM_SingleBlockCallbackFunction(NVM_WRITE_BLOCK, JobResult)optNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, Ergebnis)NvM_GetErrorStatus(BlockId, RequestResultPtr)E_OK, Ergebnis

Sequentiediagram: een asynchrone schrijfopdracht wordt in de wachtrij geplaatst, verwerkt in NvM_MainFunction en bevestigd via callback, BswM-melding en statusopvraag. Bronnen: [SWS_NvM_00185] [SWS_NvM_00347] [SWS_NvM_00891], SWS NvM p. 160

Leesfouten vangt de NvM op via drie trappen:

Interpretatie: de volgorde van de trappen volgt vermoedelijk de opsomming in de Error Description. Vraag Q-027e7f981e4d0a43 (open) Schrijffouten herhaalt de NvM tot NVM_MAX_NUM_OF_WRITE_RETRIES en meldt vervolgens NVM_E_REQ_FAILED aan de DEM [SWS_NvM_00684]. Gebruikers controleren de status van hun blokken zelf [SWS_NvM_00694].

Rol in de geheugenstack: enige toegang tot het niet-vluchtige geheugen

De NVRAM Manager (NvM) bundelt de toegang tot niet-vluchtige data. De omgeving benadert het niet-vluchtige geheugen uitsluitend via de NvM, die daarvoor een callback-interface ter beschikking stelt [SWS_NvM_00384]. De toegang is impliciet: de NvM kopieert blokken tussen NVRAM en gemeenschappelijk gebruikt RAM. De applicatie werkt met inachtneming van synchronisatieregels rechtstreeks met de RAM-data [SWS_NvM_00038] [SWS_NvM_00692]. Een blok wordt geselecteerd via zijn geconfigureerde blok-ID [SWS_NvM_00069] [SWS_NvM_00471]. Upper layers binden hiervoor alleen NvM.h in [SWS_NvM_00691]. De afbeelding over impliciet actualiseren toont de taakverdeling: andere delen van de basissoftware initiëren het opslaan en herstellen van alle blokken afhankelijk van de ECU-toestand. De SW-C benadert alleen de inhoud van haar RAM-blokken (SWS NvM p. 121).

Naar onderen toe werkt de NvM tegen de Memory Abstraction Interface. Samen met Fee respectievelijk Ea stelt deze een virtuele lineaire 32-bits adresruimte beschikbaar [SWS_NvM_00051] [SWS_NvM_00465]. Checksums berekent de NvM via de Crc-module [SWS_NvM_00466]. Het einde van een lower-layer-job verneemt hij op twee manieren:

Productiefouten gaan naar de DEM [SWS_NvM_00592], ontwikkelingsfouten naar de DET [SWS_NvM_00614]. Opdrachtstatussen meldt de NvM aan de BswM [SWS_NvM_00745] [SWS_NvM_00746].

kontext nutzer NvM-gebruiker (SW-C via RTE, BSW-modules) nvm NvM (NVRAM Manager) nutzer->nvm Afzonderlijke opdrachten NvM_ReadBlock, NvM_WriteBlock, … bswm BswM bswm->nvm NvM_Init, NvM_ReadAll, NvM_WriteAll, NvM_CancelWriteAll nvm->nutzer SingleBlock-, InitBlock- en mirror-callbacks nvm->bswm BswM_NvM_CurrentJobMode, BswM_NvM_CurrentBlockMode memif MemIf nvm->memif Lees-/schrijfopdrachten, MemIf_GetJobResult dem Dem nvm->dem Produktionsfehler det Det nvm->det Entwicklungsfehler crc Crc nvm->crc CRC-Berechnung fee Fee / Ea memif->fee Weiterleitung fee->nvm NvM_JobEndNotification, NvM_JobErrorNotification

Contextdiagram: de NvM bemiddelt tussen gebruikers en BswM aan de ene kant en MemIf/Fee/Ea aan de andere kant. Fouten meldt hij aan DEM en DET. Bronnen: [SWS_NvM_00384] [SWS_NvM_00745] [SWS_NvM_00746] [SWS_NvM_00465] [SWS_NvM_00466], Error Description p. 43

Opbouw van een NVRAM-blok en de drie beheertypes

Een NVRAM-blok bestaat uit de verplichte bestanddelen NV-blok, RAM-blok en Administrative Block. Een ROM-blok met standaarddata is optioneel [SWS_NvM_00138] [SWS_NvM_00139] [SWS_NvM_00020]. De samenstelling legt de blokdescriptor vast tijdens configuratietijd [SWS_NvM_00140]. De afzonderlijke bestanddelen:

De NvM ondersteunt de types NVM_BLOCK_NATIVE, NVM_BLOCK_REDUNDANT en NVM_BLOCK_DATASET [SWS_NvM_00137]. Zij verschillen in het aantal NV- en ROM-blokken [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559] (SWS NvM p. 10). Voor Dataset-blokken geldt:

blockaufbau nvram NVRAM-Block (BlockId, Verwaltungstyp) nv NV-Block Header (opt.), Daten, CRC (opt.) nvram->nv NATIVE: 1 REDUNDANT: 2 DATASET: 1..m ram RAM-blok permanent, tijdelijk of RAM-mirror nvram->ram genau 1 rom ROM-Block (optional) Defaultdaten nvram->rom NATIVE/REDUNDANT: 0..1 DATASET: 0..n adm Administrative Block Index, Attribute, Fehler-/Status nvram->adm genau 1

Collaboratiediagram (blokstructuur): verplichte en optionele bestanddelen van een NVRAM-blok met kardinaliteiten per beheertype. Bronnen: [SWS_NvM_00138] [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559] [SWS_NvM_00134], SWS NvM p. 10

Levenscyclus: NvM_Init, NvM_ReadAll en NvM_WriteAll

De BswM roept NvM_Init exclusief aan [SWS_NvM_00693]. NvM_Init reset wachtrijen en toestandsautomaten en signaleert intern “INIT DONE” [SWS_NvM_00399]. Het initialiseert noch RAM-blokken noch onderliggende modules [SWS_NvM_00091] [SWS_NvM_00193]. De configuratiewijzer is altijd NULL_PTR [SWS_NvM_00881]. Pas daarna verwerkt NvM_MainFunction opdrachten [SWS_NvM_00257].

De RAM-blokken worden aansluitend gevuld door NvM_ReadAll [SWS_NvM_00718]. De aanroep signaleert de opdracht slechts. De verwerking wordt uitgesteld totdat de individuele blokopdrachten zijn afgehandeld [SWS_NvM_00243]. Daarna verloopt de job in drie stappen:

  1. Eerst vergelijkt hij het opgeslagen configuratie-ID met het gecompileerde [SWS_NvM_00073]. Bij afwijking hangt het gedrag af van NvMDynamicConfiguration: met NvMDynamicConfiguration == FALSE wordt de afwijking genegeerd [SWS_NvM_00248]. Anders krijgen niet-wijzigingsresistente blokken standaarddata [SWS_NvM_00249] [SWS_NvM_00674] (NV Data Handling p. 15).
  2. Vervolgens itereert hij over de gebruikersblokken behalve de blok-ID's 0 en 1 [SWS_NvM_00244]. Daarbij verwerkt hij alleen blokken met een permanent RAM-blok of expliciete synchronisatie [SWS_NvM_00118].
  3. Tot slot zet hij het totale resultaat op NVM_REQ_OK of NVM_REQ_NOT_OK [SWS_NvM_00895] [SWS_NvM_00301].

In het mode-management-voorbeeld start de BswM-regel NvMReadAllFinished de resterende initialisatie pas na afronding van NvM_ReadAll (Mode Management Guide p. 31).

Start: NvM_Init en NvM_ReadAllBSW-TaskBswMNvMMemIf / Fee / EaUse Case: InitialisierungNvM_Init(NULL_PTR)Wachtrijen en statussen resetten,„INIT DONE” – RAM-blokken ongewijzigdNvM_Init()Use Case: Multiblock-Auftrag NvM_ReadAllNvM_ReadAll()NvM_ReadAll()optNvMBswMMultiBlockJobStatusInformation == TRUEBswM_NvM_CurrentJobMode(ReadAll, NVM_REQ_PENDING)NvM_MainFunction()eerste stap: opgeslagen enkompilierte Konfigurations-ID vergleichenloopper gebruikersblok voor NvM_ReadAll (zonder blok-ID 0 en 1)NvM_MainFunction()NV-Block lesenJob-ErgebnisRAM-blok resp. mirror vullen,Blockergebnis setzenoptNvMBswMMultiBlockJobStatusInformation == TRUEBswM_NvM_CurrentJobMode(ReadAll, Ergebnis)BswM_MainFunction()Regel NvMReadAllFinished:restliche BSW-Initialisierung

Sequentiediagram: asynchrone start met NvM_Init, NvM_ReadAll en terugkoppeling van de multiblock-toestand aan de BswM. Bronnen: [SWS_NvM_00693] [SWS_NvM_00243] [SWS_NvM_00073] [SWS_NvM_00888] [SWS_NvM_00889], NV Data Handling p. 20

Voor de shutdown roept de BswM NvM_WriteAll aan [SWS_NvM_00092]. De job gedraagt zich als volgt:

Gebruikers markeren gewijzigde blokken met NvM_SetRamBlockStatus(…, TRUE), voor zover de API geactiveerd is [SWS_NvM_00406] [SWS_NvM_00408]. Bij dirty-flag-blokken neemt de RTE deze aanroep over (NV Data Handling p. 41).

NvM_CancelWriteAll is voorbehouden aan de BswM [SWS_NvM_00703] en blijft zonder lopend NvM_WriteAll zonder effect [SWS_NvM_00233]. Het huidige blok wordt niet-destructief afgerond [SWS_NvM_00238]. De resterende blokken en het multiblock-resultaat krijgen NVM_REQ_CANCELED [SWS_NvM_00236] [SWS_NvM_00237] (SWS NvM p. 161).

Twee verdere multiblock-opdrachten vullen de levenscyclus aan:

  • NvM_ValidateAll zet blokken met automatische validatie op “VALID / CHANGED” [SWS_NvM_00856].
  • NvM_FirstInitAll beschrijft blokken met standaarddata of invalideert ze als er geen beschikbaar zijn [SWS_NvM_00913] [SWS_NvM_00919].

Voor alle multiblock-opdrachten geldt een wachtrijlengte van één [SWS_NvM_00380].

Shutdown: NvM_WriteAll en NvM_CancelWriteAllBSW-TaskBswMNvMNvM_WriteAll()NvM_WriteAll()loopper blok met permanent RAM of expliciete synchronisatieNvM_MainFunction()„valid/modified” controleren; beveiligde engeblokkeerde blokken overslaan; schrijvenaltAbbruch angefordertNvM_CancelWriteAll()NvM_CancelWriteAll()NvM_MainFunction()actueel blok niet-destructief beëindigen,resterende blokken: NVM_REQ_CANCELEDBswM_NvM_CurrentJobMode(WriteAll, NVM_REQ_CANCELED)reguliere afsluitingBswM_NvM_CurrentJobMode(WriteAll, Ergebnis)Regel NvMWriteAllFinished:EcuM_GoDown

Sequentiediagram: shutdown met NvM_WriteAll en optionele afbreking door NvM_CancelWriteAll. Bronnen: [SWS_NvM_00092] [SWS_NvM_00682] [SWS_NvM_00238] [SWS_NvM_00237] [SWS_NvM_00889], Mode Management Guide p. 37

Individuele opdrachten: wachtrijen, prioriteiten en terugkoppeling

Individuele blokopdrachten zoals NvM_ReadBlock, NvM_WriteBlock of NvM_RestoreBlockDefaults zijn asynchroon. De functie neemt de parameters over, plaatst de opdracht in de wachtrij en keert terug [SWS_NvM_00195] [SWS_NvM_00208] [SWS_NvM_00224]. Daarna staat het blokresultaat op NVM_REQ_PENDING [SWS_NvM_00185]. Bij een overflow van de wachtrij levert de functie E_NOT_OK [SWS_NvM_00184]. Een blok wordt alleen in de wachtrij geplaatst als het niet al in behandeling is of wordt verwerkt [SWS_NvM_00385].

Andere services werken synchroon in de context van de aanroeper, zoals NvM_SetDataIndex [SWS_NvM_00448] en NvM_GetErrorStatus (SWS NvM p. 158). NvM_CancelJobs verwijdert in de wachtrij staande opdrachten van een blok; een lopende job wordt echter voortgezet [SWS_NvM_00536] [SWS_NvM_00537].

De verwerking geschiedt geserialiseerd volgens prioriteit [SWS_NvM_00162]. Als NvMJobPrioritization actief is, gebruikt de NvM twee wachtrijen, waarvan één voor Immediate-schrijfopdrachten (crash-data) [SWS_NvM_00564] [SWS_NvM_00378]. Een dergelijke NvM_WriteBlock breekt een wachtende job destructief af [SWS_NvM_00300]. NvM_MainFunction herstart de afgebroken job daarna opnieuw [SWS_NvM_00258]. Zonder prioritering werkt de NvM op volgorde van binnenkomst, zonder Immediate-jobs [SWS_NvM_00379]. Opdrachten die binnenkomen tijdens een multiblock-opdracht, worden in de wachtrij geplaatst en aansluitend uitgevoerd [SWS_NvM_00568] [SWS_NvM_00569].

Elke asynchrone opdracht legt zijn resultaat vast in het fout-/statusveld [SWS_NvM_00175]. NvM_GetErrorStatus leest dit veld uit [SWS_NvM_00015]. Daarnaast zijn er twee optionele terugkoppelingskanalen:

Asynchrone enkelvoudige blokopdracht met terugkoppelingNvM-AnwenderNvMBswMBSW-TaskMemIfNvM_WriteBlock(BlockId, NvM_SrcPtr)einreihen, Blockergebnis:NVM_REQ_PENDINGoptNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, NVM_REQ_PENDING)E_OKlooptotdat de schrijfjob is voltooidNvM_MainFunction()Schreibauftrag / Status abfragenJob-ErgebnisoptNvMSingleBlockCallback konfiguriertNvM_SingleBlockCallbackFunction(NVM_WRITE_BLOCK, JobResult)optNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, Ergebnis)NvM_GetErrorStatus(BlockId, RequestResultPtr)E_OK, Ergebnis

Sequentiediagram: asynchrone schrijfopdracht met BswM-statusmeldingen, callback en statusopvraag. Bronnen: [SWS_NvM_00185] [SWS_NvM_00347] [SWS_NvM_00740] [SWS_NvM_00890] [SWS_NvM_00891], SWS NvM p. 160

RAM-bloksynchronisatie en bloktoestand

De NvM kent twee manieren om data te synchroniseren met het RAM-blok van de applicatie. Bij impliciete synchronisatie werkt hij rechtstreeks op dit RAM-blok. De applicatie stelt het blok ter beschikking en benadert het niet tot het einde van de opdracht [SWS_NvM_00698] [SWS_NvM_00699]. Geeft zij NULL_PTR door, dan gebruikt de NvM het permanente RAM-blok [SWS_NvM_00898] [SWS_NvM_00900]. Een tijdelijk blok via een pointer is desondanks mogelijk [SWS_NvM_00278]. De PRAM-services werken altijd op het permanente RAM-blok [SWS_NvM_00765] [SWS_NvM_00794]. In het RTE-scenario is dit blok een Per-Instance-Memory (NV Data Handling p. 32).

Bij expliciete synchronisatie (NvMBlockUseSyncMechanism) verloopt de uitwisseling via een interne RAM-mirror [SWS_NvM_00511]. Daarvan is er precies één, gedimensioneerd volgens het grootste betrokken blok [SWS_NvM_00513]. De NvM roept NvMWriteRamBlockToNvCallback respectievelijk NvMReadRamBlockFromNvCallback aan [SWS_NvM_00515] [SWS_NvM_00516]. Levert een callback E_NOT_OK op, dan herhaalt hij de aanroep in de volgende cyclus, tot maximaal NvMRepeatMirrorOperations keer [SWS_NvM_00579] [SWS_NvM_00840]. Tot de callback mag de applicatie het RAM-blok nog wijzigen [SWS_NvM_00705]. Een blok gebruikt ofwel expliciete synchronisatie ofwel een permanent RAM-blok, niet beide [SWS_NvM_00904]. Het mechanisme maakt gedeelde blokken mogelijk via een NvBlockSwComponentType (NV Data Handling p. 12).

Schrijven met expliciete synchronisatieAnwendung (SW-C/RTE)NvMBSW-TaskMemIfRAM-blok met gegevens vullenNvM_WriteBlock(BlockId, NULL_PTR)E_OKRAM-blok mag tot aan decallback nog gewijzigd wordenNvM_MainFunction()NvM_WriteRamBlockToNvm(NvMBuffer)(NvMWriteRamBlockToNvCallback)RAM-Block in RAM-Mirror kopierenaltRetourwaarde E_OKE_OKMirror-Inhalt in NV-Block schreibenRetourwaarde E_NOT_OKE_NOT_OKCallback in de volgende NvM_MainFunctionerneut aufrufen (max. NvMRepeatMirrorOperations)

Sequentiediagram: schrijfopdracht met expliciete synchronisatie via de RAM-mirror, inclusief herhaling bij E_NOT_OK. Bronnen: [SWS_NvM_00515] [SWS_NvM_00705] [SWS_NvM_00579] [SWS_NvM_00840], NV Data Handling p. 27

Voor permanente RAM-blokken respectievelijk de mirror houdt de NvM een toestand “valid”/“invalid” bij [SWS_NvM_00128] [SWS_NvM_00132]. De overgangen in detail:

  • NvM_ReadBlock invalideert het permanente RAM-blok al bij het plaatsen in de wachtrij [SWS_NvM_00198].
  • Na succesvol lezen is het “valid/unchanged” [SWS_NvM_00200].
  • Na geladen standaarddata is het “valid/changed” [SWS_NvM_00366].
  • NvM_SetRamBlockStatus(…, TRUE) markeert het als gewijzigd en start een herberekening van de CRC op de achtergrond [SWS_NvM_00406] [SWS_NvM_00121].
  • Na succesvol schrijven geldt het als “valid/unmodified” [SWS_NvM_00472].
blockzustand invalid INVALID unchanged VALID / UNCHANGED invalid->unchanged NV-Daten erfolgreich gelesen changed VALID / CHANGED invalid->changed Defaultdaten geladen unchanged->invalid NvM_ReadBlock angenommen (permanenter RAM) unchanged->changed NvM_SetRamBlockStatus(TRUE) of NvM_ValidateAll changed->invalid NvM_ReadBlock angenommen (permanenter RAM) changed->unchanged erfolgreich in NV geschrieben

Toestandsdiagram: RAM-bloktoestanden en de activerende gebeurtenissen. Bronnen: [SWS_NvM_00198] [SWS_NvM_00200] [SWS_NvM_00366] [SWS_NvM_00406] [SWS_NvM_00472] [SWS_NvM_00856]

Configuratie, beveiligingsmechanismen en partitierelatie

Voor beperkte resources zijn er drie API-configuratieklassen [SWS_NvM_00149]. Klasse 1 ondersteunt geen Dataset-blokken [SWS_NvM_00365]. De descriptortabellen worden gegenereerd [SWS_NvM_00143]. De geheugenbehoefte declareren de gebruikers tijdens configuratietijd [SWS_NvM_00030]. BSW-modules doen dat via NvBlockNeeds (BSWMD Template p. 241). De ECU-integrator leidt daaruit de NvM-configuratie af (Methodology p. 444).

Voor individuele blokken staan meerdere beveiligingsmechanismen ter beschikking:

  • Een attribuutveld beheert de schrijfbeveiliging [SWS_NvM_00054]; NvMBlockWriteProt activeert deze als standaardinstelling [SWS_NvM_00326].
  • Blokken met NvMWriteBlockOnce worden slechts eenmaal beschreven [SWS_NvM_00397]. Schrijfopdrachten vóór de eerste leesactie wijst de NvM af [SWS_NvM_00952].
  • Voor vergrendelde blokken (NvM_SetBlockLockStatus) levert NvM_WriteBlock E_NOT_OK [SWS_NvM_00749]. De vergrendeling wordt noch door NvM_SetRamBlockStatus noch door NvM_SetBlockProtection gewijzigd [SWS_NvM_00754].
  • Optioneel zijn bovendien een Static-Block-ID-header [SWS_NvM_00522], een CRC-vergelijking tegen onnodig schrijven [SWS_NvM_00849] en versleuteling via de CSM [SWS_NvM_00976].

Bij partitionering roept de NvM interfaces aan in de context van de telkens toegewezen partitie. Algemene functies draaien in de masterpartitie [SWS_NvM_00969]. NvM_ReadAll en NvM_WriteAll worden alleen door de master aangeboden [SWS_NvM_00970] [SWS_NvM_00971] [SWS_NvM_CONSTR00974]. SW-C's bereiken de NvM via blokgerelateerde poorten:

Gedrag in het foutgeval

Bij het lezen evalueert de NvM de meldingen van de MemIf op verschillende manieren:

Daarna treden meerdere hersteltrappen in werking:

  1. Bij CRC-fouten volgen geconfigureerde leesherhalingen [SWS_NvM_00526].
  2. Bij redundante blokken leest de NvM de tweede kopie en probeert hij de redundantie te herstellen [SWS_NvM_00199] [SWS_NvM_00531]. Mislukt dat, dan meldt hij NVM_E_LOSS_OF_REDUNDANCY [SWS_NvM_00546].
  3. Tot slot laadt de NvM standaarddata met het resultaat NVM_REQ_RESTORED_DEFAULTS [SWS_NvM_00202]. De NV-inhoud blijft daarbij ongewijzigd [SWS_NvM_00172].

Ontbreken standaarddata, dan blijft het RAM-blok ongeldig [SWS_NvM_00658] [SWS_NvM_00204]. Interpretatie: de volgorde van de trappen volgt vermoedelijk de opsomming in de Error Description (Error Description p. 62). Vraag (open) Deze bron wijkt op twee punten af van de requirements. Zij noemt NVM_REQ_RESTORED_FROM_ROM in plaats van NVM_REQ_RESTORED_DEFAULTS. Bovendien vat zij het definitieve falen algemeen samen als NVM_E_REQ_FAILED. Normatief zijn de bovengenoemde requirements.

lesefehler lesen NV-blok via MemIf lezen pruef Resultaat van de MemIf- en CRC-controle? lesen->pruef erfolg NVM_REQ_OK RAM-Block VALID / UNCHANGED pruef->erfolg in Ordnung inv NVM_REQ_NV_INVALIDATED geen Dem-melding pruef->inv MEMIF_BLOCK_INVALID retry Lesewiederholung (NVM_MAX_NUM_OF_READ_RETRIES) pruef->retry Fout, herhalingen over red NVM_BLOCK_REDUNDANT? pruef->red Fout, herhalingen uitgeput retry->lesen zweit zweiten NV-Block lesen red->zweit ja def Defaultdaten vorhanden? (ROM-Block / Init-Callback) red->def nein zweitok zweite Kopie in Ordnung? zweit->zweitok wieder Redundantie herstellen; bij mislukking NVM_E_LOSS_OF_REDUNDANCY zweitok->wieder ja zweitok->def nein wieder->erfolg restore Defaults in RAM laden NVM_REQ_RESTORED_DEFAULTS def->restore ja fail RAM-blok blijft ongeldig NVM_REQ_INTEGRITY_FAILED / NVM_REQ_NOT_OK Melding aan Dem def->fail nein

Activiteitendiagram: afhandeling van leesfouten van de herhaling via de redundante kopie tot de standaarddata. Interpretatie: de volgorde volgt de opsomming van de Error Description. Bronnen: [SWS_NvM_00526] [SWS_NvM_00199] [SWS_NvM_00202] [SWS_NvM_00341] [SWS_NvM_00658], Error Description p. 62

Bij het schrijven telt de NvM negatieve terugmeldingen tot NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00213] [SWS_NvM_00216]. Wordt de limiet overschreden, dan zet hij NVM_REQ_NOT_OK en meldt NVM_E_REQ_FAILED [SWS_NvM_00683] [SWS_NvM_00684] (Error Description p. 43). Twee verdere foutpatronen:

Verkeerde bediening meldt de NvM bij geactiveerde detectie van ontwikkelingsfouten aan de DET. Voorbeelden zijn NVM_E_UNINIT en NVM_E_BLOCK_PENDING [SWS_NvM_00614] [SWS_NvM_00615] evenals NVM_E_WRITE_PROTECTED [SWS_NvM_00962]. Een multiblock-opdracht eindigt met NVM_REQ_NOT_OK zodra een afzonderlijk blok faalt [SWS_NvM_00318]. De gebruikers controleren de status van hun blokken zelf [SWS_NvM_00694]. Na mislukt lezen leveren zij vóór de volgende schrijfactie geldige data [SWS_NvM_00696].

Verdere gedetailleerde bewijzen

Door AI gegenereerde handleiding op basis van de R20-11-requirements en bijbehorende documentpassages. Documentpassages uit andere releases zijn aanvullend. De gelinkte specificatieteksten blijven leidend.

NVRAM Manager (NvM)

Provides synchronous and asynchronous block-based data management for non-volatile storage (EEPROM, Flash).

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

functie NvM_Init [SWS_NvM_00447] 📄 PDF

void NvM_Init (const NvM_ConfigType* ConfigPtr);

Service for resetting all internal variables.

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

Gebruik en aanroepcontext

De functie NvM_Init dient voor het synchroon resetten van alle interne variabelen van de NVRAM Manager [SWS_NvM_00447]. Deze verwacht als overdrachtsparameter ConfigPtr een pointer naar de geselecteerde configuratiedataset en heeft geen retourwaarde [SWS_NvM_00447]. Als API van type 4 maakt deze deel uit van de configuratieklassen 2 en 3 [SWS_NvM_00560], [SWS_NvM_00561]. De functie is niet-re-entrant en mag uitsluitend worden aangeroepen door de BSW Mode Manager [SWS_NvM_00447], [SWS_NvM_00693].

Initialisatietaken

Tijdens de aanroep voert de functie de volgende acties uit:

  • Het resetten van alle interne variabelen, waaronder toestandsmachines, opdrachtwachtrijen en request-flags, naar hun initiële waarden [SWS_NvM_00399].
  • Het op nul instellen van de datasetindex van alle NVRAM-blokken van het type NVM_BLOCK_DATASET [SWS_NvM_00192].
  • Het intern instellen van het signaal „INIT DONE”, dat de voorwaarde vormt voor de opdrachtverwerking, het wachtrijbeheer en de CRC-herberekening in de module [SWS_NvM_00257], [SWS_NvM_00399].

Beperkingen en interactie

Wegens strikte eisen aan de starttijd van het regeleenheid initialiseert NvM_Init geen geconfigureerde NVRAM-blokken [SWS_NvM_00091]. Permanente RAM-blokinhoud wordt niet gewijzigd en synchronisatie-callbacks worden niet aangeroepen; dit is voorbehouden aan de functie NvM_ReadAll [SWS_NvM_00400]. Bovendien initialiseert NvM_Init noch onderliggende stuurprogramma's noch de geheugen-hardware-abstractie of externe modules, aangezien de initialisatie daarvan door de BSW Mode Manager wordt verondersteld [SWS_NvM_00157], [SWS_NvM_00193].

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

Implementer's Guide volgt (complexiteit I2)

functie NvM_SetBlockProtection [SWS_NvM_00450] 📄 PDF

Std_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);

Service for setting/ resetting the write protection for a NV block. Availabl e via Nv M.h

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

Gebruik en semantiek

De synchrone en re-entrante functie NvM_SetBlockProtection dient voor het instellen of opheffen van de schrijfbeveiliging voor een NVRAM-blok via het overeenkomstige attribuut in het administratieve blok [SWS_NvM_00450], [SWS_NvM_00016]. Deze is toegewezen aan API-configuratieklasse 3 [SWS_NvM_00560]. De omgeving van de NvM-module kan de schrijfbeveiliging via de parameter ProtectionEnabled gericht activeren of deactiveren [SWS_NvM_00578]. De functie retourneert bij succesvolle uitvoering E_OK en bij een fout E_NOT_OK [SWS_NvM_00450].

Beperkingen en concurrency

Het wijzigen van de schrijfbeveiliging is alleen toegestaan voor blokken waarbij NvMWriteBlockOnce is geconfigureerd op FALSE, ongeacht de waarde van de parameter NvMBlockWriteProt [SWS_NvM_00325]. Als NvMWriteBlockOnce is geconfigureerd op TRUE, mag de schrijfbeveiliging noch worden geactiveerd noch worden gedeactiveerd [SWS_NvM_00398], [SWS_NvM_00577]; deze beveiliging kan ook na leesbewerkingen niet worden opgeheven [SWS_NvM_00314], [SWS_NvM_00316], [SWS_NvM_00784]. Bovendien kan een via NvM_SetBlockLockStatus ingestelde blokkeringstoestand niet worden gewijzigd door NvM_SetBlockProtection [SWS_NvM_00754]. Zolang een individuele blokopdracht voor hetzelfde blok actief of in de wachtrij geplaatst is, is de aanroep niet toegestaan [SWS_NvM_00704].

Foutafhandeling

Bij geactiveerde ontwikkelingsdetectie (DET) meldt de functie specifieke fouttoestanden:

  • NVM_E_UNINIT, wanneer de NvM-module nog niet is geïnitialiseerd [SWS_NvM_00606].
  • NVM_E_PARAM_BLOCK_ID, wanneer de meegegeven BlockId buiten het geldige bereik ligt [SWS_NvM_00609].
  • NVM_E_BLOCK_PENDING, indien voor het blok al een bewerking actief of in de wachtrij geplaatst is [SWS_NvM_00607].
  • NVM_E_BLOCK_CONFIG, wanneer het blok is geconfigureerd met NvMWriteBlockOnce = TRUE [SWS_NvM_00608].
  • NVM_E_BLOCK_LOCKED, wanneer het blok is geblokkeerd [SWS_NvM_00759].

Deze gebruiksinstructie is gebaseerd op de specificatie van de NVRAM Manager in AUTOSAR Classic R20-11.

Implementer's Guide volgt (complexiteit I2)

functie NvM_GetErrorStatus [SWS_NvM_00451] 📄 PDF

Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);

Service to read the block dependent error/ status information.

functie NvM_SetRamBlockStatus [SWS_NvM_00453] 📄 PDF

Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);

Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.

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

De synchrone en re-entrante functie NvM_SetRamBlockStatus dient voor het instellen van de RAM-blokstatus voor permanente RAM-blokken of voor blokken met expliciete synchronisatie [SWS_NvM_00453]. Deze is beschikbaar in de API-configuratieklassen 2 en 3 [SWS_NvM_00561], [SWS_NvM_00560], mits deze is geactiveerd via de configuratieparameter NvMSetRamBlockStatusApi [SWS_NvM_00408].

Via de parameter BlockChanged wordt geregeld of het blok als geldig en gewijzigd (TRUE) of als ongeldig en ongewijzigd (FALSE) wordt gemarkeerd [SWS_NvM_00453], [SWS_NvM_00406]. Bij overdracht van TRUE gaat de module uit van de geldigheid van de gegevens [SWS_NvM_00241]. De functie retourneert E_OK bij een succesvolle statuswijziging en E_NOT_OK in geval van een fout [SWS_NvM_00453].

Als BlockChanged op TRUE wordt ingesteld, vraagt de functie op de achtergrond een herberekening van de controlesom in NvM_MainFunction aan, indien NvMCalcRamBlockCrc is geconfigureerd [SWS_NvM_00121]. Bij blokken zonder permanent RAM met expliciete synchronisatie gebruikt deze job de schrijf-callback voor gegevensverwerving [SWS_NvM_00906]. Mislukt deze, dan vinden geconfigureerde herhalingen per aanroep van NvM_MainFunction plaats [SWS_NvM_00907], [SWS_NvM_00908]. Als alle pogingen zonder succes blijven, geldt de job desondanks als beëindigd en blijft het blok als gewijzigd gemarkeerd [SWS_NvM_00909].

Vóór de aanroep moet de NvM-module zijn geïnitialiseerd [SWS_NvM_00711]. Bij actieve detectie van ontwikkelingsfouten meldt de functie NVM_E_UNINIT bij een niet-geïnitialiseerde module [SWS_NvM_00643], NVM_E_PARAM_BLOCK_ID bij een ongeldige BlockId [SWS_NvM_00645] en NVM_E_BLOCK_PENDING bij reeds lopende of in de wachtrij geplaatste opdrachten [SWS_NvM_00644]. Zolang een individuele blokopdracht actief is, mag de functie voor dit blok niet worden aangeroepen [SWS_NvM_00704]. Een via NvM_SetBlockLockStatus ingestelde blokvergrendeling kan hierdoor niet worden gewijzigd [SWS_NvM_00754].

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

Implementer's Guide volgt (complexiteit I2)

functie NvM_SetBlockLockStatus [SWS_NvM_00548] 📄 PDF

void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);

Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.

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

Gebruik en aanroepcontext

De synchrone en re-entrante functie NvM_SetBlockLockStatus dient voor het vergrendelen (BlockLocked = TRUE) of ontgrendelen (BlockLocked = FALSE) van een permanent geconfigureerd RAM-blok of de expliciete synchronisatie van een NVRAM-blok [SWS_NvM_00548]. Deze behoort tot de functionele omvang van de API-configuratieklassen 2 en 3 [SWS_NvM_00561], [SWS_NvM_00560]. De functie is niet opgenomen in de ServicePort-interface en wordt primair aangeroepen door het DCM en door complexe apparaatdrivers (CDD) [SWS_NvM_00732].

Beperkingen en interactie

De aanroep heeft uitsluitend effect op NVRAM-blokken met een permanent RAM-blok of geconfigureerde expliciete synchronisatie; bij alle andere blokken blijft deze zonder effect [SWS_NvM_00732]. Wordt een blok vergrendeld (BlockLocked = TRUE), dan waarborgt de NvM dat de bijbehorende NV-gegevens niet worden gewijzigd: het blok wordt bij NvM_WriteAll overgeslagen, en de services NvM_WriteBlock, NvM_WritePRAMBlock, NvM_InvalidateNvBlock en NvM_EraseNvBlock worden afgewezen [SWS_NvM_00751]. Bij de volgende opstart laadt de NvM het blok bij NvM_ReadBlock of NvM_ReadPRAMBlock gegarandeerd uit het NV-geheugen [SWS_NvM_00752]. De ingestelde vergrendelingstoestand kan noch via NvM_SetRamBlockStatus noch via NvM_SetBlockProtection worden gewijzigd [SWS_NvM_00754]. De overdracht van BlockLocked = FALSE herstelt de reguliere verwerking [SWS_NvM_00753].

Foutafhandeling

Bij geactiveerde ontwikkelingsdetectie (DET) meldt de functie specifieke ontwikkelingsfouten:

  • NVM_E_UNINIT, indien de NvM-module op het moment van aanroepen nog niet is geïnitialiseerd [SWS_NvM_00728].
  • NVM_E_PARAM_BLOCK_ID, wanneer de parameter BlockId buiten het toegestane bereik ligt [SWS_NvM_00731].
  • NVM_E_BLOCK_CONFIG, voor zover het gereferentieerde NVRAM-blok is geconfigureerd met de parameter NvMWriteBlockOnce = TRUE [SWS_NvM_00730].

Deze gebruiksinstructie is gebaseerd op de AUTOSAR Classic-specificatie R20-11 en vat de vereisten met betrekking tot aanroep, beschermende werking en foutafhandeling van de API samen.

Implementer's Guide volgt (complexiteit I2)

functie NvM_CancelJobs [SWS_NvM_00535] 📄 PDF

Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);

Service to cancel all jobs pending for a NV block.

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

Gebruik en semantiek

De via NvM.h beschikbare functie NvM_CancelJobs dient ertoe om alle in de wachtrij staande opdrachten voor een bepaald NVRAM-blok synchroon af te breken [SWS_NvM_00535], [SWS_NvM_00536]. De functie is re-entrant ontworpen en verwacht als parameter de BlockId, die de blokdescriptor van het betreffende NVRAM-blok eenduidig identificeert [SWS_NvM_00535]. De aanroep levert E_OK op wanneer openstaande opdrachten succesvol uit de wachtrij konden worden verwijderd, en E_NOT_OK indien er voor het opgegeven blok geen opdracht in de wachtrij vindbaar was [SWS_NvM_00535].

Verloop en gelijktijdigheid

Een opdracht die op het moment van de functieaanroep al actief wordt afgehandeld, wordt door NvM_CancelJobs niet onderbroken, maar loopt door tot het einde [SWS_NvM_00537]. Voor zover het afbreekverzoek voor wachtende opdrachten wordt geaccepteerd, stelt de service het blokspecifieke verzoekresultaat vooraf in op NVM_REQ_CANCELED [SWS_NvM_00225], [SWS_NvM_00536]. Het doel van deze opschoning is om de wachtrij bijvoorbeeld bij beëindiging of herstart van een partitie te legen en zo latere notificaties over voltooide taken te voorkomen [SWS_NvM_00225].

Foutafhandeling en configuratie

Bij geactiveerde ontwikkelingsdetectie (DET) controleert de functie de voorwaarden: is de module nog niet geïnitialiseerd, dan wordt de fout NVM_E_UNINIT gemeld [SWS_NvM_00648]. Ligt de meegegeven BlockId buiten het geldige bereik, dan volgt de DET-melding NVM_E_PARAM_BLOCK_ID [SWS_NvM_00649]. NvM_CancelJobs is geclassificeerd als type-2-API en is beschikbaar in de API-configuratieklassen 2 en 3 [SWS_NvM_00561], [SWS_NvM_00560].

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

Implementer's Guide volgt (complexiteit I2)

functie NvM_ReadBlock [SWS_NvM_00454] 📄 PDF

Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);

Service to copy the data of the NV block to its corresponding RAM block.

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

Gebruik en semantiek

De functie NvM_ReadBlock dient voor het asynchroon kopiëren van gebruikersgegevens uit het NV-geheugen naar het bijbehorende RAM-blok [SWS_NvM_00010], [SWS_NvM_00454]. De aanroep is re-entrant [SWS_NvM_00454]. Deze neemt de parameters over, plaatst de leesopdracht in de interne taakwachtrij en retourneert onmiddellijk E_OK bij succesvolle acceptatie resp. E_NOT_OK bij afwijzing [SWS_NvM_00195], [SWS_NvM_00454].

Als een pointer NvM_DstPtr wordt meegegeven, kunnen gegevens in afwijking van de blokconfiguratie naar een tijdelijke RAM-buffer worden gelezen; een ontoelaatbare NULL-pointer leidt in dit scenario tot een DET-fout [SWS_NvM_00196], [SWS_NvM_00278]. Een geconfigureerd permanent RAM-blok wordt direct bij het in de wachtrij plaatsen of bij de start van de taakverwerking als ongeldig gemarkeerd [SWS_NvM_00198]. Pas na een succesvolle kopieerbewerking geldt het RAM-blok als geldig en ongewijzigd [SWS_NvM_00200], en verandert het taakresultaat naar NVM_REQ_OK [SWS_NvM_00206].

Foutafhandeling en gegevensintegriteit

Is voor het blok een controlesom ingeschakeld (NvMCalRamBlockCrC == TRUE), dan verzoekt de taak na het kopiëren om een herberekening [SWS_NvM_00201]:

  • Bij CRC-fouten wordt NVM_E_INTEGRITY_FAILED gemeld aan het DEM [SWS_NvM_00203]. Voor zover aanwezig worden standaardwaarden geladen en wordt het resultaat op NVM_REQ_RESTORED_DEFAULTS gezet [SWS_NvM_00202]. Ontbreken ROM-gegevens en initialisatie-callbacks, dan resulteert dit in NVM_REQ_INTEGRITY_FAILED [SWS_NvM_00204].
  • Meldt de geheugendriver MEMIF_JOB_FAILED en zijn er geen vervangende waarden beschikbaar, dan eindigt de taak met NVM_REQ_NOT_OK [SWS_NvM_00359].

Bijzonderheden van de bloktypen

  • Redundant: Mislukt het lezen van de eerste kopie, dan wordt automatisch de tweede NV-kopie gebruikt [SWS_NvM_00199]. Zijn beide kopieën ongeldig, dan wordt het gehele blok geïnvalideerd [SWS_NvM_00317].
  • Dataset: Is het via de dataset-index geselecteerde blok als ongeldig gemarkeerd, dan blijft het kopiëren naar het RAM achterwege [SWS_NvM_00355].
  • Write-Once: Consistent gelezen blokken met ingesteld NVM_WRITE_BLOCK_ONCE worden permanent tegen schrijven beveiligd [SWS_NvM_00316].

Deze tekst is opgesteld door een AI en is uitsluitend gebaseerd op de specificaties van release R20-11.

Implementer's Guide volgt (complexiteit I2)

functie NvM_WriteBlock [SWS_NvM_00455] 📄 PDF

Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);

Service to copy the data of the RAM block to its corresponding NV block. Available vi a Nv M.h

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

De functie NvM_WriteBlock dient voor het kopiëren van gegevens van een RAM-blok naar het toegewezen NV-blok [SWS_NvM_00455], [SWS_NvM_00410]. De aanroep wordt re-entrant en asynchroon uitgevoerd: de functie neemt de overgedragen parameters BlockId en NvM_SrcPtr over, plaatst de schrijfopdracht in de interne jobwachtrij en keert onmiddellijk terug [SWS_NvM_00208]. De retourwaarde geeft met E_OK de succesvolle acceptatie of met E_NOT_OK de afwijzing van de opdracht aan [SWS_NvM_00455].

Met betrekking tot parametrering en gegevensbron gelden de volgende voorschriften:

  • Als een geldig RAM-adres wordt overgedragen via NvM_SrcPtr, gebruikt de schrijfopdracht deze buffer [SWS_NvM_00210]. Dit maakt ook het opslaan van tijdelijke RAM-blokken mogelijk bij eigenlijk permanent geconfigureerde blokken of expliciete synchronisatie [SWS_NvM_00280].
  • Een geconfigureerd permanent RAM-blok wordt als geldig verondersteld of voorafgaand aan het kopieerproces automatisch gevalideerd [SWS_NvM_00303].
  • Als voor het NV-blok een controlesom is geconfigureerd, vraagt de job vóór het schrijfproces een CRC-herberekening aan [SWS_NvM_00212].
  • Bij datasetblokken (NVM_BLOCK_DATASET) wordt het doel geselecteerd via de gegevensindex die in het administratieve blok is opgeslagen [SWS_NvM_00338].
  • Bij redundante blokken (NVM_BLOCK_REDUNDANT) wordt de job afgesloten met NVM_REQ_OK zodra ten minste één kopie succesvol is geschreven [SWS_NvM_00284].
  • Als NvMWriteBlockOnce == TRUE is ingesteld, activeert de job na succesvol schrijven onmiddellijk de schrijfbeveiliging in het administratieve blok [SWS_NvM_00328].
  • Schrijfopdrachten voor de gereserveerde blok-ID 1 zijn alleen toegestaan bij geactiveerde NvMDynamicConfiguration [SWS_NvM_00311].

Foutafhandeling en gelijktijdigheid:

  • Als ontwikkelingsdetectie actief is, meldt NvM_WriteBlock de DET-fout NVM_E_UNINIT bij een niet-geïnitialiseerde module [SWS_NvM_00619] en NVM_E_BLOCK_PENDING als hetzelfde blok al in behandeling of in de wachtrij geplaatst is [SWS_NvM_00620]. Een ontbrekende bronpointer bij tijdelijke buffers leidt tot een DET-parameterfout [SWS_NvM_00280].
  • Negatieve terugmeldingen van de geheugeninterface verhogen de herhalingsteller; na overschrijding van NVM_MAX_NUM_OF_WRITE_RETRIES eindigt de job met NVM_REQ_NOT_OK [SWS_NvM_00213], [SWS_NvM_00216].
  • Als het blok is geconfigureerd met onmiddellijke prioriteit, breekt NvM_WriteBlock een momenteel lopende job destructief af, zodat de schrijfopdracht als volgende wordt verwerkt [SWS_NvM_00300].

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

Implementer's Guide volgt (complexiteit I2)

functie NvM_RestoreBlockDefaults [SWS_NvM_00456] 📄 PDF

Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);

Service to restore the default data to its corr esponding RAM block.

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

Gebruik en semantiek

De functie NvM_RestoreBlockDefaults herstelt standaardgegevens in het toegewezen RAM-blok ([SWS_NvM_00456], [SWS_NvM_00012]). Deze werkt asynchroon: na de aanroep neemt deze de parameters over, plaatst het verzoek in de interne opdrachtwachtrij en keert direct terug met E_OK bij succesvolle acceptatie of met E_NOT_OK bij afwijzing ([SWS_NvM_00456], [SWS_NvM_00224]). Wordt via de uitgangsparameter NvM_DestPtr een geldig RAM-adres doorgegeven, dan wordt dit als doeladres gebruikt ([SWS_NvM_00435]). Om ROM-gegevens naar een tijdelijk RAM-blok te kopiëren hoewel een permanent RAM-blok of synchronisatie-callbacks zijn geconfigureerd, moet de oproeper dwingend een pointer ongelijk aan NULL doorgeven ([SWS_NvM_00436]).

Foutafhandeling en randvoorwaarden

De functie is niet-re-entrant ([SWS_NvM_00456]) en onderdeel van de API-configuratieklassen 2 en 3 ([SWS_NvM_00561], [SWS_NvM_00560]). Als ontwikkelingsfoutdetectie (DET) actief is, meldt deze NVM_E_UNINIT als de module nog niet geïnitialiseerd is ([SWS_NvM_00625]), NVM_E_PARAM_BLOCK_ID bij ongeldige BlockId ([SWS_NvM_00630]) evenals een parameterfout wanneer bij permanent geconfigureerde blokken voor tijdelijk kopiëren geen geldige doelpointer wordt doorgegeven ([SWS_NvM_00436]). De functie faalt synchroon met E_NOT_OK wanneer het blok van het type NVM_BLOCK_DATASET is, er ten minste één ROM-blok bestaat en de actuele gegevensindex naar een NV-blok verwijst ([SWS_NvM_00353]).

Taakverwerking en interactie

In het kader van de asynchrone taakverwerking laadt de service standaardwaarden uit een geconfigureerd ROM-blok ([SWS_NvM_00267]). Als een permanent RAM-blok is aangevraagd of er een expliciete synchronisatie-callback (NvMReadRamBlockFromNvCallback) wordt gebruikt, wordt het RAM-blok vóór het kopiëren resp. vóór de callback-aanroep geïnvalideerd ([SWS_NvM_00227]). Na een succesvolle kopieerbewerking of na terugkeer van de synchronisatie-callback met E_OK wordt het RAM-blok gevalideerd en als gewijzigd gemarkeerd ([SWS_NvM_00228]). Is voor het blok een controlesom geconfigureerd, dan vraagt de taak tot slot een CRC-herberekening aan ([SWS_NvM_00229]). Dezelfde herstellogica gebruiken ook NvM_ReadBlock en NvM_ReadAll als uitwijkmechanisme bij een foutieve leesactie van het geheugen of bij CRC-fouten ([SWS_NvM_00202], [SWS_NvM_00293], [SWS_NvM_00657]).

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

Implementer's Guide volgt (complexiteit I2)

functie NvM_EraseNvBlock [SWS_NvM_00457] 📄 PDF

Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);

Service to erase a NV block.

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

De re-entrante, asynchrone functie NvM_EraseNvBlock ([SWS_NvM_00457]) van API-configuratieklasse 3 ([SWS_NvM_00560]) dient voor het wissen van een niet-vluchtig geheugenblok aan de hand van de doorgegeven BlockId. Voor zover er geen schrijfbeveiliging actief is, neemt de functie de parameters over, plaatst de wisopdracht in de interne opdrachtwachtrij en keert onmiddellijk terug ([SWS_NvM_00231], [SWS_NvM_00418]). De retourwaarde E_OK signaleert de succesvolle acceptatie van de opdracht, terwijl E_NOT_OK de afwijzing aangeeft ([SWS_NvM_00457]).

Vóór de aanroep moet de NvM-module volledig geïnitialiseerd zijn ([SWS_NvM_00715]). Na het in de wachtrij plaatsen wordt de schrijfbeveiliging vóór het uit de wachtrij nemen van de taak niet opnieuw gecontroleerd ([SWS_NvM_00662]). Bij redundante blokken van het type NVM_BLOCK_REDUNDANT geldt de wisprocedure pas als geslaagd wanneer beide redundante NV-blokken zijn gewist ([SWS_NvM_00269]). De gegevensinhoud van een toegewezen RAM-blok blijft door de opdrachtafhandeling altijd ongewijzigd ([SWS_NvM_00416]).

Een aanroep wordt afgewezen wanneer een ROM-blok van een dataset-blok wordt geadresseerd ([SWS_NvM_00661]) of het blok middels NvM_SetBlockLockStatus is geblokkeerd ([SWS_NvM_00751]). Bij ingeschakelde ontwikkelingsfoutdetectie (DET) meldt de functie NVM_E_UNINIT bij een niet-geïnitialiseerde module ([SWS_NvM_00631]), NVM_E_PARAM_BLOCK_ID bij een ongeldige BlockId ([SWS_NvM_00635]) evenals NVM_E_BLOCK_LOCKED bij een geblokkeerd blok ([SWS_NvM_00757]). Heeft het blok geen directe prioriteit ("immediate priority") resp. is standaardprioriteit geconfigureerd, dan wordt bij actief DET de fout NVM_E_BLOCK_CONFIG gemeld en E_NOT_OK geretourneerd ([SWS_NvM_00357], [SWS_NvM_00636]). Mislukt de latere asynchrone uitvoering, dan wordt de verzoekstatus op NVM_REQ_NOT_OK gezet ([SWS_NvM_00271]) en wordt NVM_E_REQ_FAILED aan het DEM gemeld ([SWS_NvM_00663]).

Deze gebruiksinstructie is geautomatiseerd gegenereerd op basis van de specificatie.

Implementer's Guide volgt (complexiteit I2)

functie NvM_InvalidateNvBlock [SWS_NvM_00459] 📄 PDF

Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);

Service to invalidate a NV block.

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

De functie NvM_InvalidateNvBlock is een asynchrone en re-entrante service van API-configuratieklasse 3 voor de invalidatie van een NV-blok [SWS_NvM_00459], [SWS_NvM_00560]. Als aanroepvoorwaarde geldt dat de NvM-module vooraf door de module-omgeving moet zijn geïnitialiseerd [SWS_NvM_00717]. De aanroep neemt de parameter BlockId over, plaatst het verzoek bij uitgeschakelde schrijfbeveiliging in de wachtrij en keert terug met E_OK [SWS_NvM_00239], [SWS_NvM_00424]. Indien de opdracht niet kan worden geaccepteerd, levert de functie E_NOT_OK [SWS_NvM_00459].

Een aanroep wordt synchroon afgewezen met E_NOT_OK als via BlockId een ROM-blok van een dataset-blok (Dataset) is opgegeven [SWS_NvM_00664]. Als het blok voordien via NvM_SetBlockLockStatus is vergrendeld, wijst de NvM de opdracht af [SWS_NvM_00751] en meldt bij actieve ontwikkelingsinterface de DET-fout NVM_E_BLOCK_LOCKED [SWS_NvM_00756]. Als het blok al in de wachtrij staat of in uitvoering is, volgt de DET-melding NVM_E_BLOCK_PENDING [SWS_NvM_00639].

De eigenlijke asynchrone taak invalideert het gereferentieerde NV-blok [SWS_NvM_00421] met inachtneming van de volgende randvoorwaarden:

  • Bij redundante blokken (NVM_BLOCK_REDUNDANT) wordt het opdrachtresultaat pas op NVM_REQ_OK gezet wanneer beide redundante NV-blokken succesvol zijn geïnvalideerd [SWS_NvM_00274]; hetzelfde mechanisme wordt ook toegepast bij NvM_FirstInitAll [SWS_NvM_00919], [SWS_NvM_00920].
  • Voor blokken met NVM_WRITE_BLOCK_ONCE laat de taak de schrijfbeveiliging ongewijzigd [SWS_NvM_00960]. Ging er geen leesbewerking aan vooraf, dan meldt de taak de DET-fout NVM_E_WRITE_ONCE_STATUS_UNKNOWN [SWS_NvM_00958].
  • Treedt er tijdens de asynchrone verwerking een fout op, dan wordt het verzoekresultaat op NVM_REQ_NOT_OK gezet [SWS_NvM_00275] en wordt de productiefout NVM_E_REQ_FAILED verzonden naar de DEM [SWS_NvM_00666].

Deze gebruiksinstructie is gegenereerd door een AI en is uitsluitend gebaseerd op specificatiegegevens uit AUTOSAR R20-11.

Implementer's Guide volgt (complexiteit I2)

functie NvM_ReadPRAMBlock [SWS_NvM_00764] 📄 PDF

Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);

Service to copy the data of the NV block to its corresponding permanent RAM block.

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

Gebruik

De asynchrone en re-entrante functie [SWS_NvM_00764] dient voor het kopiëren van gegevens van een NV-blok naar het toegewezen permanente RAM-blok. De aanroep neemt de BlockId over, plaatst het leesverzoek in de interne opdrachtwachtrij en keert direct terug [SWS_NvM_00766]. De retourwaarde E_OK bevestigt de acceptatie van de opdracht, terwijl E_NOT_OK een afwijzing signaleert [SWS_NvM_00764]. De functie behoort tot de functionele omvang van de API-configuratieklassen 2 en 3 [SWS_NvM_00560], [SWS_NvM_00561].

Verloop en synchronisatie

Bij succesvolle plaatsing van de opdracht in de wachtrij of het begin van de verwerking wordt het permanente RAM-blok onmiddellijk geïnvalideerd [SWS_NvM_00767]. Is voor het blok expliciete synchronisatie ingesteld, dan mag de applicatie het RAM-blok wijzigen tot het binnenkomen van de synchronisatieroutine; de invalidatie vindt in dit geval direct vóór de aanroep van NvMReadRamBlockFromNvCallback plaats [SWS_NvM_00706], [SWS_NvM_00767]. Werden de NV-gegevens foutloos naar het RAM overgedragen, dan sluit de opdracht af met de status NVM_REQ_OK [SWS_NvM_00765], [SWS_NvM_00775].

Foutafhandeling en redundantie

Bij blokken van het type NVM_BLOCK_REDUNDANT start de opdracht automatisch een leespoging op het tweede blok indien de eerste leespoging mislukt [SWS_NvM_00768]. Bij datasets (NVM_BLOCK_DATASET) wordt het kopiëren verhinderd indien het via de index geselecteerde NV-blok inconsistent is [SWS_NvM_00771]; verwijst de index naar ROM-gegevens, dan worden deze geladen en wordt het resultaat op NVM_REQ_OK gezet [SWS_NvM_00772]. Zijn er standaardgegevens geconfigureerd en is het NV-blok bij ongeldige RAM-toestand niet leesbaar, dan vindt er een impliciet herstel plaats [SWS_NvM_00575], dat het RAM-blok als geldig en gewijzigd classificeert [SWS_NvM_00774]; zonder geconfigureerde standaardwaarden blijft het herstel achterwege [SWS_NvM_00572]. Was voorheen NvM_SetBlockLockStatus actief, dan wordt het opnieuw laden uit het NV-geheugen afgedwongen [SWS_NvM_00752].

Deze gebruiksinstructie is automatisch gegenereerd op basis van de specificatiestand AUTOSAR CP R20-11.

Implementer's Guide volgt (complexiteit I2)

functie NvM_WritePRAMBlock [SWS_NvM_00793] 📄 PDF

Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);

Service to copy the data of the permanent RAM block to its corresponding NV block.

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

De re-entrante, asynchrone functie NvM_WritePRAMBlock initieert het schrijven van de gegevens van een permanent RAM-blok naar het bijbehorende NV-blok [SWS_NvM_00793], [SWS_NvM_00794]. De functie is beschikbaar in de API-configuratieklassen 2 en 3 [SWS_NvM_00561], [SWS_NvM_00560]. De gereserveerde blok-ID 1 mag alleen worden meegegeven wanneer NvMDynamicConfiguration op TRUE is ingesteld [SWS_NvM_00311].

Bij de overdracht levert de functie E_OK bij succesvolle acceptatie of E_NOT_OK [SWS_NvM_00793]. Is het gereferentieerde blok vergrendeld, dan mislukt de aanroep met E_NOT_OK en meldt de module een DET-fout [SWS_NvM_00797]. Een blokbeveiliging wordt al gecontroleerd bij het plaatsen in de opdrachtwachtrij en wordt vóór de opdrachtuitvoering niet opnieuw gevalideerd [SWS_NvM_00799]. Heeft het NVRAM-blok onmiddellijke prioriteit (immediate priority), dan wordt een lopende opdracht direct destructief afgebroken en wordt deze schrijfopdracht als volgende verwerkt [SWS_NvM_00800].

Voorafgaand aan de eigenlijke overdracht naar het NV-geheugen vraagt de opdracht een CRC-herberekening aan, voor zover het blok met CRC is geconfigureerd [SWS_NvM_00801]. Een nog ongeldig permanent RAM-blok wordt automatisch gevalideerd [SWS_NvM_00803]. Bij redundante blokken (NVM_BLOCK_REDUNDANT) worden beide NV-blokken beschreven, beginnend met het blok dat bij voorgaande leesopdrachten niet is gelezen [SWS_NvM_00807], [SWS_NvM_00808]. Bij schrijffouten wordt het aantal herhalingen beperkt door NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00806]; bij een overschrijding stelt de NvM het opdrachtresultaat in op NVM_REQ_NOT_OK [SWS_NvM_00804] en meldt NVM_E_REQ_FAILED aan het DEM [SWS_NvM_00805].

Met betrekking tot gelijktijdigheid geldt: bij impliciete synchronisatie mag de applicatie de buffergegevens na de aanroep tot het einde van de opdracht niet meer wijzigen; leestoegang blijft toegestaan [SWS_NvM_00698]. Bij expliciete synchronisatie mag de buffer worden gewijzigd totdat de callback-routine NvMWriteRamBlockToNvCallback wordt aangeroepen [SWS_NvM_00705].

Deze tekst is gegenereerd door een AI en dient ter technische oriëntatie aan de hand van de specificatie.

Implementer's Guide volgt (complexiteit I2)

functie NvM_RestorePRAMBlockDefaults [SWS_NvM_00813] 📄 PDF

Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);

Service to restore the default data to its corresponding permanent RAM block.

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

Gebruik en semantiek

De functie NvM_RestorePRAMBlockDefaults herstelt standaardgegevens in het bijbehorende permanente RAM-blok ([SWS_NvM_00813], [SWS_NvM_00814]). De service werkt asynchroon en neemt via de parameter BlockId de identificatie van de NVRAM-blokdescriptor over ([SWS_NvM_00813]). Bij de aanroep wordt het verzoek in de interne opdrachtwachtrij geplaatst ([SWS_NvM_00815]). De retourwaarde E_OK signaleert de succesvolle acceptatie, terwijl E_NOT_OK een afwijzing aangeeft ([SWS_NvM_00813]). Is er een ROM-blok geconfigureerd, dan worden de gegevens in het kader van de asynchrone verwerking daaruit geladen ([SWS_NvM_00816]).

Foutafhandeling en randvoorwaarden

Zijn er voor het blok noch ROM-standaardgegevens noch een callback-routine NvMInitBlockCallback vastgelegd, dan blijft de blokstatus ongewijzigd en levert de aanroep E_NOT_OK op ([SWS_NvM_00884]). Bij geactiveerde ontwikkelingsdetectie (DET) worden specifieke fouten gemeld:

  • NVM_E_UNINIT: De module is nog niet geïnitialiseerd ([SWS_NvM_00831]).
  • NVM_E_PARAM_BLOCK_ID: De meegegeven BlockId ligt buiten het geldige bereik ([SWS_NvM_00834]).
  • NVM_E_BLOCK_PENDING: Voor de block-ID staat er al een opdracht in de wachtrij of is deze in bewerking ([SWS_NvM_00832]).
  • NVM_E_BLOCK_WITHOUT_DEFAULTS: Er bestaan noch ROM-standaardgegevens noch een initialisatie-callback ([SWS_NvM_00886]).
  • NVM_E_PARAM_ADDRESS: Er is noch een permanent RAM-blok noch een expliciete synchronisatie geconfigureerd ([SWS_NvM_00894]).

Gelijktijdigheid en wisselwerking

De service is gespecificeerd als niet-re-entrant ([SWS_NvM_00813]) en is beschikbaar in de API-configuratieklassen 2 en 3 ([SWS_NvM_00561], [SWS_NvM_00560]). Dezelfde herstellogica wordt bovendien intern toegepast bij NvM_ReadPRAMBlock, indien het onderliggende leesproces mislukt ([SWS_NvM_00789], [SWS_NvM_00882]).

Deze gebruiksinstructie is gebaseerd op de specificaties van AUTOSAR Classic Release R20-11.

Implementer's Guide volgt (complexiteit I2)

functie NvM_ReadAll [SWS_NvM_00460] 📄 PDF

void NvM_ReadAll (void);

Initiates a multi block read request.

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

De functie NvM_ReadAll initieert asynchroon een multiblock-leesopdracht voor de initialisatie van de RAM-datablokken [SWS_NvM_00460], [SWS_NvM_00158]. Deze heeft geen parameters, levert geen retourwaarde op en is niet-re-entrant [SWS_NvM_00460]. De aanroep signaleert het verzoek aan de NvM-module en keert direct terug; de daadwerkelijke verwerking wordt echter uitgesteld totdat alle individuele blokopdrachtwachtrijen leeg zijn [SWS_NvM_00243].

Aan het begin valideert de opdracht tijdens de systeemstart de configuratie-ID door vergelijking van de opgeslagen waarde met de gecompileerde waarde [SWS_NvM_00073], [SWS_NvM_00246]:

  • Bij overeenstemming vindt de normale voorbereiding plaats voor alle geconfigureerde blokken [SWS_NvM_00247].
  • Een configuratieverschil wordt genegeerd als NvMDynamicConfiguration == FALSE is ingesteld [SWS_NvM_00248].
  • Als NvMDynamicConfiguration == TRUE en NvMResistantToChangedSw == FALSE, wordt bij niet-overeenstemming een uitgebreide voorbereiding uitgevoerd [SWS_NvM_00249].

Vervolgens itereert de opdracht over alle gebruikersblokken, beginnend met de laagste blok-ID (met uitzondering van de gereserveerde ID's 0 en 1) [SWS_NvM_00244]. Er wordt rekening gehouden met permanente RAM-blokken of blokken met geconfigureerde synchronisatie-callback NvM_ReadRamBlockFromNvm, mits NvmSelectBlockForReadall == TRUE is geconfigureerd [SWS_NvM_00118]. Niet-gelezen maar geselecteerde blokken krijgen het resultaat NVM_REQ_BLOCK_SKIPPED [SWS_NvM_00287].

Bij redundante blokken (NVM_BLOCK_REDUNDANT) wordt bij het mislukken van de eerste leespoging automatisch het tweede NV-blok gelezen [SWS_NvM_00288]. Na succesvol laden in het RAM wordt de blokstatus ingesteld op „valid/unmodified” en het opdrachtresultaat op NVM_REQ_OK [SWS_NvM_00251], [SWS_NvM_00290], [SWS_NvM_00291]. Voor blokken met NvMCalRamBlockCrC == TRUE vraagt de opdracht een CRC-herberekening aan [SWS_NvM_00292]. Indien geconfigureerd wordt per blok NvMSingleBlockCallback en na het laatste blok MultiBlockCallback aangeroepen [SWS_NvM_00281].

Deze gebruiksinstructie is gebaseerd op de specificatievoorschriften van AUTOSAR Classic R20-11.

Implementer's Guide volgt (complexiteit I1)

functie NvM_WriteAll [SWS_NvM_00461] 📄 PDF

void NvM_WriteAll (void);

Initiates a multi block write request.

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

Gebruik en aanroepcontext

De functie NvM_WriteAll initieert asynchroon een multiblock-schrijfopdracht en heeft noch parameters noch retourwaarden [SWS_NvM_00461]. Na de aanroep signaleert de functie het verzoek aan de NvM-module en keert onmiddellijk terug [SWS_NvM_00254]. De daadwerkelijke verwerking wordt uitgesteld totdat alle wachtrijen voor individuele blokopdrachten volledig zijn afgewerkt [SWS_NvM_00254]. De aanroep vindt doorgaans plaats in het kader van het fundamentele uitschakelproces (shutdown) door de BSW Mode Manager [SWS_NvM_00092].

Verloop en blokverwerking

Tijdens de shutdown synchroniseert de opdracht permanente RAM-blokken met de bijbehorende NV-blokken of voert deze de expliciete synchronisatie-callback NvM_WriteRamBlockToNvm uit [SWS_NvM_00018]. Daarbij worden uitsluitend blokken meegenomen waarvoor de configuratieparameter NvMSelectBlockForWriteAll is ingesteld op true [SWS_NvM_00252], evenals blok 1 in het geval van afwijkende configuratie-ID's bij actieve dynamische configuratie [SWS_NvM_00310]. Indien voor een NVRAM-blok een CRC is geconfigureerd, vraagt de opdracht vóór het schrijfproces een herberekening aan en werkt deze de controlesom bij [SWS_NvM_00253]. Voor blokken met NvMWriteBlockOnce == TRUE stelt de opdracht na succesvol schrijven direct de schrijfbeveiligingsflag in het administratieve blok in [SWS_NvM_00329].

Gelijktijdigheid en foutafhandeling

  • Re-entrantie: de functie is niet-re-entrant [SWS_NvM_00461].
  • Foutbewaking: om oneindige lussen te voorkomen, bewaakt een retry-teller de herhaalpogingen bij niet-succesvolle terugmeldingen van de MemIf-module [SWS_NvM_00296].
  • Opdrachtresultaten: als de verwerking van ten minste één blok mislukt, wordt het totale resultaat ingesteld op NVM_REQ_NOT_OK [SWS_NvM_00318]. Voor geconfigureerde blokken die niet zijn geschreven, wordt het individuele resultaat NVM_REQ_BLOCK_SKIPPED ingesteld [SWS_NvM_00298]. Bij redundante blokken (NVM_BLOCK_REDUNDANT) geldt de individuele opdracht als NVM_REQ_OK zodra ten minste één van de NV-blokken succesvol is geschreven [SWS_NvM_00337].
  • Afbreken: een lopende opdracht kan worden afgebroken door NvM_CancelWriteAll [SWS_NvM_00019]. Dit leidt tot het totale resultaat NVM_REQ_CANCELED [SWS_NvM_00237], waarbij het zojuist verwerkte blok niet-destructief en dataconsistent wordt voltooid [SWS_NvM_00238].

Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp. Doorslaggevend is de AUTOSAR-specificatie.

Implementer's Guide volgt (complexiteit I1)

functie NvM_CancelWriteAll [SWS_NvM_00458] 📄 PDF

void NvM_CancelWriteAll (void);

Service to cancel a running Nv M_ Write All request.

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

Gebruik en semantiek

De functie NvM_CancelWriteAll dient ertoe om een lopende meervoudige-blok-schrijfbewerking (NvM_WriteAll) voortijdig af te breken [SWS_NvM_00458], [SWS_NvM_00019]. De aanroep is asynchroon, niet-re-entrant, accepteert geen parameters en levert geen retourwaarde op [SWS_NvM_00458]. De functie signaleert de wens tot afbreken direct aan de module en keert onmiddellijk terug [SWS_NvM_00232]. Het verzoek wordt niet in de opdrachtwachtrij geplaatst; er kan steeds slechts één verzoek van dit type openstaan [SWS_NvM_00420]. Is op het moment van aanroepen geen bewerking actief, dan blijft de aanroep zonder effect [SWS_NvM_00233].

Verloop en gegevensconsistentie

Het afbreken wordt zodanig uitgevoerd dat de gegevensconsistentie van het op het moment van afbreken verwerkte NVRAM-blok niet nadelig wordt beïnvloed [SWS_NvM_00019]. De module rondt dit actieve blok regulier af en stelt het statusattribuut ervan afhankelijk van het succes in op NVM_REQ_OK of NVM_REQ_NOT_OK, terwijl alle resterende, nog openstaande blokken op NVM_REQ_CANCELED worden gezet [SWS_NvM_00236]. Het totale resultaat is impliciet bepaald door het resultaat van de afgebroken operatie [SWS_NvM_00235], wordt opgeslagen in een afzonderlijke variabele [SWS_NvM_00393] en kan via NvM_GetErrorStatus met vermelding van de gereserveerde blok-ID 0 worden opgevraagd [SWS_NvM_00394]. Bovendien kan optioneel een overkoepelende callback (NvMMultiBlockCallback) worden genotificeerd [SWS_NvM_00260]. Voor zover geconfigureerd via NvMDrvModeSwitch, schakelt de opdracht de geheugenapparaten na het afbreken om naar de langzame bedrijfsmodus („slow-mode”) [SWS_NvM_00681].

Beperkingen en foutafhandeling

De aanroep van NvM_CancelWriteAll is functioneel beperkt en mag uitsluitend worden uitgevoerd door de BSW Mode Manager (BswM) [SWS_NvM_00703]. Bovendien behoort de functie tot API-configuratieklasse 2 [SWS_NvM_00561]. De module moet vóór de aanroep zijn geïnitialiseerd [SWS_NvM_00716]; bij geactiveerde ontwikkelingsdetectie (DET) leidt een aanroep in niet-geïnitialiseerde toestand tot de foutmelding NVM_E_UNINIT [SWS_NvM_00637].

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_ValidateAll [SWS_NvM_00855] 📄 PDF

void NvM_ValidateAll (void);

Initiates a multi block validation request.

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

De functie NvM_ValidateAll brengt de asynchrone validatie van meerdere NVRAM-blokken op gang ([SWS_NvM_00855]) en behoort tot API-configuratieklasse 3 ([SWS_NvM_00560]). Deze is niet-re-entrant, verwacht geen parameters en levert geen retourwaarde op ([SWS_NvM_00855]). Vóór de aanroep moet de NvM-module geïnitialiseerd zijn ([SWS_NvM_00859]).

Bij de aanroep signaleert de functie het verzoek aan de module en keert direct terug ([SWS_NvM_00858]). De feitelijke afhandeling wordt echter vertraagd totdat alle opdrachtwachtrijen voor enkelvoudige blokken volledig zijn verwerkt ([SWS_NvM_00858]). Voor multi-block-opdrachten is in de opdrachtwachtrij in totaal slechts één enkele plaats beschikbaar ([SWS_NvM_00380]). Het totale resultaat van de asynchrone opdracht wordt bijgehouden in een afzonderlijke toestandsvariabele ([SWS_NvM_00393]).

In het kader van de opdrachtafhandeling worden vooraf zowel het multi-block-resultaat als de resultaten van de betreffende individuele blokken op NVM_REQ_PENDING gezet ([SWS_NvM_00861]). De verwerking houdt uitsluitend rekening met blokken waarvoor NvMBlockUseAutoValidation op TRUE is geconfigureerd ([SWS_NvM_00856], [SWS_NvM_00860]):

  • Er worden permanente RAM-blokken verwerkt of de expliciete synchronisatie via de callback NvM_WriteRamBlockToNvm wordt uitgevoerd ([SWS_NvM_00860]).
  • De RAM-blokstatus wordt ingesteld op „VALID / CHANGED” ([SWS_NvM_00856]).
  • Is er daarnaast een CRC-berekening in het RAM geconfigureerd, dan vraagt de opdracht de herberekening op de achtergrond aan, die via NvM_MainFunction wordt verwerkt ([SWS_NvM_00857]).
  • Na succesvolle validatie van het RAM-blok wisselt het blokspecifieke resultaat naar NVM_REQ_OK ([SWS_NvM_00862]).

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_FirstInitAll [SWS_NvM_91001] 📄 PDF

void NvM_FirstInitAll (void);

The function initiates a multi block first initialization request. The job of the function does not care if a block exists in the non - volatile memory or not OR if it is valid (i.e. not corrupted) or not, when processing it.

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

De functie NvM_FirstInitAll brengt de asynchrone eerste initialisatie van meerdere geconfigureerde blokken op gang ([SWS_NvM_91001]). De service is niet-re-entrant, verwacht geen parameters en levert geen retourwaarde op ([SWS_NvM_91001]). Bij de afhandeling wordt er geen rekening mee gehouden of een blok in het niet-vluchtige geheugen al bestaat of geldig dan wel gecorrumpeerd is ([SWS_NvM_91001]). De wachtrijlengte voor multi-block-opdrachten (onder andere uit NvM_FirstInitAll) bedraagt één, zodat er slechts één enkele multi-block-opdracht tegelijk in de wachtrij kan worden geplaatst ([SWS_NvM_00380]).

De verwerking verschilt naargelang het beheertype van het blok:

  • NATIVE: Zijn er standaardgegevens aanwezig, dan wordt het NV-blok daarmee beschreven ([SWS_NvM_00913]). Beschikt het blok over permanent RAM of expliciete synchronisatie, dan wordt het RAM zoals bij NvM_RestoreBlockDefaults bijgewerkt met de standaardgegevens (ROM of init-callback) ([SWS_NvM_00915]); zonder permanent RAM en zonder expliciete synchronisatie dient de interne NvM-buffer als RAM, waarbij de RAM-toestand onaangeroerd blijft ([SWS_NvM_00914]). Ontbreken standaardgegevens ([SWS_NvM_00919]) of mislukt een geconfigureerde init-callback met een retourwaarde ongelijk aan E_OK ([SWS_NvM_00921]), dan wordt het blok geïnvalideerd.
  • REDUNDANT: Zijn er standaardgegevens aanwezig, dan worden beide blokinstanties daarmee geschreven ([SWS_NvM_00916]) en wordt bij aanwezig permanent RAM dan wel expliciete synchronisatie het RAM bijgewerkt ([SWS_NvM_00918]); anders wordt de interne buffer gebruikt ([SWS_NvM_00917]). Levert een init-callback niet E_OK op, dan worden beide instanties geïnvalideerd ([SWS_NvM_00922]).
  • DATASET: Alle voor de verwerking geconfigureerde blokken respectievelijk NV-blokinstanties van dit type worden zonder uitzondering geïnvalideerd ([SWS_NvM_00923], [SWS_NvM_00924]).

Mislukt het schrijven van een NATIVE-blok met standaardgegevens ([SWS_NvM_00925]), de invalidatie van een NATIVE-blok ([SWS_NvM_00927]) of het schrijven van beide instanties van een REDUNDANT-blok ([SWS_NvM_00926]), dan stelt de opdracht het totale resultaat in op NVM_REQ_NOT_OK.

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_JobEndNotification [SWS_NvM_00462] 📄 PDF

void NvM_JobEndNotification (void);

Function to be used by the underlying memory abstraction to signal end of job without error.

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

Gebruik

De synchrone callback-functie NvM_JobEndNotification wordt aangeroepen door de onderliggende geheugenabstractie om het foutloze einde van een opdracht te signaleren aan de NVRAM-manager [SWS_NvM_00462]. De functie heeft noch parameters noch een retourwaarde en is beschikbaar via het headerbestand NvM_MemIf.h met service-ID 0x11 [SWS_NvM_00462]. Een succesvolle notificatie van de geheugenabstractie omvat foutloos voltooide lees-, schrijf- of wisoperaties [SWS_NvM_00111].

Gelijktijdigheid en beperkingen

De interface is gespecificeerd als niet-re-entrant [SWS_NvM_00462]. Afhankelijk van de aanroepende functie binnen de geheugenabstractie kan deze routine worden uitgevoerd in de interruptcontext [SWS_NvM_00111]. Alle modules van de geheugenabstractie moeten zo worden geconfigureerd dat ze uniform dezelfde modus – callback of polling – gebruiken [SWS_NvM_00111].

Configuratie en interactie

De NvM-module stelt de callback-functie NvM_JobEndNotification alleen beschikbaar wanneer de polling-modus via de configuratieparameter NvMPollingMode is uitgeschakeld [SWS_NvM_00440]. Bovendien wordt de functie beïnvloed door algemene NvM-configuratieparameters [SWS_NvM_00440].

Deze gebruiksinstructie is gebaseerd op de AUTOSAR-specificatie R20-11.

Implementer's Guide volgt (complexiteit I1)

functie NvM_JobErrorNotification [SWS_NvM_00463] 📄 PDF

void NvM_JobErrorNotification (void);

Function to be used by the underlying memory abstraction to signal end of job with error.

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

De callback-functie NvM_JobErrorNotification ([SWS_NvM_00463]) dient ertoe dat de onderliggende geheugenabstractielaag het foutieve einde van een asynchrone opdracht signaleert aan de NVRAM-managermodule (NvM). De aanroep vindt synchroon plaats en is gespecificeerd als niet-re-entrant ([SWS_NvM_00463]).

Gebruik en signatuur

  • Interface: De functiedeclaratie wordt beschikbaar gesteld via het headerbestand NvM_MemIf.h ([SWS_NvM_00463]).
  • Signatuur: Volgens void NvM_JobErrorNotification(void) heeft de functie invoer-, uitvoer- noch invoer/uitvoerparameters en levert deze geen retourwaarde op ([SWS_NvM_00463]).
  • Service-ID: De functie is geïdentificeerd via de hexadecimale identificatie 0x12 ([SWS_NvM_00463]).

Configuratie-afhankelijkheid en samenspel

De module NvM stelt de callback-functie NvM_JobErrorNotification alleen dan beschikbaar wanneer de polling-modus via de configuratieparameter NvMPollingMode is uitgeschakeld ([SWS_NvM_00441]). Wordt polling gebruikt, dan vervalt dit notificatiemechanisme. Daarnaast wordt de functie beïnvloed door de algemene configuratieparameters conform [SWS_NvM_00028] tekst nog niet geïmporteerd ([SWS_NvM_00441]).

Foutafhandeling en gelijktijdigheid

De functie dient uitsluitend voor de foutmelding van opdrachten en definieert noch eigen foutcodes noch DET- of DEM-terugmeldingen ([SWS_NvM_00463]). Vanwege de classificatie als Non Reentrant is het vermoedelijk aan de aanroeper in de geheugenabstractie om ervoor te zorgen dat er geen overlappende of onderbrekende aanroepen plaatsvinden ([SWS_NvM_00463]). Vraag Q-5f72d9d605c25922 (open)

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_MainFunction [SWS_NvM_00464] 📄 PDF

void NvM_MainFunction (void);

Service for performing the processing of the Nv M jobs.

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

Gebruik

De functie NvM_MainFunction heeft parameters noch een retourwaarde (void NvM_MainFunction(void)) en is gedeclareerd via SchM_NvM.h ([SWS_NvM_00464]). Deze dient voor de verwerking van de NVRAM-manager-opdrachten ([SWS_NvM_00464], [SWS_NvM_00256]). Na het afronden van een asynchrone service voert deze geconfigureerde callback-routines uit voor het notificeren van de hogere laag ([SWS_NvM_00347]). Bovendien neemt deze op de achtergrond aangevraagde CRC-herberekeningen voor NVRAM-blokken over ([SWS_NvM_00333]), bijvoorbeeld als gevolg van NvM_SetRamBlockStatus ([SWS_NvM_00121]) of NvM_ValidateAll ([SWS_NvM_00857]).

Volgordebesturing en prioritering

Voor zover geconfigureerd, bewaakt de functie de immediate-priority-queue op verzoeken met onmiddellijke prioriteit ([SWS_NvM_00259]). Als een regulier verzoek door een spoedopdracht destructief is afgebroken, herstart NvM_MainFunction dit na afloop daarvan ([SWS_NvM_00258]). Bij actieve polling-modus controleert deze de status van de aan de lagere laag overgedragen opdrachten ([SWS_NvM_00346]). Tijdens de verwerking van NvM_WriteAll fragt deze cyclisch de toestand van de geheugendriverabstractie via MemIf_GetStatus voor MEMIF_BROADCAST_ID op en houdt callbacks naar de hogere laag tegen zolang MEMIF_BUSY_INTERNAL wordt gemeld ([SWS_NvM_00350]).

Foutafhandeling en herhalingen

Mislukken applicatiespecifieke callbacks, dan stuurt NvM_MainFunction de herhaalpogingen aan:

  • Levert NvMReadRamBlockFromNvCallback de waarde E_NOT_OK op, dan herhaalt de module de aanroep in de volgende cyclus van NvM_MainFunction ([SWS_NvM_00839]).
  • Geeft NvMWriteRamBlockToNvCallback E_NOT_OK terug, dan vindt de herhaling eveneens plaats in de volgende aanroep van NvM_MainFunction ([SWS_NvM_00840]).
  • Geeft de expliciete synchronisatie-callback bij NvM_SetRamBlockStatus E_NOT_OK terug, dan voert de module de geconfigureerde herhalingen uit met telkens één poging per aanroep van NvM_MainFunction ([SWS_NvM_00908]).

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

Implementer's Guide volgt (complexiteit I2)

functie NvM_SingleBlockCallbackFunction [SWS_NvM_00467] 📄 PDF

Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);

Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.

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

Gebruik

De callback-routine NvM_SingleBlockCallbackFunction notificeert de bovenliggende laag synchroon over de afronding van een eerder geïnitieerd asynchroon enkelvoudig blokverzoek [SWS_NvM_00467].

De functie verwerkt twee overdrachtsparameters [SWS_NvM_00467]:

  • BlockRequest (type NvM_BlockRequestType): Draagt het type van het eerder uitgevoerde blokverzoek over, zoals bijvoorbeeld lees- of schrijfoperaties [SWS_NvM_00467].
  • JobResult (type NvM_RequestResultType): Meldt het totale resultaat van de afgehandelde blokopdracht [SWS_NvM_00467].

Als retourwaarde levert de functie het type Std_ReturnType [SWS_NvM_00467]. Een succesvolle afhandeling van de callback wordt gesignaleerd door het teruggeven van E_OK; elke andere retourwaarde duidt op een niet-succesvolle uitvoering [SWS_NvM_00467].

Foutafhandeling en gelijktijdigheid

De interface specificeert geen eigen DET- of DEM-foutmeldingen [SWS_NvM_00467]. Het resultaat van de voorafgaande opdracht wordt doorgegeven via de parameter JobResult, terwijl fouten binnen de callback-verwerking zelf worden gemeld via de functieretourwaarde [SWS_NvM_00467].

Wat betreft gelijktijdigheid is de routine gedeclareerd als niet-re-entrant (Non Reentrant) [SWS_NvM_00467]. Deze wordt beschikbaar gesteld via de header NvM_Externals.h [SWS_NvM_00467]. De aanroep door de NvM-module vindt vermoedelijk synchroon plaats in de taakcontext van de cyclische NvM-opdrachtafhandeling (interpretatie). Vraag Q-f50640211851274f (open)

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_MultiBlockCallbackFunction [SWS_NvM_00468] 📄 PDF

Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);

Common callback routine to notify the upper layer that an asynchronous multi block request has been finished. Available v ia Nv M_ Externals.h

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

De callback-routine NvM_MultiBlockCallbackFunction notificeert de hogere laag erover dat een eerder geïnitieerde asynchrone multiblock-opdracht is afgerond [SWS_NvM_00468]. De declaratie van de functie wordt via het headerbestand NvM_Externals.h ter beschikking gesteld [SWS_NvM_00468].

Aanroepcontext en parameters

De aanroep door de NVRAM-manager vindt synchroon met de afhandeling in het verwerkingsproces plaats [SWS_NvM_00468]. Bij de aanroep worden twee parameters aan de routine overgedragen:

  • MultiBlockRequest (type NvM_MultiBlockRequestType): Duidt het concrete verzoektype aan van de eerder verwerkte multiblock-opdracht, zoals bijvoorbeeld lees- of schrijftoegangen [SWS_NvM_00468].
  • JobResult (type NvM_RequestResultType): Draagt het eindresultaat van de verwerking van de voorafgaande multiblock-taak over aan de hogere laag [SWS_NvM_00468].

Retourwaarde en foutafhandeling

De routine geeft een waarde van het type Std_ReturnType terug aan de aanroepende module [SWS_NvM_00468]. De retourwaarde E_OK geeft aan dat de callback-functie succesvol kon worden afgehandeld; elke andere retourwaarde signaleert daarentegen een mislukte verwerking [SWS_NvM_00468]. Specifieke foutcodes, DET- of DEM-meldingen zijn binnen de reikwijdte van de specificatie voor deze functie niet gedefinieerd. Interpretatie: de concrete consequenties van een retourwaarde ongelijk aan E_OK zijn vermoedelijk implementatiespecifiek, aangezien de standaard geen nageschakelde foutafhandeling voorschrijft. Vraag Q-462dea7f3074ae9c (open)

Gelijktijdigheid en beperkingen

De functie is gespecificeerd als niet-re-entrant (Non Reentrant) [SWS_NvM_00468]. Binnen het aanroepende systeem moet er daarom voor worden gezorgd dat er geen gelijktijdige of onderbrekende meervoudige aanroepen van deze callback-interface plaatsvinden.

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_InitBlockCallbackFunction [SWS_NvM_00469] 📄 PDF

Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);

Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M block is not configured. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_NVRAMManager

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

Gebruik en aanroepcontext

De gebruikersspecifieke callback-routine NvM_InitBlockCallbackFunction wordt aangeroepen door de NvM-module wanneer standaardgegevens voor een NVRAM-blok in het RAM moeten worden hersteld en er geen overeenkomstig ROM-blok is geconfigureerd [SWS_NvM_00469]. De aanroep vindt synchroon plaats en de interface is gedeclareerd via de header NvM_Externals.h [SWS_NvM_00469].

Als overdrachtsparameter ontvangt de functie InitBlockRequest van het type NvM_InitBlockRequestType [SWS_NvM_00469]. Deze waarde informeert de routine over het specifieke verzoektype van het momenteel verwerkte blok, zoals het lezen of herstellen van gegevens (read, restore) [SWS_NvM_00469].

Retourwaarden en foutafhandeling

De routine geeft een statuswaarde van het type Std_ReturnType terug [SWS_NvM_00469]:

  • E_OK: Signaleert aan de NvM-module dat de callback-functie de gegevens in het RAM succesvol heeft geïnitialiseerd en verwerkt [SWS_NvM_00469].
  • Elke andere retourwaarde: Geeft aan dat de initialisatie niet succesvol kon worden voltooid [SWS_NvM_00469].

Specifieke foutcodes voor DET of DEM zijn voor de interface zelf niet gespecificeerd [SWS_NvM_00469].

Gelijktijdigheid en uitvoeringsbeperkingen

De interface is vastgelegd als synchroon en niet-re-entrant (Non Reentrant) [SWS_NvM_00469]. Aangezien de NVRAM Manager synchroon wacht op de terugkeer van de functie, zal een blokkerende uitvoering binnen de routine de verdere verwerking van de NvM vermoedelijk direct stopzetten (interpretatie). Vraag Q-c0e43c9871c4f2d0 (open)

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_WriteRamBlockToNvm [SWS_NvM_00539] 📄 PDF

Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);

Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M module's mirror.

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

De blokspecifieke callback-functie NvM_WriteRamBlockToNvm dient voor expliciete synchronisatie om applicatiegegevens vanuit het RAM-blok naar de interne RAM-spiegel van de NvM-module te kopiëren [SWS_NvM_00539]. Deze is declaratief beschikbaar via NvM_Externals.h en wordt synchroon aangeroepen door de NvM [SWS_NvM_00539].

Gebruik en parameters

De functie draagt als uitvoerparameter de pointer NvMBuffer over, die het doeladres van de NvM-spiegel vertegenwoordigt waarnaar de gegevens moeten worden geschreven [SWS_NvM_00539]. Als retourwaarde levert de callback-routine E_OK bij succesvolle verwerking of elke andere waarde bij een foutief verloop [SWS_NvM_00539].

Gelijktijdigheid en beperkingen

Conform de specificatie is NvM_WriteRamBlockToNvm ontworpen als niet-re-entrant (Non Reentrant) [SWS_NvM_00539].

Interactie in de module

  • Bij het afsluiten synchroniseert de taak NvM_WriteAll permanente RAM-blokken of roept de callback-routine NvM_WriteRamBlockToNvm aan voor expliciete synchronisatie [SWS_NvM_00018], voor zover de parameter NvMSelectBlockForWriteAll voor het NVRAM-blok is geconfigureerd op true [SWS_NvM_00252].
  • De schrijftaken NvM_WriteBlock [SWS_NvM_00303] en NvM_WritePRAMBlock [SWS_NvM_00803] valideren een nog ongeldig permanent RAM-blok automatisch na de aanroep van NvM_WriteRamBlockToNvm.

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

Implementer's Guide volgt (complexiteit I1)

functie NvM_ReadRamBlockFromNvm [SWS_NvM_00540] 📄 PDF

Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);

Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to RAM block.

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

De functie NvM_ReadRamBlockFromNvm is een blokspecifieke callback-routine die wordt gedeclareerd via NvM_Externals.h [SWS_NvM_00540]. Het doel ervan is om de applicatie in staat te stellen gegevens vanuit de interne spiegelbuffer van de NvM-module naar het bijbehorende RAM-blok te kopiëren om een expliciete synchronisatie uit te voeren [SWS_NvM_00540], [SWS_NvM_00118].

Gebruik en semantiek

  • Aanroepcontext en gelijktijdigheid: De aanroep vindt synchroon plaats en is gespecificeerd als niet-re-entrant (Non Reentrant) [SWS_NvM_00540].
  • Parameters: Als overdrachtsparameter dient de pointer NvMBuffer (type const void*). Deze draagt het bufferadres over waaruit de gegevens kunnen worden gelezen en naar het RAM-blok kunnen worden gekopieerd [SWS_NvM_00540].
  • Retourwaarde en foutafhandeling: De callback-functie levert een Std_ReturnType terug. De retourwaarde E_OK signaleert de succesvolle afhandeling; elke andere retourwaarde duidt op een niet-succesvolle verwerking [SWS_NvM_00540].

Samenspel

In het kader van de multiblock-service NvM_ReadAll wordt NvM_ReadRamBlockFromNvm aangeroepen voor expliciete synchronisatie voor die NVRAM-blokken die dienovereenkomstig zijn geconfigureerd en waarvoor NvmSelectBlockForReadall == TRUE geldt [SWS_NvM_00118], [SWS_NvM_00356]. Dit vormt het alternatief voor het directe kopieerproces naar permanente RAM-blokken, terwijl NvM_ReadAll de beheergegevens van de blokken initialiseert [SWS_NvM_00356].

Deze tekst is gegenereerd door een AI-systeem op basis van de specificatievoorschriften.

Implementer's Guide volgt (complexiteit I1)

type NvM_MultiBlockRequestType [SWS_NvM_91003] 📄 PDF

Identifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw M

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

Het enumeratietype NvM_MultiBlockRequestType wordt beschikbaar gesteld via het headerbestand NvM.h en dient voor de eenduidige aanduiding van een uitgevoerd multi-block-verzoek [SWS_NvM_91003]. Het type wordt gebruikt wanneer het resultaat of de status van een multi-block-operatie via een callback-functie wordt gesignaleerd of aan de module BswM wordt gemeld [SWS_NvM_91003].

Waardebereik en semantiek

De enumeratie definieert de volgende waarden ter differentiatie van de multi-block-opdrachten [SWS_NvM_91003]:

  • NVM_READ_ALL (0x00): Geeft aan dat NvM_ReadAll is uitgevoerd.
  • NVM_WRITE_ALL (0x01): Geeft aan dat NvM_WriteAll is uitgevoerd.
  • NVM_VALIDATE_ALL (0x02): Geeft aan dat NvM_ValidateAll is uitgevoerd.
  • NVM_FIRST_INIT_ALL (0x03): Geeft aan dat NvM_FirstInitAll is uitgevoerd.
  • NVM_CANCEL_WRITE_ALL (0x04): Geeft aan dat NvM_CancelWriteAll is uitgevoerd.

Samenspel

Door dit type door te geven, kunnen aangeroepen callbacks en de BswM vaststellen welke concrete multiblok-service de melding heeft geactiveerd. Interpretatie: Vermoedelijk dient de terugkoppeling aan de BswM ertoe vervolgacties of statusovergangen in het totale systeem te koppelen aan de voltooiing van specifieke multiblok-services. Vraag Q-69b4d985301acfeb (open)

Deze tekst is gegenereerd door een AI en dient als oriëntatiehulp. Bindend zijn de gerefereerde specificaties.

Implementer's Guide volgt (complexiteit I1)

type NvM_RequestResultType [SWS_NvM_00470] 📄 PDF

Type NvM_RequestResultType.

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

Het type NvM_RequestResultType is gebaseerd op uint8, is beschikbaar via Rte_NvM_Type.h en representeert het asynchrone verzoekresultaat van lees-, schrijf- en besturingsopdrachten van de NVRAM Manager [SWS_NvM_00470]. Het resultaat wordt primair opgevraagd via de API-dienst NvM_GetErrorStatus en kan aanvullend worden gesignaleerd via een geconfigureerde callback-functie [SWS_NvM_00470].

Het waardebereik representeert verschillende uitvoeringstoestanden en foutgevallen [SWS_NvM_00470]:

  • NVM_REQ_OK (0x00): De laatste asynchrone opdracht is succesvol beëindigd; dit is tevens de standaardwaarde na een reset.
  • NVM_REQ_NOT_OK (0x01): Het asynchrone lees-, schrijf- of besturingsverzoek is niet succesvol beëindigd.
  • NVM_REQ_PENDING (0x02): Een asynchroon verzoek is momenteel nog in behandeling.
  • NVM_REQ_INTEGRITY_FAILED (0x03): Gegevensintegriteitsfout bij NvM_ReadBlock of NvM_ReadAll. In het geval van NvM_ReadBlock is de inhoud van het RAM-blok gewijzigd, maar ongeldig geworden; de applicatie is er verantwoordelijk voor om de inhoud te vernieuwen en te valideren.
  • NVM_REQ_BLOCK_SKIPPED (0x04): Het gerefereerde blok is tijdens NvM_ReadAll of NvM_WriteAll overgeslagen (bijv. dataset-NVRAM-blokken bij NvM_ReadAll of blokken zonder permanent geconfigureerd RAM-blok).
  • NVM_REQ_NV_INVALIDATED (0x05): Het gerefereerde NV-blok is geïnvalideerd.
  • NVM_REQ_CANCELED (0x06): Afbreken van NvM_WriteAll door NvM_CancelWriteAll of afbreken van een individuele blokopdracht (NvM_ReadBlock, NvM_WriteBlock, NvM_EraseNvBlock, NvM_InvalidateNvBlock, NvM_RestoreBlockDefaults) door NvM_CancelJobs.
  • NVM_REQ_RESTORED_DEFAULTS (0x08): De standaardwaarden zijn succesvol gekopieerd naar de RAM-kopie.

In samenspel met redundante blokken (NVM_BLOCK_REDUNDANT) stelt de functie NvM_InvalidateNvBlock het verzoekresultaat NvM_RequestResultType pas dan in op NVM_REQ_OK wanneer beide NV-blokken zijn geïnvalideerd [SWS_NvM_00274].

Deze tekst is automatisch gegenereerd. Alle vermeldingen zijn uitsluitend gebaseerd op de specificatie-eisen van de AUTOSAR-versie R20-11.

Implementer's Guide volgt (complexiteit I1)

type NvM_BlockIdType [SWS_NvM_00471] 📄 PDF

Identification of a NVRAM block via a unique block identifier. Reserved NVRAM block IDs: 0 - > to derive multi block request results via Nv M_ Get Error Status 1 - > redundant NVRAM block which holds the configuration ID

type NvM_InitBlockRequestType [SWS_NvM_91123] 📄 PDF

Identifies the type of request performed on a block when signaled via the callback function

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

Het datatype NvM_InitBlockRequestType is gebaseerd op uint8 en wordt beschikbaar gesteld via het headerbestand Rte_NvM_Type.h [SWS_NvM_91123]. Het dient ertoe het type van het op een NVRAM-blok uitgevoerde verzoek te identificeren wanneer dit via een bijbehorende callbackfunctie wordt gesignaleerd [SWS_NvM_91123].

Het toegestane waardebereik omvat vier verzoektypen [SWS_NvM_91123]:

  • NVM_INIT_READ_BLOCK (0x00): Geeft aan dat NvM_ReadBlock of NvM_ReadPRAMBlock voor het blok is aangevraagd [SWS_NvM_91123].
  • NVM_INIT_RESTORE_BLOCK_DEFAULTS (0x01): Signaleert dat NvM_RestoreBlockDefaults of NvM_RestorePRAMBlockDefaults voor het blok is aangevraagd [SWS_NvM_91123].
  • NVM_INIT_READ_ALL_BLOCK (0x02): Wijst erop dat de verwerking van het blok plaatsvindt in het kader van NvM_ReadAll [SWS_NvM_91123].
  • NVM_INIT_FIRST_INIT_ALL (0x03): Markeert de blokverwerking tijdens de uitvoering van NvM_FirstInitAll [SWS_NvM_91123].

Aan de hand van deze opsommingswaarde kan de aangeroepen applicatielogica onderscheiden of het om een expliciet enkelblokverzoek gaat (lezen of herstellen van standaardwaarden) dan wel om een globale verzameloperatie tijdens het opstarten van het systeem [SWS_NvM_91123]. Interpretatie: Het type zal vermoedelijk als parameter worden doorgegeven aan blokgerelateerde initialisatie-callbacks, zodat de applicatie passend bij de situatie standaardgegevens kan aanleveren of specifieke voorbereidingen kan treffen. Vraag Q-42d0d469e305728e (open)

Deze gebruiksinstructie is gebaseerd op de specificatie AUTOSAR Classic Release R20-11.

Implementer's Guide volgt (complexiteit I1)

type NvM_BlockRequestType [SWS_NvM_91002] 📄 PDF

Identifies the type of reques t performed on a block when signaled via the callback function

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

Het enumeratietype NvM_BlockRequestType is gebaseerd op uint8 en wordt via de header Rte_NvM_Type.h ter beschikking gesteld [SWS_NvM_91002]. Het dient ertoe om bij een notificatie via een callback-functie het type van het verzoek over te dragen dat eerder op een NVRAM-blok is uitgevoerd [SWS_NvM_91002].

Het waardebereik omvat zes specifieke blokverzoeken [SWS_NvM_91002]:

  • NVM_READ_BLOCK (0x00): Signaleert dat NvM_ReadBlock of NvM_ReadPRAMBlock voor het blok is uitgevoerd [SWS_NvM_91002].
  • NVM_WRITE_BLOCK (0x01): Signaleert dat NvM_WriteBlock of NvM_WritePRAMBlock voor het blok is uitgevoerd [SWS_NvM_91002].
  • NVM_RESTORE_BLOCK_DEFAULTS (0x02): Signaleert dat NvM_RestoreBlockDefaults of NvM_RestorePRAMBlockDefaults is uitgevoerd [SWS_NvM_91002].
  • NVM_ERASE_NV_BLOCK (0x03): Signaleert dat NvM_EraseNvBlock op het blok is uitgevoerd [SWS_NvM_91002].
  • NVM_INVALIDATE_NV_BLOCK (0x04): Signaleert dat NvM_InvalidateNvBlock op het blok is uitgevoerd [SWS_NvM_91002].
  • NVM_READ_ALL_BLOCK (0x05): Signaleert dat NvM_ReadAll de verwerking van dit blok heeft voltooid [SWS_NvM_91002].

In de applicatiearchitectuur zal de waarde vermoedelijk als parameter in callback-routines worden geëvalueerd om bovenliggende softwarecomponenten gedifferentieerd te informeren over het einde van bepaalde blokoperaties [SWS_NvM_91002]. Vraag Q-467801b6b5e898a2 (open) Bij gebrek aan verdere specificaties in de payload over foutcodes of gelijktijdigheid beperken de specificatiedetails zich tot de typedefinitie en het waardebereik [SWS_NvM_91002].

Deze tekst is opgesteld door een AI; de juistheid kan niet worden gegarandeerd.

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_NvM
Status
unspecified
Version
AUTOSAR/AP/record/CP_MOD_NvM@rel:R20-11#7aebbbaa
Content hash
7aebbbaa
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_NVRAMManager.pdf#nameddest=SWS_NvM_00447

Initialisatie en status

Service to get the version information of the Nv M module.

void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);
NvM_Init functie

Service for resetting all internal variables.

void NvM_Init (const NvM_ConfigType* ConfigPtr);

Diensten · Read…

NvM_ReadAll functie

Initiates a multi block read request.

void NvM_ReadAll (void);

Service to copy the data of the NV block to its corresponding RAM block.

Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);

Service to copy the data of the NV block to its corresponding permanent RAM block.

Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);

Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to RAM block.

Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);

Diensten · Set…

Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.

void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);

Service for setting/ resetting the write protection for a NV block. Availabl e via Nv M.h

Std_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);

Service for setting the Data Inde x of a dataset NVRAM block.

Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);

Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.

Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);

Diensten · Write…

NvM_WriteAll functie

Initiates a multi block write request.

void NvM_WriteAll (void);

Service to copy the data of the RAM block to its corresponding NV block. Available vi a Nv M.h

Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);

Service to copy the data of the permanent RAM block to its corresponding NV block.

Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);

Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M module's mirror.

Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);

Diensten · Cancel…

Service to cancel all jobs pending for a NV block.

Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);

Service to cancel a running Nv M_ Write All request.

void NvM_CancelWriteAll (void);

Diensten · Get…

Service for getting the currently set Data Index of a datase t NVRAM block

Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);

Service to read the block dependent error/ status information.

Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);

Diensten · Job…

Function to be used by the underlying memory abstraction to signal end of job without error.

void NvM_JobEndNotification (void);

Function to be used by the underlying memory abstraction to signal end of job with error.

void NvM_JobErrorNotification (void);

Diensten · Restore…

Service to restore the default data to its corr esponding RAM block.

Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);

Service to restore the default data to its corresponding permanent RAM block.

Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);

Diensten · Overige

Service to erase a NV block.

Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);

The function initiates a multi block first initialization request. The job of the function does not care if a block exists in the non - volatile memory or not OR if it is valid (i.e. not corrupted) or not, when processing it.

void NvM_FirstInitAll (void);

Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M block is not configured. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_NVRAMManager

Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);

Service to invalidate a NV block.

Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);

Common callback routine to notify the upper layer that an asynchronous multi block request has been finished. Available v ia Nv M_ Externals.h

Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);

Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.

Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);

Initiates a multi block validation request.

void NvM_ValidateAll (void);

Cyclisch

Service for performing the processing of the Nv M jobs.

void NvM_MainFunction (void);

Typen

Identification of a NVRAM block via a unique block identifier. Reserved NVRAM block IDs: 0 - > to derive multi block request results via Nv M_ Get Error Status 1 - > redundant NVRAM block which holds the configuration ID

Identifies the type of reques t performed on a block when signaled via the callback function

Configuration data structure of the Nv M module.

Identifies the type of request performed on a block when signaled via the callback function

Identifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw M

Type NvM_RequestResultType.