DEENESPTFRRUARHIKOZHNL

NVRAM Manager (NvM)

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

मॉड्यूल गाइडएआई जनित

नॉन-वोलेटाइल डेटा ब्लॉक्स को प्रबंधित करता है और उन्हें RAM तथा NV-मेमोरी के बीच एसिंक्रोनस रूप से सिंक्रनाइज़ करता है।
एआई-जनित असत्यापित मॉडल: claude-opus-5-5 · प्रयास: high · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 1d912b11517a उद्गम खुले प्रश्न (1)
कारणात्मक एंकर: R20-11 R20-11 से मान्य इस विनिर्देश संस्करण के लिए नए सिरे से संश्लेषित।
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

नॉन-वोलेटाइल डेटा ब्लॉक्स को प्रबंधित करता है और उन्हें RAM तथा NV-मेमोरी के बीच एसिंक्रोनस रूप से सिंक्रनाइज़ करता है।

NVRAM Manager (NvM) नॉन-वोलेटाइल मेमोरी का एकमात्र एक्सेस पॉइंट है। यह NVRAM-ब्लॉक्स को RAM और NV-मेमोरी के बीच अंतर्निहित रूप से कॉपी करता है [SWS_NvM_00038]। स्टार्टअप के समय BswM द्वारा ट्रिगर किया गया NvM_ReadAll RAM-ब्लॉक्स को भरता है, शटडाउन के समय NvM_WriteAll संशोधित ब्लॉक्स को सुरक्षित करता है। एकल अनुरोध जैसे NvM_WriteBlock एसिंक्रोनस रूप से कतारबद्ध किए जाते हैं, प्राथमिकता के आधार पर संसाधित होते हैं और स्थिति या कॉलबैक द्वारा पावती दिए जाते हैं [SWS_NvM_00185]। NvM पढ़ने की त्रुटियों को पुनः प्रयासों, रिडंडेंट प्रतियों और डिफ़ॉल्ट डेटा के माध्यम से संभालता है; फिर भी उपयोगकर्ताओं को ब्लॉक की स्थिति स्वयं जांचनी चाहिए।

NVRAM Manager (NvM) नॉन-वोलेटाइल मेमोरी का एकमात्र एक्सेस पॉइंट है [SWS_NvM_00384]। यह ब्लॉक्स को NVRAM और RAM के बीच अंतर्निहित रूप से कॉपी करता है; एप्लिकेशन सीधे RAM-डेटा के साथ काम करता है [SWS_NvM_00038]। नीचे की ओर यह Fee या Ea के साथ Memory Abstraction Interface का उपयोग करता है [SWS_NvM_00051]। यह BswM को स्थितियों की सूचना देता है, और DEM तथा DET को त्रुटियों की सूचना देता है [SWS_NvM_00745] [SWS_NvM_00592]।

kontext nutzer NvM उपयोगकर्ता (RTE के माध्यम से SW-C, BSW मॉड्यूल्स) nvm NvM (NVRAM Manager) nutzer->nvm एकल जॉब्स NvM_ReadBlock, NvM_WriteBlock, … bswm BswM bswm->nvm NvM_Init, NvM_ReadAll, NvM_WriteAll, NvM_CancelWriteAll nvm->nutzer SingleBlock-, InitBlock- और मिरर कॉलबैक्स nvm->bswm BswM_NvM_CurrentJobMode, BswM_NvM_CurrentBlockMode memif MemIf nvm->memif रीड/राइट जॉब्स, MemIf_GetJobResult dem Dem nvm->dem Produktionsfehler det Det nvm->det Entwicklungsfehler crc Crc nvm->crc CRC-Berechnung fee Fee / Ea memif->fee अग्रेषित करना fee->nvm NvM_JobEndNotification, NvM_JobErrorNotification

संदर्भ आरेख: उपयोगकर्ताओं, BswM, MemIf/Fee/Ea तथा DEM और DET के बीच NvM का समावेश। स्रोत: [SWS_NvM_00384] [SWS_NvM_00465] [SWS_NvM_00746]

प्रत्येक NVRAM-ब्लॉक में NV-ब्लॉक, RAM-ब्लॉक और Administrative Block शामिल होते हैं, वैकल्पिक रूप से डिफ़ॉल्ट डेटा वाले ROM-ब्लॉक द्वारा पूरक [SWS_NvM_00138]। Native, Redundant और Dataset प्रकार उपलब्ध हैं; वे NV- और ROM-ब्लॉक्स की संख्या में भिन्न होते हैं [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559]। NvM, RAM-ब्लॉक को अंतर्निहित रूप से सीधे या कॉलबैक के साथ RAM-मिरर के माध्यम से स्पष्ट रूप से सिंक्रनाइज़ करता है [SWS_NvM_00511]।

जीवनचक्र तीन चरणों में आगे बढ़ता है:

  • BswM विशेष रूप से NvM_Init को कॉल करता है [SWS_NvM_00693]।
  • NvM_ReadAll पहले कॉन्फ़िगरेशन-ID की जाँच करता है और फिर RAM-ब्लॉक्स को भरता है [SWS_NvM_00073] [SWS_NvM_00718]।
  • शटडाउन के समय NvM_WriteAll संशोधित ब्लॉक्स को सुरक्षित करता है [SWS_NvM_00092]। NvM_CancelWriteAll गैर-विनाशकारी रूप से निरस्त करता है [SWS_NvM_00238]।

NvM_WriteBlock जैसे एकल अनुरोध कतारबद्ध किए जाते हैं और उसके बाद NVM_REQ_PENDING पर सेट होते हैं [SWS_NvM_00185]। वैकल्पिक रूप से NvM तत्काल (Immediate) अनुरोधों के लिए अपनी स्वयं की कतार का उपयोग करता है [SWS_NvM_00378]। परिणाम NvM_GetErrorStatus या एक कॉन्फ़िगर किया गया कॉलबैक प्रदान करता है [SWS_NvM_00015] [SWS_NvM_00740]।

फ़ीडबैक के साथ अतुल्यकालिक सिंगल-ब्लॉक जॉबNvM-AnwenderNvMBswMBSW-TaskMemIfNvM_WriteBlock(BlockId, NvM_SrcPtr)einreihen, Blockergebnis:NVM_REQ_PENDINGoptNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, NVM_REQ_PENDING)E_OKloopजब तक राइट जॉब पूरा नहीं हो जाताNvM_MainFunction()Schreibauftrag / Status abfragenJob-ErgebnisoptNvMSingleBlockCallback konfiguriertNvM_SingleBlockCallbackFunction(NVM_WRITE_BLOCK, JobResult)optNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, Ergebnis)NvM_GetErrorStatus(BlockId, RequestResultPtr)E_OK, Ergebnis

अनुक्रम आरेख: एक एसिंक्रोनस राइट अनुरोध कतारबद्ध होता है, NvM_MainFunction में संसाधित होता है और कॉलबैक, BswM-संदेश तथा स्थिति क्वेरी द्वारा पावती दी जाती है। स्रोत: [SWS_NvM_00185] [SWS_NvM_00347] [SWS_NvM_00891], SWS NvM पृ. 160

NvM पढ़ने की त्रुटियों को तीन स्तरों के माध्यम से संभालता है:

  • कॉन्फ़िगर किए गए पठन पुनः प्रयास [SWS_NvM_00526],
  • रिडंडेंट ब्लॉक्स की दूसरी प्रति [SWS_NvM_00199],
  • NVM_REQ_RESTORED_DEFAULTS परिणाम के साथ डिफ़ॉल्ट डेटा [SWS_NvM_00202]।

Interpretation: स्तरों का क्रम Error Description में दी गई सूची के अनुसार होना चाहिए। प्रश्न Q-027e7f981e4d0a43 (खुला) NvM लिखने की त्रुटियों को NVM_MAX_NUM_OF_WRITE_RETRIES तक दोहराता है और फिर DEM को NVM_E_REQ_FAILED की रिपोर्ट करता है [SWS_NvM_00684]। उपयोगकर्ता अपने ब्लॉक्स की स्थिति की स्वयं जाँच करते हैं [SWS_NvM_00694]।

मेमोरी स्टैक में भूमिका: नॉन-वोलेटाइल मेमोरी का एकमात्र एक्सेस पॉइंट

NVRAM Manager (NvM) नॉन-वोलेटाइल डेटा तक पहुँच को बंडल करता है। परिवेश नॉन-वोलेटाइल मेमोरी को विशेष रूप से NvM के माध्यम से एक्सेस करता है, जो इसके लिए एक कॉलबैक इंटरफ़ेस प्रदान करता है [SWS_NvM_00384]। एक्सेस अंतर्निहित है: NvM, NVRAM और साझा RAM के बीच ब्लॉक्स को कॉपी करता है। एप्लिकेशन सिंक्रनाइज़ेशन नियमों का पालन करते हुए सीधे RAM-डेटा के साथ काम करता है [SWS_NvM_00038] [SWS_NvM_00692]। एक ब्लॉक को उसकी कॉन्फ़िगर की गई ब्लॉक-ID के माध्यम से चुना जाता है [SWS_NvM_00069] [SWS_NvM_00471]। Upper Layer इसके लिए केवल NvM.h को शामिल करते हैं [SWS_NvM_00691]। अंतर्निहित अद्यतन का आरेख कार्य विभाजन को दिखाता है: बेस सॉफ़्टवेयर के अन्य भाग ECU स्थिति के आधार पर सभी ब्लॉक्स के बैकअप और पुनर्प्राप्ति को ट्रिगर करते हैं। SW-C केवल अपने RAM-ब्लॉक्स की सामग्री तक पहुँचता है (SWS NvM पृ. 121)।

नीचे की ओर NvM Memory Abstraction Interface के साथ इंटरफेस करता है। Fee या Ea के साथ मिलकर, यह एक वर्चुअल लीनियर 32-बिट एड्रेस स्पेस प्रदान करता है [SWS_NvM_00051] [SWS_NvM_00465]। NvM Crc-मॉड्यूल के माध्यम से चेकसम उत्पन्न करता है [SWS_NvM_00466]। यह दो तरीकों से Lower-Layer-जॉब की समाप्ति के बारे में जानता है:

  • MemIf_GetJobResult के माध्यम से पोलिंग द्वारा,
  • पोलिंग बंद होने पर NvM_JobEndNotification और NvM_JobErrorNotification [SWS_NvM_00440] [SWS_NvM_00441] (Error Description पृ. 43) के माध्यम से।

उत्पादन त्रुटियाँ DEM को [SWS_NvM_00592], विकास त्रुटियाँ DET को [SWS_NvM_00614] जाती हैं। NvM जॉब स्थितियों की रिपोर्ट BswM को करता है [SWS_NvM_00745] [SWS_NvM_00746]।

kontext nutzer NvM उपयोगकर्ता (RTE के माध्यम से SW-C, BSW मॉड्यूल्स) nvm NvM (NVRAM Manager) nutzer->nvm एकल जॉब्स NvM_ReadBlock, NvM_WriteBlock, … bswm BswM bswm->nvm NvM_Init, NvM_ReadAll, NvM_WriteAll, NvM_CancelWriteAll nvm->nutzer SingleBlock-, InitBlock- और मिरर कॉलबैक्स nvm->bswm BswM_NvM_CurrentJobMode, BswM_NvM_CurrentBlockMode memif MemIf nvm->memif रीड/राइट जॉब्स, MemIf_GetJobResult dem Dem nvm->dem Produktionsfehler det Det nvm->det Entwicklungsfehler crc Crc nvm->crc CRC-Berechnung fee Fee / Ea memif->fee अग्रेषित करना fee->nvm NvM_JobEndNotification, NvM_JobErrorNotification

संदर्भ आरेख: NvM एक तरफ उपयोगकर्ताओं और BswM तथा दूसरी तरफ MemIf/Fee/Ea के बीच मध्यस्थता करता है। यह DEM और DET को त्रुटियों की रिपोर्ट करता है। स्रोत: [SWS_NvM_00384] [SWS_NvM_00745] [SWS_NvM_00746] [SWS_NvM_00465] [SWS_NvM_00466], Error Description पृ. 43

एक NVRAM-ब्लॉक की संरचना और तीन प्रबंधन प्रकार

एक NVRAM-ब्लॉक में अनिवार्य घटक NV-ब्लॉक, RAM-ब्लॉक और Administrative Block शामिल होते हैं। डिफ़ॉल्ट डेटा वाला एक ROM-ब्लॉक वैकल्पिक है [SWS_NvM_00138] [SWS_NvM_00139] [SWS_NvM_00020]। ब्लॉक डिस्क्रिप्टर कॉन्फ़िगरेशन समय पर संरचना निर्धारित करता है [SWS_NvM_00140]। व्यक्तिगत घटक:

  • NV-ब्लॉक पेलोड डेटा और वैकल्पिक रूप से CRC तथा हेडर ले जाता है [SWS_NvM_00125] (SWS NvM पृ. 39)।
  • RAM-ब्लॉक बिना किसी एड्रेस प्रतिबंध के ग्लोबल RAM में स्थित हो सकता है [SWS_NvM_00088]।
  • Administrative Block एप्लिकेशन के लिए अदृश्य होता है। यह डेटासेट इंडेक्स, विशेषताओं और त्रुटि/स्थिति फ़ील्ड को रखता है [SWS_NvM_00134] [SWS_NvM_00135] [SWS_NvM_00136]।

NvM प्रकार NVM_BLOCK_NATIVE, NVM_BLOCK_REDUNDANT और NVM_BLOCK_DATASET [SWS_NvM_00137] का समर्थन करता है। वे NV- और ROM-ब्लॉक्स की संख्या में भिन्न होते हैं [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559] (SWS NvM पृ. 10)। Dataset-ब्लॉक्स के लिए निम्नलिखित लागू होता है:

  • NvM_SetDataIndex तत्व का चयन करता है। NvMNvBlockNum से शुरू होने वाले इंडेक्स ROM-ब्लॉक्स को एड्रेस करते हैं [SWS_NvM_00014] [SWS_NvM_00445] (NV Data Handling पृ. 10)।
  • इंडेक्स स्थायी रूप से संग्रहीत नहीं होता है; NvM_Init इसे शून्य पर सेट करता है [SWS_NvM_00160] [SWS_NvM_00192]।
  • सही सेटिंग के लिए SW-C जिम्मेदार है [SWS_NvM_00695]।
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 ब्लॉक स्थायी, अस्थायी या RAM मिरर 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

सहयोग आरेख (ब्लॉक संरचना): प्रत्येक प्रबंधन प्रकार के लिए कार्डिनैलिटीज के साथ एक NVRAM-ब्लॉक के अनिवार्य और वैकल्पिक घटक। स्रोत: [SWS_NvM_00138] [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559] [SWS_NvM_00134], SWS NvM पृ. 10

जीवनचक्र: NvM_Init, NvM_ReadAll और NvM_WriteAll

BswM विशेष रूप से NvM_Init को कॉल करता है [SWS_NvM_00693]। NvM_Init कतारों और स्टेट मशीनों को रीसेट करता है और आंतरिक रूप से “INIT DONE” संकेत देता है [SWS_NvM_00399]। यह न तो RAM-ब्लॉक्स और न ही अंतर्निहित मॉड्यूलों को इनिशियलाइज़ करता है [SWS_NvM_00091] [SWS_NvM_00193]। कॉन्फ़िगरेशन पॉइंटर हमेशा NULL_PTR [SWS_NvM_00881] होता है। उसके बाद ही NvM_MainFunction अनुरोधों को संसाधित करता है [SWS_NvM_00257]।

RAM-ब्लॉक्स को बाद में NvM_ReadAll [SWS_NvM_00718] द्वारा भरा जाता है। कॉल केवल अनुरोध का संकेत देता है। प्रसंस्करण तब तक आस्थगित रहता है जब तक कि एकल-ब्लॉक अनुरोध पूरे नहीं हो जाते [SWS_NvM_00243]। उसके बाद जॉब तीन चरणों में चलता है:

  1. पहले यह संग्रहीत कॉन्फ़िगरेशन-ID की तुलना संकलित कॉन्फ़िगरेशन-ID से करता है [SWS_NvM_00073]। विचलन के मामले में, व्यवहार NvMDynamicConfiguration पर निर्भर करता है: NvMDynamicConfiguration == FALSE के साथ, विचलन को अनदेखा किया जाता है [SWS_NvM_00248]। अन्यथा, गैर-परिवर्तन-प्रतिरोधी ब्लॉक्स को डिफ़ॉल्ट डेटा प्राप्त होता है [SWS_NvM_00249] [SWS_NvM_00674] (NV Data Handling पृ. 15)।
  2. फिर यह ब्लॉक-ID 0 और 1 [SWS_NvM_00244] को छोड़कर उपयोगकर्ता ब्लॉक्स पर पुनरावृति करता है। ऐसा करते समय, यह केवल स्थायी RAM-ब्लॉक या स्पष्ट सिंक्रनाइज़ेशन वाले ब्लॉक्स को संसाधित करता है [SWS_NvM_00118]।
  3. अंत में, यह समग्र परिणाम को NVM_REQ_OK या NVM_REQ_NOT_OK [SWS_NvM_00895] [SWS_NvM_00301] पर सेट करता है।

मोड प्रबंधन उदाहरण में, BswM नियम NvMReadAllFinished शेष इनिशियलाइज़ेशन को केवल NvM_ReadAll (Mode Management Guide पृ. 31) के पूरा होने के बाद शुरू करता है।

प्रारंभ: NvM_Init और NvM_ReadAllBSW-TaskBswMNvMMemIf / Fee / EaUse Case: InitialisierungNvM_Init(NULL_PTR)कतारों और स्थितियों को रीसेट करें,“INIT DONE” – RAM ब्लॉक अपरिवर्तितNvM_Init()Use Case: Multiblock-Auftrag NvM_ReadAllNvM_ReadAll()NvM_ReadAll()optNvMBswMMultiBlockJobStatusInformation == TRUEBswM_NvM_CurrentJobMode(ReadAll, NVM_REQ_PENDING)NvM_MainFunction()पहला चरण: संग्रहीत औरkompilierte Konfigurations-ID vergleichenloopNvM_ReadAll के लिए प्रत्येक उपयोगकर्ता ब्लॉक प्रति (ब्लॉक-ID 0 और 1 को छोड़कर)NvM_MainFunction()NV-Block lesenJob-ErgebnisRAM ब्लॉक या मिरर भरें,Blockergebnis setzenoptNvMBswMMultiBlockJobStatusInformation == TRUEBswM_NvM_CurrentJobMode(ReadAll, Ergebnis)BswM_MainFunction()Regel NvMReadAllFinished:restliche BSW-Initialisierung

अनुक्रम आरेख: NvM_Init, NvM_ReadAll के साथ एसिंक्रोनस स्टार्टअप और BswM को मल्टीब्लॉक स्थिति की प्रतिक्रिया। स्रोत: [SWS_NvM_00693] [SWS_NvM_00243] [SWS_NvM_00073] [SWS_NvM_00888] [SWS_NvM_00889], NV Data Handling पृ. 20

शटडाउन के समय BswM NvM_WriteAll को कॉल करता है [SWS_NvM_00092]। जॉब इस प्रकार व्यवहार करता है:

  • यह स्थायी RAM-ब्लॉक्स लिखता है या NvM_WriteRamBlockToNvm [SWS_NvM_00252] के माध्यम से स्पष्ट रूप से सिंक्रनाइज़ किए गए डेटा को प्राप्त करता है।
  • पहले से यह “valid/modified” स्थिति की जाँच करता है [SWS_NvM_00682]।
  • यह बिना किसी त्रुटि संदेश के संरक्षित और लॉक किए गए ब्लॉक्स को छोड़ देता है [SWS_NvM_00434] [SWS_NvM_00750]।
  • अन्य अनुरोध इसे बाधित नहीं करते हैं [SWS_NvM_00567]।

उपयोगकर्ता NvM_SetRamBlockStatus(…, TRUE) के साथ संशोधित ब्लॉक्स को चिह्नित करते हैं, बशर्ते कि API सक्षम हो [SWS_NvM_00406] [SWS_NvM_00408]। डर्टी-फ्लैग ब्लॉक्स के लिए, RTE इस कॉल को संभालता है (NV Data Handling पृ. 41)।

NvM_CancelWriteAll BswM के लिए आरक्षित है [SWS_NvM_00703] और बिना चल रहे NvM_WriteAll के अप्रभावी रहता है [SWS_NvM_00233]। वर्तमान ब्लॉक गैर-विनाशकारी रूप से पूरा किया जाता है [SWS_NvM_00238]। शेष ब्लॉक्स और मल्टीब्लॉक परिणाम NVM_REQ_CANCELED [SWS_NvM_00236] [SWS_NvM_00237] (SWS NvM पृ. 161) प्राप्त करते हैं।

दो और मल्टीब्लॉक अनुरोध जीवनचक्र को पूरा करते हैं:

  • NvM_ValidateAll स्वचालित सत्यापन वाले ब्लॉक्स को “VALID / CHANGED” पर सेट करता है [SWS_NvM_00856]।
  • NvM_FirstInitAll ब्लॉक्स को डिफ़ॉल्ट डेटा से लिखता है या यदि कोई उपलब्ध नहीं है तो उन्हें अमान्य कर देता है [SWS_NvM_00913] [SWS_NvM_00919]।

सभी मल्टीब्लॉक अनुरोधों के लिए कतार की लंबाई एक लागू होती है [SWS_NvM_00380]।

शटडाउन: NvM_WriteAll और NvM_CancelWriteAllBSW-TaskBswMNvMNvM_WriteAll()NvM_WriteAll()loopस्थायी RAM या स्पष्ट तुल्यकालन वाले प्रत्येक ब्लॉक प्रतिNvM_MainFunction()“valid/modified” जाँचें; संरक्षित औरअवरुद्ध ब्लॉक्स को छोड़ें; लिखेंaltAbbruch angefordertNvM_CancelWriteAll()NvM_CancelWriteAll()NvM_MainFunction()वर्तमान ब्लॉक को गैर-विनाशकारी रूप से समाप्त करें,शेष ब्लॉक्स: NVM_REQ_CANCELEDBswM_NvM_CurrentJobMode(WriteAll, NVM_REQ_CANCELED)नियमित समापनBswM_NvM_CurrentJobMode(WriteAll, Ergebnis)Regel NvMWriteAllFinished:EcuM_GoDown

अनुक्रम आरेख: NvM_WriteAll के साथ शटडाउन और NvM_CancelWriteAll द्वारा वैकल्पिक निरस्तीकरण। स्रोत: [SWS_NvM_00092] [SWS_NvM_00682] [SWS_NvM_00238] [SWS_NvM_00237] [SWS_NvM_00889], Mode Management Guide पृ. 37

एकल अनुरोध: कतारें, प्राथमिकताएं और फीडबैक

NvM_ReadBlock, NvM_WriteBlock या NvM_RestoreBlockDefaults जैसे एकल ब्लॉक अनुरोध एसिंक्रोनस होते हैं। फ़ंक्शन पैरामीटर लेता है, अनुरोध को कतारबद्ध करता है और वापस लौटता है [SWS_NvM_00195] [SWS_NvM_00208] [SWS_NvM_00224]। उसके बाद ब्लॉक परिणाम NVM_REQ_PENDING [SWS_NvM_00185] पर सेट होता है। कतार ओवरफ़्लो के मामले में, फ़ंक्शन E_NOT_OK [SWS_NvM_00184] लौटाता है। एक ब्लॉक केवल तभी कतारबद्ध होता है जब वह पहले से लंबित या संसाधित न हो रहा हो [SWS_NvM_00385]।

अन्य सेवाएँ कॉलर के संदर्भ में सिंक्रोनस रूप से काम करती हैं, जैसे कि NvM_SetDataIndex [SWS_NvM_00448] और NvM_GetErrorStatus (SWS NvM पृ. 158)। NvM_CancelJobs किसी ब्लॉक के लंबित अनुरोधों को हटा देता है; हालाँकि, चल रहा जॉब जारी रहता है [SWS_NvM_00536] [SWS_NvM_00537]।

प्रसंस्करण प्राथमिकता [SWS_NvM_00162] के अनुसार क्रमिक रूप से होता है। यदि NvMJobPrioritization सक्रिय है, तो NvM दो कतारों का उपयोग करता है, जिनमें से एक तत्काल राइट अनुरोधों (क्रैश डेटा) के लिए होती है [SWS_NvM_00564] [SWS_NvM_00378]। ऐसा NvM_WriteBlock किसी लंबित जॉब को विनाशकारी रूप से निरस्त करता है [SWS_NvM_00300]। NvM_MainFunction उसके बाद निरस्त किए गए जॉब को फिर से शुरू करता है [SWS_NvM_00258]। प्राथमिकताकरण के बिना, NvM तत्काल जॉब्स के बिना, आने के क्रम में काम करता है [SWS_NvM_00379]। मल्टीब्लॉक अनुरोध के दौरान प्राप्त होने वाले अनुरोध कतारबद्ध किए जाते हैं और बाद में निष्पादित किए जाते हैं [SWS_NvM_00568] [SWS_NvM_00569]।

प्रत्येक एसिंक्रोनस अनुरोध अपना परिणाम त्रुटि/स्थिति फ़ील्ड [SWS_NvM_00175] में संग्रहीत करता है। NvM_GetErrorStatus इस फ़ील्ड को पढ़ता है [SWS_NvM_00015]। इसके अतिरिक्त, दो वैकल्पिक फीडबैक मार्ग हैं:

  • यदि कोई कॉलबैक कॉन्फ़िगर किया गया है, तो NvM_MainFunction NvM_SingleBlockCallbackFunction को कॉल करता है [SWS_NvM_00740] [SWS_NvM_00347]। बिना कॉलबैक के कोई एसिंक्रोनस अधिसूचना नहीं होती है [SWS_NvM_00742] (SWS NvM पृ. 160)।
  • NvMBswMBlockStatusInformation के साथ, NvM स्वीकृति और परिणाम की रिपोर्ट BswM को करता है [SWS_NvM_00890] [SWS_NvM_00891] (SWS NvM पृ. 162)।
फ़ीडबैक के साथ अतुल्यकालिक सिंगल-ब्लॉक जॉबNvM-AnwenderNvMBswMBSW-TaskMemIfNvM_WriteBlock(BlockId, NvM_SrcPtr)einreihen, Blockergebnis:NVM_REQ_PENDINGoptNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, NVM_REQ_PENDING)E_OKloopजब तक राइट जॉब पूरा नहीं हो जाताNvM_MainFunction()Schreibauftrag / Status abfragenJob-ErgebnisoptNvMSingleBlockCallback konfiguriertNvM_SingleBlockCallbackFunction(NVM_WRITE_BLOCK, JobResult)optNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, Ergebnis)NvM_GetErrorStatus(BlockId, RequestResultPtr)E_OK, Ergebnis

अनुक्रम आरेख: BswM स्थिति संदेशों, कॉलबैक और स्थिति क्वेरी के साथ एसिंक्रोनस राइट अनुरोध। स्रोत: [SWS_NvM_00185] [SWS_NvM_00347] [SWS_NvM_00740] [SWS_NvM_00890] [SWS_NvM_00891], SWS NvM पृ. 160

RAM-ब्लॉक सिंक्रनाइज़ेशन और ब्लॉक स्थिति

NvM एप्लिकेशन के RAM-ब्लॉक के साथ डेटा को सिंक्रनाइज़ करने के दो तरीकों को जानता है। अंतर्निहित सिंक्रनाइज़ेशन में यह सीधे इस RAM-ब्लॉक पर काम करता है। एप्लिकेशन ब्लॉक प्रदान करता है और जॉब समाप्त होने तक इसे एक्सेस नहीं करता है [SWS_NvM_00698] [SWS_NvM_00699]। यदि यह NULL_PTR पास करता है, तो NvM स्थायी RAM-ब्लॉक का उपयोग करता है [SWS_NvM_00898] [SWS_NvM_00900]। पॉइंटर के माध्यम से एक अस्थायी ब्लॉक फिर भी संभव है [SWS_NvM_00278]। PRAM सेवाएँ हमेशा स्थायी RAM-ब्लॉक पर काम करती हैं [SWS_NvM_00765] [SWS_NvM_00794]। RTE परिदृश्य में, यह ब्लॉक एक Per-Instance-Memory (NV Data Handling पृ. 32) होता है।

स्पष्ट सिंक्रनाइज़ेशन (NvMBlockUseSyncMechanism) में, विनिमय एक आंतरिक RAM-मिरर [SWS_NvM_00511] के माध्यम से चलता है। इसमें से ठीक एक होता है, जिसे सबसे बड़े प्रभावित ब्लॉक के अनुसार मापा जाता है [SWS_NvM_00513]। NvM क्रमशः NvMWriteRamBlockToNvCallback या NvMReadRamBlockFromNvCallback को कॉल करता है [SWS_NvM_00515] [SWS_NvM_00516]। यदि कोई कॉलबैक E_NOT_OK लौटाता है, तो यह अगले चक्र में कॉल को NvMRepeatMirrorOperations बार तक दोहराता है [SWS_NvM_00579] [SWS_NvM_00840]। कॉलबैक तक एप्लिकेशन को RAM-ब्लॉक को संशोधित करने की अनुमति होती है [SWS_NvM_00705]। एक ब्लॉक या तो स्पष्ट सिंक्रनाइज़ेशन का उपयोग करता है या एक स्थायी RAM-ब्लॉक का, दोनों का नहीं [SWS_NvM_00904]। यह तंत्र NvBlockSwComponentType (NV Data Handling पृ. 12) के माध्यम से साझा ब्लॉक्स की अनुमति देता है।

स्पष्ट तुल्यकालन (explicit synchronization) के साथ राइटिंगAnwendung (SW-C/RTE)NvMBSW-TaskMemIfRAM ब्लॉक को डेटा से भरेंNvM_WriteBlock(BlockId, NULL_PTR)E_OKRAM ब्लॉक को तब तक बदला जा सकता हैजब तक कॉलबैक न हो जाएNvM_MainFunction()NvM_WriteRamBlockToNvm(NvMBuffer)(NvMWriteRamBlockToNvCallback)RAM-Block in RAM-Mirror kopierenaltE_OK रिटर्न करेंE_OKMirror-Inhalt in NV-Block schreibenE_NOT_OK रिटर्न करेंE_NOT_OKअगले NvM_MainFunction में कॉलबैकerneut aufrufen (max. NvMRepeatMirrorOperations)

अनुक्रम आरेख: RAM-मिरर के माध्यम से स्पष्ट सिंक्रनाइज़ेशन के साथ राइट अनुरोध, जिसमें E_NOT_OK पर पुनः प्रयास शामिल है। स्रोत: [SWS_NvM_00515] [SWS_NvM_00705] [SWS_NvM_00579] [SWS_NvM_00840], NV Data Handling पृ. 27

स्थायी RAM-ब्लॉक्स या मिरर के लिए, NvM एक “valid”/“invalid” स्थिति बनाए रखता है [SWS_NvM_00128] [SWS_NvM_00132]। विस्तार से संक्रमण:

  • NvM_ReadBlock कतारबद्ध करते समय ही स्थायी RAM-ब्लॉक को अमान्य कर देता है [SWS_NvM_00198]।
  • सफल पठन के बाद यह “valid/unchanged” होता है [SWS_NvM_00200]।
  • डिफ़ॉल्ट डेटा लोड होने के बाद यह “valid/changed” होता है [SWS_NvM_00366]।
  • NvM_SetRamBlockStatus(…, TRUE) इसे संशोधित के रूप में चिह्नित करता है और पृष्ठभूमि में CRC पुनर्गणना को ट्रिगर करता है [SWS_NvM_00406] [SWS_NvM_00121]।
  • सफल राइट के बाद इसे “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) या NvM_ValidateAll changed->invalid NvM_ReadBlock angenommen (permanenter RAM) changed->unchanged erfolgreich in NV geschrieben

स्थिति आरेख: RAM-ब्लॉक स्थितियाँ और ट्रिगर करने वाली घटनाएँ। स्रोत: [SWS_NvM_00198] [SWS_NvM_00200] [SWS_NvM_00366] [SWS_NvM_00406] [SWS_NvM_00472] [SWS_NvM_00856]

कॉन्फ़िगरेशन, सुरक्षा तंत्र और विभाजन संदर्भ

सीमित संसाधनों के लिए तीन API कॉन्फ़िगरेशन श्रेणियां हैं [SWS_NvM_00149]। श्रेणी 1 Dataset-ब्लॉक्स का समर्थन नहीं करती है [SWS_NvM_00365]। डिस्क्रिप्टर तालिकाएँ उत्पन्न की जाती हैं [SWS_NvM_00143]। उपयोगकर्ता कॉन्फ़िगरेशन समय पर मेमोरी आवश्यकताओं को घोषित करते हैं [SWS_NvM_00030]। BSW मॉड्यूल इसे NvBlockNeeds (BSWMD Template पृ. 241) के माध्यम से करते हैं। ECU इंटीग्रेटर इससे NvM कॉन्फ़िगरेशन प्राप्त करता है (Methodology पृ. 444)।

अलग-अलग ब्लॉक्स के लिए कई सुरक्षा तंत्र उपलब्ध हैं:

  • एक विशेषता फ़ील्ड राइट सुरक्षा का प्रबंधन करती है [SWS_NvM_00054]; NvMBlockWriteProt इसे डिफ़ॉल्ट के रूप में सक्रिय करता है [SWS_NvM_00326]।
  • NvMWriteBlockOnce वाले ब्लॉक्स केवल एक बार लिखे जाते हैं [SWS_NvM_00397]। पहले पठन से पहले राइट अनुरोधों को NvM अस्वीकार कर देता है [SWS_NvM_00952]।
  • लॉक किए गए ब्लॉक्स (NvM_SetBlockLockStatus) के लिए NvM_WriteBlock E_NOT_OK [SWS_NvM_00749] लौटाता है। न तो NvM_SetRamBlockStatus और न ही NvM_SetBlockProtection लॉक को बदलते हैं [SWS_NvM_00754]।
  • इसके अतिरिक्त एक Static-Block-ID हेडर [SWS_NvM_00522], अनावश्यक राइटिंग के विरुद्ध CRC तुलना [SWS_NvM_00849] और CSM के माध्यम से एन्क्रिप्शन [SWS_NvM_00976] वैकल्पिक हैं।

विभाजन के मामले में, NvM संबंधित असाइन किए गए विभाजन के संदर्भ में इंटरफेस को कॉल करता है। सामान्य कार्य मास्टर विभाजन में चलते हैं [SWS_NvM_00969]। NvM_ReadAll और NvM_WriteAll केवल मास्टर द्वारा पेश किए जाते हैं [SWS_NvM_00970] [SWS_NvM_00971] [SWS_NvM_CONSTR00974]। SW-Cs ब्लॉक-संबंधित पोर्ट्स के माध्यम से NvM तक पहुँचते हैं:

त्रुटि की स्थिति में व्यवहार

पढ़ते समय NvM MemIf के संदेशों का अलग-अलग मूल्यांकन करता है:

  • यह CRC विचलन की रिपोर्ट NVM_E_INTEGRITY_FAILED [SWS_NvM_00203] के रूप में करता है।
  • यह MEMIF_JOB_FAILED की रिपोर्ट NVM_E_REQ_FAILED [SWS_NvM_00654] के रूप में करता है।
  • MEMIF_BLOCK_INVALID का परिणाम केवल NVM_REQ_NV_INVALIDATED होता है, बिना DEM संदेश के [SWS_NvM_00341] [SWS_NvM_00652]।

उसके बाद कई पुनर्प्राप्ति चरण लागू होते हैं:

  1. CRC त्रुटियों के मामले में, कॉन्फ़िगर किए गए पठन पुनः प्रयास होते हैं [SWS_NvM_00526]।
  2. रिडंडेंट ब्लॉक्स के मामले में, NvM दूसरी प्रति को पढ़ता है और रिडंडेंसी को पुनर्स्थापित करने का प्रयास करता है [SWS_NvM_00199] [SWS_NvM_00531]। यदि यह विफल रहता है, तो यह NVM_E_LOSS_OF_REDUNDANCY [SWS_NvM_00546] की रिपोर्ट करता है।
  3. अंत में NvM परिणाम NVM_REQ_RESTORED_DEFAULTS [SWS_NvM_00202] के साथ डिफ़ॉल्ट डेटा लोड करता है। NV सामग्री अपरिवर्तित रहती है [SWS_NvM_00172]।

यदि डिफ़ॉल्ट डेटा गायब है, तो RAM-ब्लॉक अमान्य रहता है [SWS_NvM_00658] [SWS_NvM_00204]। Interpretation: चरणों का क्रम Error Description में दी गई सूची के अनुसार होना चाहिए (Error Description पृ. 62)। प्रश्न (खुला) यह स्रोत दो बिंदुओं में आवश्यकताओं से भिन्न है। यह NVM_REQ_RESTORED_DEFAULTS के बजाय NVM_REQ_RESTORED_FROM_ROM का उल्लेख करता है। इसके अलावा, यह अंतिम विफलता को सामान्य रूप से NVM_E_REQ_FAILED के रूप में सारांशित करता है। ऊपर उल्लिखित आवश्यकताएँ प्रामाणिक हैं।

lesefehler lesen MemIf के माध्यम से NV ब्लॉक पढ़ें pruef MemIf और CRC जाँच का परिणाम? lesen->pruef erfolg NVM_REQ_OK RAM-Block VALID / UNCHANGED pruef->erfolg in Ordnung inv NVM_REQ_NV_INVALIDATED कोई Dem संदेश नहीं pruef->inv MEMIF_BLOCK_INVALID retry Lesewiederholung (NVM_MAX_NUM_OF_READ_RETRIES) pruef->retry त्रुटि, पुनः प्रयास शेष हैं red NVM_BLOCK_REDUNDANT? pruef->red त्रुटि, पुनः प्रयास समाप्त ہو गए retry->lesen zweit zweiten NV-Block lesen red->zweit हाँ def Defaultdaten vorhanden? (ROM-Block / Init-Callback) red->def नहीं zweitok zweite Kopie in Ordnung? zweit->zweitok wieder अतिरेकता (redundancy) पुनर्स्थापित करें; विफलता पर NVM_E_LOSS_OF_REDUNDANCY zweitok->wieder हाँ zweitok->def नहीं wieder->erfolg restore Defaults in RAM laden NVM_REQ_RESTORED_DEFAULTS def->restore हाँ fail RAM ब्लॉक अमान्य रहता है NVM_REQ_INTEGRITY_FAILED / NVM_REQ_NOT_OK Dem को रिपोर्ट def->fail नहीं

गतिविधि आरेख: पुनः प्रयास से लेकर रिडंडेंट प्रति और डिफ़ॉल्ट डेटा तक पठन त्रुटि हैंडलिंग। Interpretation: क्रम Error Description की सूची का अनुसरण करता है। स्रोत: [SWS_NvM_00526] [SWS_NvM_00199] [SWS_NvM_00202] [SWS_NvM_00341] [SWS_NvM_00658], Error Description पृ. 62

लिखते समय NvM नकारात्मक प्रतिक्रियाओं को NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00213] [SWS_NvM_00216] तक गिनता है। यदि सीमा पार हो जाती है, तो यह NVM_REQ_NOT_OK सेट करता है और NVM_E_REQ_FAILED [SWS_NvM_00683] [SWS_NvM_00684] (Error Description पृ. 43) की रिपोर्ट करता है। दो अन्य त्रुटि स्थितियाँ:

  • यदि राइट सत्यापन विफल हो जाता है, तो NvM NVM_E_VERIFY_FAILED की रिपोर्ट करता है और राइटिंग को दोहराता है [SWS_NvM_00528] [SWS_NvM_00529]।
  • एक रिडंडेंट ब्लॉक को लिखे जाने के रूप में माना जाता है जैसे ही एक प्रति सफल हो जाती है [SWS_NvM_00284]।

विकास त्रुटि पहचान सक्रिय होने पर NvM गलत संचालन की रिपोर्ट DET को करता है। उदाहरण हैं NVM_E_UNINIT और NVM_E_BLOCK_PENDING [SWS_NvM_00614] [SWS_NvM_00615] तथा NVM_E_WRITE_PROTECTED [SWS_NvM_00962]। जैसे ही कोई एकल ब्लॉक विफल होता है, एक मल्टीब्लॉक अनुरोध NVM_REQ_NOT_OK के साथ समाप्त होता है [SWS_NvM_00318]। उपयोगकर्ता अपने ब्लॉक्स की स्थिति की स्वयं जाँच करते हैं [SWS_NvM_00694]। विफल पठन के बाद, वे अगले राइट से पहले मान्य डेटा प्रदान करते हैं [SWS_NvM_00696]।

आगे विस्तृत साक्ष्य

  • [SWS_NvM_00038], [SWS_NvM_00384]: अंतर्निहित पहुँच; NV-मेमोरी के लिए एकमात्र पहुँच के रूप में NvM।
  • [SWS_NvM_00557], [SWS_NvM_00558], [SWS_NvM_00559]: तीन ब्लॉक प्रकारों की संरचना।
  • [SWS_NvM_00243], [SWS_NvM_00249]: NvM_ReadAll का निष्पादन और कॉन्फ़िगरेशन-ID का संचालन।
  • [SWS_NvM_00252], [SWS_NvM_00238]: NvM_WriteAll और इसका गैर-विनाशकारी निरस्तीकरण।
  • [SWS_NvM_00378], [SWS_NvM_00740]: प्राथमिकताकरण और कॉलबैक के माध्यम से फीडबैक।
  • [SWS_NvM_00202], [SWS_NvM_00213]: पढ़ने के दौरान पुनर्प्राप्ति और लिखने के दौरान पुनरावृत्ति।
  • SWS NvM पृ. 162: BswM के साथ इंटरैक्शन का आरेख।
  • NV Data Handling पृ. 12: स्पष्ट सिंक्रोनाइज़ेशन के लिए दिशानिर्देश।

R20-11 आवश्यकताओं और संबंधित दस्तावेज़ अनुभागों पर आधारित AI-जनरेटेड गाइड। अन्य रिलीज़ के दस्तावेज़ अनुभाग पूरक हैं। लिंक किए गए विनिर्देश टेक्स्ट ही आधिकारिक रहेंगे।

NVRAM Manager (NvM)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

फ़ंक्शन NvM_Init [SWS_NvM_00447] 📄 PDF

void NvM_Init (const NvM_ConfigType* ConfigPtr);

Service for resetting all internal variables.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: d241ed15a825 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और कॉल संदर्भ

फ़ंक्शन NvM_Init NVRAM Manager के सभी आंतरिक चरों को सिंक्रोनस रूप से रीसेट करने का कार्य करता है [SWS_NvM_00447]। यह पासिंग पैरामीटर ConfigPtr के रूप में चयनित कॉन्फ़िगरेशन डेटा सेट का एक पॉइंटर अपेक्षित करता है और इसका कोई रिटर्न मान नहीं होता है [SWS_NvM_00447]। प्रकार 4 API के रूप में, यह कॉन्फ़िगरेशन वर्ग 2 और 3 का घटक है [SWS_NvM_00560], [SWS_NvM_00561]। फ़ंक्शन गैर-पुनःप्रवेशी है और इसे विशेष रूप से BSW Mode Manager द्वारा ही कॉल किया जा सकता है [SWS_NvM_00447], [SWS_NvM_00693]।

आरंभीकरण कार्य

कॉल के दौरान, फ़ंक्शन निम्नलिखित क्रियाएँ निष्पादित करता है:

  • स्थिति मशीनों, कार्य कतारों (queues) और अनुरोध फ़्लैग सहित सभी आंतरिक चरों को उनके प्रारंभिक मानों पर रीसेट करना [SWS_NvM_00399]।
  • प्रकार NVM_BLOCK_DATASET के सभी NVRAM ब्लॉकों के डेटासेट इंडेक्स को शून्य पर सेट करना [SWS_NvM_00192]।
  • आंतरिक रूप से "INIT DONE" सिग्नल सेट करना, जो मॉड्यूल में कार्य प्रसंस्करण, कतार प्रबंधन और CRC पुनर्गणना के लिए पूर्वशर्त का प्रतिनिधित्व करता है [SWS_NvM_00257], [SWS_NvM_00399]।

सीमाएं और परस्पर क्रिया

कंट्रोल यूनिट के स्टार्टअप समय की सख्त आवश्यकताओं के कारण, NvM_Init किसी भी कॉन्फ़िगर किए गए NVRAM ब्लॉक को प्रारंभ नहीं करता है [SWS_NvM_00091]। स्थायी RAM ब्लॉक सामग्री को संशोधित नहीं किया जाता है और सिंक्रनाइज़ेशन कॉलबैक को कॉल नहीं किया जाता है; यह फ़ंक्शन NvM_ReadAll के लिए आरक्षित है [SWS_NvM_00400]। इसके अलावा, NvM_Init न तो अधीनस्थ ड्राइवरों और न ही मेमोरी हार्डवेयर एब्स्ट्रैक्शन या बाहरी मॉड्यूल को प्रारंभ करता है, क्योंकि उनके आरंभीकरण की पूर्वशर्त BSW Mode Manager द्वारा पूरी मानी जाती है [SWS_NvM_00157], [SWS_NvM_00193]।

यह उपयोग नोट AUTOSAR विनिर्देश R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन NvM_GetDataIndex [SWS_NvM_00449] 📄 PDF

Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);

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

फ़ंक्शन 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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: f3fd900b11e8 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और सिमेंटिक्स

सिंक्रोनस और पुनःप्रवेशी फ़ंक्शन NvM_SetBlockProtection व्यवस्थापकीय ब्लॉक में संबंधित विशेषता के माध्यम से NVRAM ब्लॉक के लिए राइट सुरक्षा सेट करने या रीसेट करने का कार्य करता है [SWS_NvM_00450], [SWS_NvM_00016]। इसे API कॉन्फ़िगरेशन वर्ग 3 को सौंपा गया है [SWS_NvM_00560]। NvM मॉड्यूल का परिवेश पैरामीटर ProtectionEnabled के माध्यम से राइट सुरक्षा को लक्षित तरीके से सक्रिय या निष्क्रिय कर सकता है [SWS_NvM_00578]। सफल निष्पादन पर फ़ंक्शन E_OK और त्रुटि के मामले में E_NOT_OK लौटाता है [SWS_NvM_00450]।

सीमाएँ और समवर्तीता (concurrency)

राइट सुरक्षा बदलना केवल उन ब्लॉकों के लिए अनुमत है जहाँ NvMWriteBlockOnce को FALSE पर कॉन्फ़िगर किया गया है, चाहे पैरामीटर NvMBlockWriteProt का मान कुछ भी हो [SWS_NvM_00325]। यदि NvMWriteBlockOnce को TRUE पर कॉन्फ़िगर किया गया है, तो राइट सुरक्षा को न तो सक्रिय किया जा सकता है और न ही निष्क्रिय किया जा सकता है [SWS_NvM_00398], [SWS_NvM_00577]; इस सुरक्षा को पढ़ने के संचालन के बाद भी हटाया नहीं जा सकता है [SWS_NvM_00314], [SWS_NvM_00316], [SWS_NvM_00784]। इसके अतिरिक्त, NvM_SetBlockLockStatus के माध्यम से सेट की गई लॉक स्थिति को NvM_SetBlockProtection द्वारा संशोधित नहीं किया जा सकता है [SWS_NvM_00754]। जब तक उसी ब्लॉक के लिए एकल-ब्लॉक कार्य सक्रिय या कतारबद्ध है, तब तक कॉल अनुमत नहीं है [SWS_NvM_00704]।

त्रुटि प्रबंधन

सक्रिय डेवलपमेंट पहचान (DET) के साथ, फ़ंक्शन विशिष्ट त्रुटि स्थितियों की रिपोर्ट करता है:

  • NVM_E_UNINIT, यदि NvM मॉड्यूल अभी तक प्रारंभ नहीं हुआ है [SWS_NvM_00606]।
  • NVM_E_PARAM_BLOCK_ID, यदि पास की गई BlockId मान्य सीमा से बाहर है [SWS_NvM_00609]।
  • NVM_E_BLOCK_PENDING, यदि ब्लॉक के लिए कोई ऑपरेशन पहले से ही सक्रिय या कतारबद्ध है [SWS_NvM_00607]।
  • NVM_E_BLOCK_CONFIG, यदि ब्लॉक को NvMWriteBlockOnce = TRUE के साथ कॉन्फ़िगर किया गया है [SWS_NvM_00608]।
  • NVM_E_BLOCK_LOCKED, यदि ब्लॉक लॉक है [SWS_NvM_00759]।

यह उपयोग संबंधी निर्देश AUTOSAR Classic R20-11 में NVRAM Manager के विनिर्देश पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: f2f026a0e790 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

सिंक्रोनस और पुनःप्रवेशी फ़ंक्शन NvM_SetRamBlockStatus स्थायी RAM ब्लॉकों के लिए या स्पष्ट सिंक्रनाइज़ेशन वाले ब्लॉकों के लिए RAM ब्लॉक स्थिति सेट करने का कार्य करता है [SWS_NvM_00453]। यह API कॉन्फ़िगरेशन वर्ग 2 और 3 में उपलब्ध है [SWS_NvM_00561], [SWS_NvM_00560], बशर्ते इसे कॉन्फ़िगरेशन पैरामीटर NvMSetRamBlockStatusApi के माध्यम से सक्रिय किया गया हो [SWS_NvM_00408]।

पैरामीटर BlockChanged के माध्यम से यह नियंत्रित किया जाता है कि क्या ब्लॉक को मान्य और परिवर्तित (TRUE) के रूप में चिह्नित किया गया है या अमान्य और अपरिवर्तित (FALSE) के रूप में [SWS_NvM_00453], [SWS_NvM_00406]। TRUE पास करते समय मॉड्यूल डेटा की वैधता मान लेता है [SWS_NvM_00241]। फ़ंक्शन सफल स्थिति परिवर्तन पर E_OK और त्रुटि के मामले में E_NOT_OK लौटाता है [SWS_NvM_00453]।

यदि BlockChanged को TRUE पर सेट किया जाता है, तो यदि NvMCalcRamBlockCrc कॉन्फ़िगर किया गया हो, तो फ़ंक्शन बैकग्राउंड में NvM_MainFunction में चेकसम की पुनर्गणना का अनुरोध करता है [SWS_NvM_00121]। स्पष्ट सिंक्रोनाइज़ेशन वाले बिना स्थायी RAM वाले ब्लॉकों के मामले में, यह जॉब डेटा प्राप्त करने के लिए राइट-कॉलबैक का उपयोग करता है [SWS_NvM_00906]। यदि यह विफल रहता है, तो NvM_MainFunction के प्रति कॉल कॉन्फ़िगर किए गए पुनः प्रयास होते हैं [SWS_NvM_00907], [SWS_NvM_00908]। यदि सभी प्रयास असफल रहते हैं, तो भी जॉब को पूर्ण माना जाता है और ब्लॉक संशोधित के रूप में चिह्नित रहता है [SWS_NvM_00909]।

कॉल करने से पहले NvM मॉड्यूल इनिशियलाइज़ होना चाहिए [SWS_NvM_00711]। विकास त्रुटि पहचान (development error detection) सक्रिय होने पर, फ़ंक्शन अनिinitialised मॉड्यूल के मामले में NVM_E_UNINIT [SWS_NvM_00643], अमान्य BlockId के लिए NVM_E_PARAM_BLOCK_ID [SWS_NvM_00645] और पहले से चल रहे या कतारबद्ध अनुरोधों के लिए NVM_E_BLOCK_PENDING की रिपोर्ट करता है [SWS_NvM_00644]। जब तक कोई एकल-ब्लॉक अनुरोध सक्रिय है, तब तक उस ब्लॉक के लिए यह फ़ंक्शन कॉल नहीं किया जाना चाहिए [SWS_NvM_00704]। NvM_SetBlockLockStatus के माध्यम से सेट किया गया ब्लॉक लॉक इसके द्वारा बदला नहीं जा सकता [SWS_NvM_00754]।

यह उपयोग नोट AUTOSAR विनिर्देश R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 9c1d841bb0f7 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और कॉल संदर्भ

सिंक्रोनस और रीएंट्रेंट फ़ंक्शन NvM_SetBlockLockStatus एक स्थायी रूप से कॉन्फ़िगर किए गए RAM ब्लॉक को लॉक करने (BlockLocked = TRUE) या अनलॉक करने (BlockLocked = FALSE) अथवा NVRAM ब्लॉक के स्पष्ट सिंक्रोनाइज़ेशन के लिए कार्य करता है [SWS_NvM_00548]। यह API कॉन्फ़िगरेशन क्लास 2 और 3 के कार्यात्मक दायरे से संबंधित है [SWS_NvM_00561], [SWS_NvM_00560]। फ़ंक्शन ServicePort इंटरफ़ेस में शामिल नहीं है और मुख्य रूप से DCM के साथ-साथ जटिल डिवाइस ड्राइवरों (CDD) द्वारा कॉल किया जाता है [SWS_NvM_00732]।

सीमाएं और परस्पर क्रिया

कॉल केवल स्थायी RAM ब्लॉक या कॉन्फ़िगर किए गए स्पष्ट सिंक्रोनाइज़ेशन वाले NVRAM ब्लॉक्स पर लागू होता है; अन्य सभी ब्लॉक्स के लिए इसका कोई प्रभाव नहीं पड़ता है [SWS_NvM_00732]। यदि कोई ब्लॉक लॉक किया जाता है (BlockLocked = TRUE), तो NvM यह सुनिश्चित करता है कि संबद्ध NV डेटा संशोधित न हो: ब्लॉक को NvM_WriteAll पर छोड़ दिया जाता है, और सेवाएँ NvM_WriteBlock, NvM_WritePRAMBlock, NvM_InvalidateNvBlock तथा NvM_EraseNvBlock अस्वीकार कर दी जाती हैं [SWS_NvM_00751]। अगले स्टार्टअप पर, NvM NvM_ReadBlock या NvM_ReadPRAMBlock पर गारंटीकृत रूप से NV मेमोरी से ब्लॉक को लोड करता है [SWS_NvM_00752]। सेट की गई लॉक स्थिति को न तो NvM_SetRamBlockStatus के माध्यम से और न ही NvM_SetBlockProtection के माध्यम से संशोधित किया जा सकता है [SWS_NvM_00754]। BlockLocked = FALSE को पास करने से नियमित प्रसंस्करण पुनर्स्थापित हो जाता है [SWS_NvM_00753]।

त्रुटि प्रबंधन

विकास त्रुटि पहचान (DET) सक्षम होने पर, फ़ंक्शन विशिष्ट विकास त्रुटियों की रिपोर्ट करता है:

  • NVM_E_UNINIT, यदि कॉल के समय NvM मॉड्यूल अभी तक प्रारंभ नहीं हुआ है [SWS_NvM_00728]।
  • NVM_E_PARAM_BLOCK_ID, यदि पैरामीटर BlockId अनुमेय सीमा से बाहर है [SWS_NvM_00731]।
  • NVM_E_BLOCK_CONFIG, यदि संदर्भित NVRAM ब्लॉक को पैरामीटर NvMWriteBlockOnce = TRUE के साथ कॉन्फ़िगर किया गया है [SWS_NvM_00730]।

यह उपयोग नोट AUTOSAR Classic विनिर्देश R20-11 पर आधारित है और API के कॉल, सुरक्षात्मक प्रभाव और त्रुटि प्रबंधन की आवश्यकताओं को सारांशित करता है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन NvM_CancelJobs [SWS_NvM_00535] 📄 PDF

Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);

Service to cancel all jobs pending for a NV block.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 692d02b963f0 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और सिमेंटिक्स

NvM.h के माध्यम से उपलब्ध फ़ंक्शन NvM_CancelJobs एक विशिष्ट NVRAM ब्लॉक के लिए कतार में लंबित सभी जॉब्स को सिंक्रोनस रूप से निरस्त करने का काम करता है [SWS_NvM_00535], [SWS_NvM_00536]। फ़ंक्शन को रीएंट्रेंट डिज़ाइन किया गया है और पैरामीटर के रूप में BlockId की अपेक्षा करता है, जो संबंधित NVRAM ब्लॉक के ब्लॉक डिस्क्रिप्टर की विशिष्ट पहचान करता है [SWS_NvM_00535]। यदि लंबित जॉब्स को कतार से सफलतापूर्वक हटाया जा सकता है, तो कॉल E_OK लौटाता है, और यदि निर्दिष्ट ब्लॉक के लिए कतार में कोई जॉब नहीं मिला, तो E_NOT_OK लौटाता है [SWS_NvM_00535]।

प्रवाह और समवर्तीता

फ़ंक्शन कॉल के समय पहले से ही सक्रिय रूप से संसाधित हो रहे जॉब को NvM_CancelJobs द्वारा बाधित नहीं किया जाता है, बल्कि यह अंत तक चलता रहता है [SWS_NvM_00537]। बशर्ते कि प्रतीक्षा कर रहे जॉब्स के लिए निरस्तीकरण अनुरोध स्वीकार कर लिया जाए, सेवा ब्लॉक-विशिष्ट अनुरोध परिणाम को पहले से ही NVM_REQ_CANCELED पर सेट कर देती है [SWS_NvM_00225], [SWS_NvM_00536]। इस क्लीनअप का उद्देश्य कतार को खाली करना है, उदाहरण के लिए किसी विभाजन की समाप्ति या पुनरारंभ पर, और इस प्रकार पूर्ण किए गए जॉब्स के बारे में बाद की सूचनाओं को रोकना है [SWS_NvM_00225]।

त्रुटि प्रबंधन और कॉन्फ़िगरेशन

विकास त्रुटि पहचान (DET) सक्षम होने पर, फ़ंक्शन पूर्वापेक्षाओं की जाँच करता है: यदि मॉड्यूल अभी भी अनइनिशियलाइज़्ड है, तो त्रुटि NVM_E_UNINIT की रिपोर्ट की जाती है [SWS_NvM_00648]। यदि पास की गई BlockId मान्य सीमा से बाहर है, तो DET संदेश NVM_E_PARAM_BLOCK_ID जारी किया जाता है [SWS_NvM_00649]। NvM_CancelJobs को प्रकार-2 API के रूप में वर्गीकृत किया गया है और यह API कॉन्फ़िगरेशन क्लास 2 और 3 में उपलब्ध है [SWS_NvM_00561], [SWS_NvM_00560]।

यह उपयोग नोट AUTOSAR विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 423f54bb75f5 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और सिमेंटिक्स

फ़ंक्शन NvM_ReadBlock NV मेमोरी से संबंधित RAM ब्लॉक में पेलोड डेटा की एसिंक्रोनस प्रतिलिपि बनाने के लिए कार्य करता है [SWS_NvM_00010], [SWS_NvM_00454]। यह कॉल reentrant है [SWS_NvM_00454]। यह पैरामीटरों को स्वीकार करता है, रीड रिक्वेस्ट को आंतरिक जॉब कतार में जोड़ता है, और सफल स्वीकृति पर तुरंत E_OK या अस्वीकृति पर E_NOT_OK लौटाता है [SWS_NvM_00195], [SWS_NvM_00454]।

यदि पॉइंटर NvM_DstPtr पास किया जाता है, तो ब्लॉक कॉन्फ़िगरेशन से भिन्न डेटा को एक अस्थायी RAM बफ़र में पढ़ा जा सकता है; इस परिदृश्य में एक अमान्य NULL पॉइंटर DET त्रुटि की ओर ले जाता है [SWS_NvM_00196], [SWS_NvM_00278]। एक कॉन्फ़िगर किया गया स्थायी RAM ब्लॉक कतार में जोड़ने पर या जॉब प्रोसेसिंग शुरू होने पर सीधे अमान्य के रूप में चिह्नित किया जाता है [SWS_NvM_00198]। केवल सफल कॉपी प्रक्रिया के बाद ही RAM ब्लॉक को मान्य और अपरिवर्तित माना जाता है [SWS_NvM_00200], और जॉब का परिणाम NVM_REQ_OK में बदल जाता है [SWS_NvM_00206]।

त्रुटि प्रबंधन और डेटा अखंडता

यदि ब्लॉक के लिए चेकसम सक्षम है (NvMCalRamBlockCrC == TRUE), तो जॉब कॉपी करने के बाद पुनर्गणना का अनुरोध करता है [SWS_NvM_00201]:

  • CRC त्रुटियों के मामले में, NVM_E_INTEGRITY_FAILED की रिपोर्ट DEM को दी जाती है [SWS_NvM_00203]। यदि उपलब्ध हो, तो डिफ़ॉल्ट मान लोड किए जाते हैं और परिणाम NVM_REQ_RESTORED_DEFAULTS पर सेट किया जाता है [SWS_NvM_00202]। यदि ROM डेटा और इनिशियलाइज़ेशन कॉलबैक अनुपलब्ध हैं, तो परिणाम NVM_REQ_INTEGRITY_FAILED होता है [SWS_NvM_00204]।
  • यदि मेमोरी ड्राइवर MEMIF_JOB_FAILED की रिपोर्ट करता है और कोई प्रतिस्थापन मान उपलब्ध नहीं हैं, तो जॉब NVM_REQ_NOT_OK के साथ समाप्त होता है [SWS_NvM_00359]।

ब्लॉक प्रकारों की विशेषताएं

  • Redundant: यदि पहली प्रति को पढ़ने में विफलता होती है, तो स्वचालित रूप से दूसरी NV प्रति का उपयोग किया जाता है [SWS_NvM_00199]। यदि दोनों प्रतियां अमान्य हैं, तो पूरे ब्लॉक को अमान्य कर दिया जाता है [SWS_NvM_00317]।
  • Dataset: यदि डेटासेट इंडेक्स के माध्यम से चयनित ब्लॉक को अमान्य के रूप में चिह्नित किया गया है, तो RAM में कॉपी करने की प्रक्रिया नहीं की जाती है [SWS_NvM_00355]।
  • Write-Once: सेट किए गए NVM_WRITE_BLOCK_ONCE के साथ सुसंगत रूप से पढ़े गए ब्लॉक स्थायी रूप से राइट-प्रोटेक्टेड हो जाते हैं [SWS_NvM_00316]।

यह पाठ AI द्वारा तैयार किया गया था और यह विशेष रूप से रिलीज़ R20-11 के विनिर्देशों पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: d2775f30ff1b उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन NvM_WriteBlock का उपयोग RAM ब्लॉक से संबंधित NV ब्लॉक में डेटा कॉपी करने के लिए किया जाता है [SWS_NvM_00455], [SWS_NvM_00410]। यह कॉल पुनःप्रवेशी (reentrant) और एसिंक्रोनस रूप से निष्पादित होता है: फ़ंक्शन पास किए गए पैरामीटर BlockId और NvM_SrcPtr को स्वीकार करता है, आंतरिक जॉब कतार में राइट अनुरोध को जोड़ता है और तुरंत वापस लौटता है [SWS_NvM_00208]। रिटर्न मान अनुरोध की सफल स्वीकृति को E_OK के साथ या अस्वीकृति को E_NOT_OK के साथ इंगित करता है [SWS_NvM_00455]।

पैरामीटरीकरण और डेटा स्रोत के संबंध में निम्नलिखित विनिर्देश लागू होते हैं:

  • यदि NvM_SrcPtr के माध्यम से एक मान्य RAM पता पास किया जाता है, तो राइट अनुरोध इस बफ़र का उपयोग करता है [SWS_NvM_00210]। यह वास्तव में स्थायी रूप से कॉन्फ़िगर किए गए ब्लॉकों या स्पष्ट सिंक्रोनाइज़ेशन के मामले में भी अस्थायी RAM ब्लॉकों को सहेजने की अनुमति देता है [SWS_NvM_00280]।
  • एक कॉन्फ़िगर किए गए स्थायी RAM ब्लॉक को मान्य माना जाता है या कॉपी प्रक्रिया से पहले स्वचालित रूप से सत्यापित किया जाता है [SWS_NvM_00303]।
  • यदि NV ब्लॉक के लिए एक चेकसम कॉन्फ़िगर किया गया है, तो जॉब राइट ऑपरेशन से पहले CRC पुनर्गणना का अनुरोध करता है [SWS_NvM_00212]।
  • डेटासेट ब्लॉकों (NVM_BLOCK_DATASET) के मामले में, गंतव्य का चयन प्रशासनिक ब्लॉक में संग्रहीत डेटा इंडेक्स के माध्यम से किया जाता है [SWS_NvM_00338]।
  • रिडंडेंट ब्लॉकों (NVM_BLOCK_REDUNDANT) के मामले में, जैसे ही कम से कम एक प्रतिलिपि सफलतापूर्वक लिख दी जाती है, जॉब NVM_REQ_OK के साथ समाप्त हो जाता है [SWS_NvM_00284]।
  • यदि NvMWriteBlockOnce == TRUE सेट है, तो सफल राइटिंग के बाद जॉब प्रशासनिक ब्लॉक में तुरंत राइट सुरक्षा सक्रिय करता है [SWS_NvM_00328]।
  • आरक्षित ब्लॉक ID 1 के लिए राइट अनुरोध केवल तभी अनुमत हैं जब NvMDynamicConfiguration सक्रिय हो [SWS_NvM_00311]।

त्रुटि प्रबंधन और समवर्तीता:

  • यदि विकास पहचान सक्रिय है, तो अनिinitialised मॉड्यूल के मामले में NvM_WriteBlock DET त्रुटि NVM_E_UNINIT की रिपोर्ट करता है [SWS_NvM_00619] और यदि वही ब्लॉक पहले से ही संसाधित या कतारबद्ध है, तो NVM_E_BLOCK_PENDING की रिपोर्ट करता है [SWS_NvM_00620]। अस्थायी बफ़र्स के लिए स्रोत सूचक की अनुपस्थिति के कारण DET पैरामीटर त्रुटि होती है [SWS_NvM_00280]।
  • मेमोरी इंटरफ़ेस से नकारात्मक प्रतिक्रिया पुनः प्रयास काउंटर को बढ़ाती है; NVM_MAX_NUM_OF_WRITE_RETRIES से अधिक होने के बाद, जॉब NVM_REQ_NOT_OK के साथ समाप्त होता है [SWS_NvM_00213], [SWS_NvM_00216]।
  • यदि ब्लॉक को तत्काल प्राथमिकता के साथ कॉन्फ़िगर किया गया है, तो NvM_WriteBlock वर्तमान में चल रहे जॉब को विनाशकारी रूप से निरस्त करता है, ताकि राइट अनुरोध को आगे संसाधित किया जा सके [SWS_NvM_00300]।

यह उपयोग नोट AUTOSAR विनिर्देश के आधार पर स्वचालित रूप से तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 01efa016ebb0 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और सिमेंटिक्स

फ़ंक्शन NvM_RestoreBlockDefaults संबद्ध RAM ब्लॉक में डिफ़ॉल्ट डेटा को पुनर्स्थापित करता है ([SWS_NvM_00456], [SWS_NvM_00012])। यह एसिंक्रोनस रूप से काम करता है: कॉल के बाद, यह पैरामीटरों को स्वीकार करता है, अनुरोध को आंतरिक जॉब कतार में जोड़ता है और सफल स्वीकृति पर E_OK के साथ या अस्वीकृति पर E_NOT_OK के साथ तुरंत लौटता है ([SWS_NvM_00456], [SWS_NvM_00224])। यदि आउटपुट पैरामीटर NvM_DestPtr के माध्यम से एक मान्य RAM पता पास किया जाता है, तो इसका उपयोग गंतव्य पते के रूप में किया जाता है ([SWS_NvM_00435])। ROM डेटा को एक अस्थायी RAM ब्लॉक में कॉपी करने के लिए, भले ही एक स्थायी RAM ब्लॉक या सिंक्रोनाइज़ेशन कॉलबैक कॉन्फ़िगर किए गए हों, कॉलर को अनिवार्य रूप से NULL से भिन्न पॉइंटर पास करना होगा ([SWS_NvM_00436])।

त्रुटि प्रबंधन और सीमा शर्तें

फ़ंक्शन non-reentrant ([SWS_NvM_00456]) है और API कॉन्फ़िगरेशन वर्ग 2 और 3 का हिस्सा है ([SWS_NvM_00561], [SWS_NvM_00560])। यदि विकास त्रुटि पहचान (DET) सक्रिय है, तो यह NVM_E_UNINIT की रिपोर्ट करता है यदि मॉड्यूल अभी तक अन-इनिशियलाइज़्ड है ([SWS_NvM_00625]), अमान्य BlockId पर NVM_E_PARAM_BLOCK_ID की ([SWS_NvM_00630]), और एक पैरामीटर त्रुटि की रिपोर्ट करता है यदि अस्थायी कॉपी करने के लिए स्थायी रूप से कॉन्फ़िगर किए गए ब्लॉकों में कोई मान्य गंतव्य पॉइंटर पास नहीं किया गया है ([SWS_NvM_00436])। फ़ंक्शन सिंक्रोनस रूप से E_NOT_OK के साथ विफल हो जाता है यदि ब्लॉक प्रकार NVM_BLOCK_DATASET का है, कम से कम एक ROM ब्लॉक मौजूद है, और वर्तमान डेटा इंडेक्स एक NV ब्लॉक की ओर इंगित करता है ([SWS_NvM_00353])।

जॉब प्रोसेसिंग और इंटरैक्शन

एसिंक्रोनस जॉब प्रोसेसिंग के भाग के रूप में, सेवा एक कॉन्फ़िगर किए गए ROM ब्लॉक से डिफ़ॉल्ट मान लोड करती है ([SWS_NvM_00267])। यदि एक स्थायी RAM ब्लॉक का अनुरोध किया जाता है या एक स्पष्ट सिंक्रोनाइज़ेशन कॉलबैक (NvMReadRamBlockFromNvCallback) का उपयोग किया जाता है, तो RAM ब्लॉक को कॉपी प्रक्रिया से पहले या कॉलबैक कॉल से पहले अमान्य कर दिया जाता है ([SWS_NvM_00227])। सफल कॉपी प्रक्रिया के बाद या E_OK के साथ सिंक्रोनाइज़ेशन कॉलबैक की वापसी के बाद, RAM ब्लॉक को मान्य किया जाता है और परिवर्तित के रूप में चिह्नित किया जाता है ([SWS_NvM_00228])। यदि ब्लॉक के लिए एक चेकसम कॉन्फ़िगर किया गया है, तो जॉब अंत में एक CRC पुनर्गणना का अनुरोध करता है ([SWS_NvM_00229])। NvM_ReadBlock और NvM_ReadAll भी दोषपूर्ण मेमोरी रीड एक्सेस या CRC त्रुटियों के मामले में फ़ॉलबैक तंत्र के रूप में उसी पुनर्स्थापना तर्क का उपयोग करते हैं ([SWS_NvM_00202], [SWS_NvM_00293], [SWS_NvM_00657])।

यह उपयोग नोट विनिर्देश AUTOSAR Classic R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन NvM_EraseNvBlock [SWS_NvM_00457] 📄 PDF

Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);

Service to erase a NV block.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: e5129c2997d6 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

API कॉन्फ़िगरेशन वर्ग 3 ([SWS_NvM_00560]) का reentrant, एसिंक्रोनस फ़ंक्शन NvM_EraseNvBlock ([SWS_NvM_00457]) पास की गई BlockId के आधार पर एक गैर-वाष्पशील मेमोरी ब्लॉक को मिटाने का कार्य करता है। यदि कोई राइट सुरक्षा सक्रिय नहीं है, तो फ़ंक्शन पैरामीटरों को स्वीकार करता है, मिटाने के कार्य को आंतरिक जॉब कतार में जोड़ता है और तुरंत वापस लौटता है ([SWS_NvM_00231], [SWS_NvM_00418])। रिटर्न मान E_OK कार्य की सफल स्वीकृति का संकेत देता है, जबकि E_NOT_OK अस्वीकृति को दर्शाता है ([SWS_NvM_00457])।

कॉल करने से पहले NvM मॉड्यूल पूरी तरह से प्रारंभ (initialized) होना चाहिए ([SWS_NvM_00715])। कतारबद्ध करने (enqueuing) के बाद, कतार से जॉब निकालने से पहले राइट प्रोटेक्शन की फिर से जाँच नहीं की जाती है ([SWS_NvM_00662])। प्रकार NVM_BLOCK_REDUNDANT के रिडंडेंट ब्लॉक्स के मामले में, मिटाने की प्रक्रिया (erase operation) केवल तभी सफल मानी जाती है जब दोनों रिडंडेंट NV ब्लॉक्स मिटा दिए गए हों ([SWS_NvM_00269])। किसी संबद्ध RAM ब्लॉक की डेटा सामग्री जॉब निष्पादन के दौरान हमेशा अपरिवर्तित रहती है ([SWS_NvM_00416])।

एक कॉल को अस्वीकार कर दिया जाता है यदि किसी डेटासेट ब्लॉक के ROM ब्लॉक को संबोधित किया जाता है ([SWS_NvM_00661]) या ब्लॉक NvM_SetBlockLockStatus के माध्यम से लॉक किया गया है ([SWS_NvM_00751])। विकास त्रुटि पहचान (DET) सक्षम होने पर, फ़ंक्शन अनइनिशियलाइज़्ड मॉड्यूल के मामले में NVM_E_UNINIT ([SWS_NvM_00631]), अमान्य BlockId पर NVM_E_PARAM_BLOCK_ID ([SWS_NvM_00635]), और लॉक किए गए ब्लॉक पर NVM_E_BLOCK_LOCKED की रिपोर्ट करता है ([SWS_NvM_00757])। यदि ब्लॉक में तत्काल प्राथमिकता (“immediate priority”) नहीं है या मानक प्राथमिकता कॉन्फ़िगर की गई है, तो सक्रिय DET के साथ त्रुटि NVM_E_BLOCK_CONFIG रिपोर्ट की जाती है और E_NOT_OK वापस किया जाता है ([SWS_NvM_00357], [SWS_NvM_00636])। यदि बाद का एसिंक्रोनस निष्पादन विफल हो जाता है, तो अनुरोध की स्थिति NVM_REQ_NOT_OK पर सेट हो जाती है ([SWS_NvM_00271]) और DEM को NVM_E_REQ_FAILED की रिपोर्ट की जाती है ([SWS_NvM_00663])।

यह उपयोग नोट विनिर्देश के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन NvM_InvalidateNvBlock [SWS_NvM_00459] 📄 PDF

Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);

Service to invalidate a NV block.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: a20887273850 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन NvM_InvalidateNvBlock एक NV ब्लॉक को अमान्य करने के लिए API कॉन्फ़िगरेशन क्लास 3 की एक एसिंक्रोनस और रीएंट्रेंट सेवा है [SWS_NvM_00459], [SWS_NvM_00560]। कॉल शर्त यह है कि NvM मॉड्यूल को पहले मॉड्यूल परिवेश द्वारा प्रारंभ किया जाना चाहिए [SWS_NvM_00717]। यह कॉल पैरामीटर BlockId को स्वीकार करता है, राइट प्रोटेक्शन अक्षम होने पर अनुरोध को कतार में जोड़ता है, और E_OK के साथ वापस लौटता है [SWS_NvM_00239], [SWS_NvM_00424]। यदि जॉब स्वीकार नहीं किया जा सकता है, तो फ़ंक्शन E_NOT_OK लौटाता है [SWS_NvM_00459]।

यदि BlockId के माध्यम से किसी डेटासेट ब्लॉक (Dataset) के ROM ब्लॉक को निर्दिष्ट किया गया था, तो कॉल को E_NOT_OK के साथ सिंक्रोनस रूप से अस्वीकार कर दिया जाता है [SWS_NvM_00664]। यदि ब्लॉक को पहले NvM_SetBlockLockStatus के माध्यम से लॉक किया गया था, तो NvM जॉब को अस्वीकार कर देता है [SWS_NvM_00751] और सक्रिय डेवलपमेंट इंटरफ़ेस होने पर DET त्रुटि NVM_E_BLOCK_LOCKED की रिपोर्ट करता है [SWS_NvM_00756]। यदि ब्लॉक पहले से ही कतारबद्ध है या निष्पादन में है, तो DET संदेश NVM_E_BLOCK_PENDING जारी किया जाता है [SWS_NvM_00639]।

वास्तविक एसिंक्रोनस जॉब निम्नलिखित बाधाओं को ध्यान में रखते हुए संदर्भित NV ब्लॉक को अमान्य करता है [SWS_NvM_00421]:

  • रिडंडेंट ब्लॉक्स (NVM_BLOCK_REDUNDANT) के मामले में, जॉब का परिणाम केवल तभी NVM_REQ_OK पर सेट किया जाता है जब दोनों रिडंडेंट NV ब्लॉक्स सफलतापूर्वक अमान्य हो जाते हैं [SWS_NvM_00274]; यही तंत्र NvM_FirstInitAll पर भी लागू होता है [SWS_NvM_00919], [SWS_NvM_00920]।
  • NVM_WRITE_BLOCK_ONCE वाले ब्लॉक्स के लिए, जॉब राइट प्रोटेक्शन को अपरिवर्तित छोड़ देता है [SWS_NvM_00960]। यदि इससे पहले कोई रीड ऑपरेशन नहीं हुआ था, तो जॉब DET त्रुटि NVM_E_WRITE_ONCE_STATUS_UNKNOWN की रिपोर्ट करता है [SWS_NvM_00958]।
  • यदि एसिंक्रोनस प्रोसेसिंग के दौरान कोई त्रुटि होती है, तो अनुरोध परिणाम NVM_REQ_NOT_OK पर सेट किया जाता है [SWS_NvM_00275] और उत्पादन त्रुटि NVM_E_REQ_FAILED DEM को प्रेषित की जाती है [SWS_NvM_00666]।

यह उपयोग नोट एक AI द्वारा उत्पन्न किया गया था और पूरी तरह से AUTOSAR R20-11 के विनिर्देश डेटा पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 657ec2501bdc उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

एसिंक्रोनस और रीएंट्रेंट फ़ंक्शन [SWS_NvM_00764] एक NV ब्लॉक के डेटा को संबद्ध स्थायी RAM ब्लॉक में कॉपी करने का काम करता है। कॉल BlockId को स्वीकार करता है, रीड अनुरोध को आंतरिक जॉब कतार में जोड़ता है और तुरंत वापस लौटता है [SWS_NvM_00766]। रिटर्न मान E_OK जॉब की स्वीकृति की पुष्टि करता है, जबकि E_NOT_OK अस्वीकृति का संकेत देता है [SWS_NvM_00764]। फ़ंक्शन API कॉन्फ़िगरेशन क्लास 2 और 3 के कार्यात्मक दायरे से संबंधित है [SWS_NvM_00560], [SWS_NvM_00561]।

प्रक्रिया और सिंक्रोनाइज़ेशन

जॉब के सफल कतारबद्ध होने या प्रसंस्करण शुरू होने के साथ, स्थायी RAM ब्लॉक तुरंत अमान्य हो जाता है [SWS_NvM_00767]। यदि ब्लॉक के लिए स्पष्ट सिंक्रोनाइज़ेशन सेट किया गया है, तो एप्लिकेशन को सिंक्रोनाइज़ेशन रूटीन के आने तक RAM ब्लॉक को संशोधित करने की अनुमति है; इस मामले में अमान्यीकरण सीधे NvMReadRamBlockFromNvCallback के कॉल से पहले होता है [SWS_NvM_00706], [SWS_NvM_00767]। यदि NV डेटा त्रुटि-रहित रूप से RAM में स्थानांतरित कर दिया गया था, तो जॉब स्थिति NVM_REQ_OK के साथ समाप्त होता है [SWS_NvM_00765], [SWS_NvM_00775]।

त्रुटि प्रबंधन और अतिरेक (Redundancy)

प्रकार NVM_BLOCK_REDUNDANT के ब्लॉक्स के लिए, यदि पहला रीड प्रयास विफल हो जाता है, तो जॉब स्वचालित रूप से दूसरे ब्लॉक पर रीड प्रयास शुरू करता है [SWS_NvM_00768]। डेटासेट (NVM_BLOCK_DATASET) के मामले में, यदि इंडेक्स के माध्यम से चुना गया NV ब्लॉक असंगत है, तो कॉपी करना रोक दिया जाता है [SWS_NvM_00771]; यदि इंडेक्स ROM डेटा को संदर्भित करता है, तो इसे लोड किया जाता है और परिणाम NVM_REQ_OK पर सेट किया जाता है [SWS_NvM_00772]। यदि डिफ़ॉल्ट डेटा कॉन्फ़िगर किया गया है और अमान्य RAM स्थिति के साथ NV ब्लॉक पठनीय नहीं है, तो एक अंतर्निहित पुनर्प्राप्ति होती है [SWS_NvM_00575], जो RAM ब्लॉक को मान्य और परिवर्तित के रूप में वर्गीकृत करती है [SWS_NvM_00774]; कॉन्फ़िगर किए गए डिफ़ॉल्ट मानों के बिना, पुनर्प्राप्ति नहीं की जाती है [SWS_NvM_00572]। यदि पहले NvM_SetBlockLockStatus सक्रिय था, तो NV मेमोरी से पुनः लोड करना अनिवार्य कर दिया जाता है [SWS_NvM_00752]।

यह उपयोग नोट विनिर्देश स्थिति AUTOSAR CP R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 5a26959f15b3 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

रीएंट्रेंट, एसिंक्रोनस फ़ंक्शन NvM_WritePRAMBlock एक स्थायी RAM ब्लॉक के डेटा को संबंधित NV ब्लॉक में लिखने की प्रक्रिया शुरू करता है [SWS_NvM_00793], [SWS_NvM_00794]। फ़ंक्शन API कॉन्फ़िगरेशन क्लास 2 और 3 में उपलब्ध है [SWS_NvM_00561], [SWS_NvM_00560]। आरक्षित ब्लॉक ID 1 केवल तभी पास की जा सकती है जब NvMDynamicConfiguration को TRUE पर सेट किया गया हो [SWS_NvM_00311]।

हैंडओवर पर, फ़ंक्शन सफल स्वीकृति पर E_OK या E_NOT_OK लौटाता है [SWS_NvM_00793]। यदि संदर्भित ब्लॉक लॉक है, तो कॉल E_NOT_OK के साथ विफल हो जाता है और मॉड्यूल एक DET त्रुटि की रिपोर्ट करता है [SWS_NvM_00797]। ब्लॉक सुरक्षा की जाँच जॉब कतार में शामिल होने पर ही की जाती है और जॉब निष्पादन से पहले इसे दोबारा मान्य नहीं किया जाता है [SWS_NvM_00799]। यदि NVRAM ब्लॉक में तत्काल प्राथमिकता (immediate priority) है, तो चल रहे जॉब को तुरंत विनाशकारी रूप से निरस्त कर दिया जाता है और इस राइट जॉब को अगले जॉब के रूप में संसाधित किया जाता है [SWS_NvM_00800]।

NV मेमोरी में वास्तविक स्थानांतरण से पहले, यदि ब्लॉक CRC के साथ कॉन्फ़िगर किया गया है, तो जॉब एक CRC पुनर्गणना का अनुरोध करता है [SWS_NvM_00801]। एक अभी भी अमान्य स्थायी RAM ब्लॉक स्वचालित रूप से मान्य हो जाता है [SWS_NvM_00803]। रिडंडेंट ब्लॉक्स (NVM_BLOCK_REDUNDANT) के मामले में, दोनों NV ब्लॉक्स लिखे जाते हैं, जिसकी शुरुआत उस ब्लॉक से होती है जिसे पिछले रीड जॉब्स में नहीं पढ़ा गया था [SWS_NvM_00807], [SWS_NvM_00808]। राइट त्रुटियों के मामले में, पुनरावृत्तियों की संख्या NVM_MAX_NUM_OF_WRITE_RETRIES द्वारा सीमित होती है [SWS_NvM_00806]; ओवरफ्लो होने की स्थिति में, NvM जॉब परिणाम को NVM_REQ_NOT_OK पर सेट करता है [SWS_NvM_00804] और DEM को NVM_E_REQ_FAILED की रिपोर्ट करता है [SWS_NvM_00805]।

कनकर्डेंसी के संबंध में, निम्नलिखित लागू होता है: अंतर्निहित सिंक्रोनाइज़ेशन में, एप्लिकेशन को कॉल के बाद जॉब समाप्त होने तक बफ़र डेटा को संशोधित करने की अनुमति नहीं होती है, रीड एक्सेस की अनुमति बनी रहती है [SWS_NvM_00698]। स्पष्ट सिंक्रोनाइज़ेशन में, बफ़र को तब तक संशोधित किया जा सकता है जब तक कि कॉलबैक रूटीन NvMWriteRamBlockToNvCallback को कॉल नहीं किया जाता है [SWS_NvM_00705]।

यह पाठ एक AI द्वारा उत्पन्न किया गया था और विनिर्देश के आधार पर तकनीकी मार्गदर्शन के लिए कार्य करता है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: ffad126a6872 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और सिमेंटिक्स

फ़ंक्शन NvM_RestorePRAMBlockDefaults संबंधित स्थायी RAM ब्लॉक में डिफ़ॉल्ट डेटा को पुनर्स्थापित करता है ([SWS_NvM_00813], [SWS_NvM_00814])। सेवा एसिंक्रोनस रूप से काम करती है और पैरामीटर BlockId के माध्यम से NVRAM ब्लॉक डिस्क्रिप्टर का पहचानकर्ता स्वीकार करती है ([SWS_NvM_00813])। कॉल करने पर, अनुरोध को आंतरिक जॉब कतार में जोड़ दिया जाता है ([SWS_NvM_00815])। रिटर्न मान E_OK सफल स्वीकृति का संकेत देता है, जबकि E_NOT_OK अस्वीकृति को दर्शाता है ([SWS_NvM_00813])। यदि कोई ROM ब्लॉक कॉन्फ़िगर किया गया है, तो एसिंक्रोनस प्रोसेसिंग के भाग के रूप में डेटा उससे लोड किया जाता है ([SWS_NvM_00816])।

त्रुटि प्रबंधन और सीमा शर्तें

यदि ब्लॉक के लिए न तो ROM डिफ़ॉल्ट डेटा और न ही कोई कॉलबैक रूटीन NvMInitBlockCallback संग्रहीत है, तो ब्लॉक की स्थिति अपरिवर्तित रहती है और कॉल E_NOT_OK लौटाता है ([SWS_NvM_00884])। विकास त्रुटि पहचान (DET) सक्षम होने पर, विशिष्ट त्रुटियों की रिपोर्ट की जाती है:

  • NVM_E_UNINIT: मॉड्यूल अभी तक प्रारंभ नहीं हुआ है ([SWS_NvM_00831])।
  • NVM_E_PARAM_BLOCK_ID: पास की गई BlockId मान्य सीमा से बाहर है ([SWS_NvM_00834])।
  • NVM_E_BLOCK_PENDING: ब्लॉक ID के लिए एक जॉब पहले से ही कतारबद्ध है या निष्पादित हो रहा है ([SWS_NvM_00832])।
  • NVM_E_BLOCK_WITHOUT_DEFAULTS: न तो ROM डिफ़ॉल्ट डेटा मौजूद है और न ही कोई इनिशियलाइज़ेशन कॉलबैक ([SWS_NvM_00886])।
  • NVM_E_PARAM_ADDRESS: न तो स्थायी RAM ब्लॉक कॉन्फ़िगर किया गया है और न ही स्पष्ट सिंक्रोनाइज़ेशन ([SWS_NvM_00894])।

समवर्तीता और परस्पर क्रिया

सेवा को गैर-पुनःप्रवेशी ([SWS_NvM_00813]) के रूप में निर्दिष्ट किया गया है और यह API कॉन्फ़िगरेशन क्लास 2 और 3 में उपलब्ध है ([SWS_NvM_00561], [SWS_NvM_00560])। यही पुनर्प्राप्ति तर्क आंतरिक रूप से NvM_ReadPRAMBlock पर भी उपयोग किया जाता है यदि अंतर्निहित रीड प्रक्रिया विफल हो जाती है ([SWS_NvM_00789], [SWS_NvM_00882])।

यह उपयोग नोट AUTOSAR Classic Release R20-11 के विनिर्देशों पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन NvM_ReadAll [SWS_NvM_00460] 📄 PDF

void NvM_ReadAll (void);

Initiates a multi block read request.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: d6aaa62b8e91 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन NvM_ReadAll RAM डेटा ब्लॉकों को इनिशियलाइज़ करने के लिए एक मल्टी-ब्लॉक रीड अनुरोध को एसिंक्रोनस रूप से ट्रिगर करता है [SWS_NvM_00460], [SWS_NvM_00158]। इसमें कोई पैरामीटर नहीं होते हैं, यह कोई रिटर्न मान नहीं देता है और यह पुनःप्रवेशी (reentrant) नहीं है [SWS_NvM_00460]। कॉल NvM मॉड्यूल को अनुरोध का संकेत देता है और तुरंत वापस लौटता है; हालाँकि, वास्तविक निष्पादन तब तक विलंबित रहता है जब तक कि सभी एकल-ब्लॉक अनुरोध कतारें खाली न हो जाएँ [SWS_NvM_00243]।

प्रारंभ में, स्टार्टअप के दौरान अनुरोध संग्रहीत मान की संकलित मान के साथ तुलना करके कॉन्फ़िगरेशन ID को सत्यापित करता है [SWS_NvM_00073], [SWS_NvM_00246]:

  • यदि वे मेल खाते हैं, तो सभी कॉन्फ़िगर किए गए ब्लॉकों के लिए सामान्य तैयारी की जाती है [SWS_NvM_00247]।
  • यदि NvMDynamicConfiguration == FALSE सेट है, तो कॉन्फ़िगरेशन अंतर को नज़रअंदाज़ कर दिया जाता है [SWS_NvM_00248]।
  • यदि NvMDynamicConfiguration == TRUE और NvMResistantToChangedSw == FALSE है, तो बेमेल होने की स्थिति में एक विस्तारित तैयारी निष्पादित की जाती है [SWS_NvM_00249]।

इसके बाद, अनुरोध न्यूनतम ब्लॉक ID (आरक्षित IDs 0 और 1 को छोड़कर) से शुरू करते हुए सभी उपयोगकर्ता ब्लॉकों पर पुनरावृत्ति करता है [SWS_NvM_00244]। स्थायी RAM ब्लॉकों या कॉन्फ़िगर किए गए सिंक्रोनाइज़ेशन कॉलबैक वाले ब्लॉकों पर विचार किया जाता है NvM_ReadRamBlockFromNvm, बशर्ते NvmSelectBlockForReadall == TRUE कॉन्फ़िगर किया गया हो [SWS_NvM_00118]। न पढ़े गए लेकिन चयनित ब्लॉकों को परिणाम NVM_REQ_BLOCK_SKIPPED प्राप्त होता है [SWS_NvM_00287]।

रिडंडेंट ब्लॉकों (NVM_BLOCK_REDUNDANT) के मामले में, पहले पढ़ने के प्रयास के विफल होने पर दूसरा NV ब्लॉक स्वचालित रूप से पढ़ा जाता है [SWS_NvM_00288]। RAM में सफलतापूर्वक लोड होने के बाद, ब्लॉक स्थिति को \"valid/unmodified\" और अनुरोध परिणाम को NVM_REQ_OK पर सेट किया जाता है [SWS_NvM_00251], [SWS_NvM_00290], [SWS_NvM_00291]। NvMCalRamBlockCrC == TRUE वाले ब्लॉकों के लिए, अनुरोध एक CRC पुनर्गणना का अनुरोध करता है [SWS_NvM_00292]। यदि कॉन्फ़िगर किया गया हो, तो प्रत्येक ब्लॉक के लिए NvMSingleBlockCallback और अंतिम ब्लॉक के बाद MultiBlockCallback को कॉल किया जाता है [SWS_NvM_00281]।

यह उपयोग नोट AUTOSAR Classic R20-11 विनिर्देश आवश्यकताओं पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन NvM_WriteAll [SWS_NvM_00461] 📄 PDF

void NvM_WriteAll (void);

Initiates a multi block write request.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: a7a2e73b7711 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और कॉल संदर्भ

फ़ंक्शन NvM_WriteAll एक मल्टी-ब्लॉक राइट अनुरोध को एसिंक्रोनस रूप से ट्रिगर करता है और इसमें न तो पैरामीटर होते हैं और न ही रिटर्न मान [SWS_NvM_00461]। कॉल के बाद, फ़ंक्शन NvM मॉड्यूल को अनुरोध का संकेत देता है और तुरंत वापस लौटता है [SWS_NvM_00254]। वास्तविक प्रसंस्करण तब तक टाल दिया जाता है जब तक कि एकल-ब्लॉक अनुरोधों के लिए सभी कतारें पूरी तरह से संसाधित न हो जाएँ [SWS_NvM_00254]। यह कॉल आमतौर पर BSW Mode Manager द्वारा मूलभूत शटडाउन प्रक्रिया के भाग के रूप में की जाती है [SWS_NvM_00092]।

प्रक्रिया और ब्लॉक प्रसंस्करण

शटडाउन के दौरान, अनुरोध स्थायी RAM ब्लॉकों को संबंधित NV ब्लॉकों के साथ सिंक्रनाइज़ करता है या स्पष्ट सिंक्रोनाइज़ेशन कॉलबैक NvM_WriteRamBlockToNvm निष्पादित करता है [SWS_NvM_00018]। इसमें केवल उन्हीं ब्लॉकों पर विचार किया जाता है जिनके लिए कॉन्फ़िगरेशन पैरामीटर NvMSelectBlockForWriteAll को true पर सेट किया गया है [SWS_NvM_00252], साथ ही सक्रिय गतिशील कॉन्फ़िगरेशन के मामले में भिन्न कॉन्फ़िगरेशन ID होने पर ब्लॉक 1 पर विचार किया जाता है [SWS_NvM_00310]। यदि किसी NVRAM ब्लॉक के लिए CRC कॉन्फ़िगर किया गया है, तो अनुरोध राइट ऑपरेशन से पहले पुनर्गणना का अनुरोध करता है और चेकसम को अपडेट करता है [SWS_NvM_00253]। NvMWriteBlockOnce == TRUE वाले ब्लॉकों के लिए, अनुरोध सफल राइटिंग के तुरंत बाद प्रशासनिक ब्लॉक में राइट-प्रोटेक्शन फ़्लैग सेट करता है [SWS_NvM_00329]।

समवर्तीता और त्रुटि प्रबंधन

  • पुनःप्रवेश (Reentrancy): यह फ़ंक्शन पुनःप्रवेशी (reentrant) नहीं है [SWS_NvM_00461]।
  • त्रुटि निगरानी: अनंत लूपों से बचने के लिए, एक पुनः प्रयास काउंटर MemIf मॉड्यूल से असफल प्रतिक्रियाओं के मामले में पुनः प्रयास की निगरानी करता है [SWS_NvM_00296]।
  • अनुरोध परिणाम: यदि कम से कम एक ब्लॉक का प्रसंस्करण विफल रहता है, तो समग्र परिणाम NVM_REQ_NOT_OK पर सेट किया जाता है [SWS_NvM_00318]। कॉन्फ़िगर किए गए ब्लॉकों के लिए जिन्हें लिखा नहीं गया था, व्यक्तिगत परिणाम NVM_REQ_BLOCK_SKIPPED सेट किया जाता है [SWS_NvM_00298]। रिडंडेंट ब्लॉकों (NVM_BLOCK_REDUNDANT) के मामले में, एकल अनुरोध को NVM_REQ_OK माना जाता है जैसे ही कम से कम एक NV ब्लॉक सफलतापूर्वक लिखा जाता है [SWS_NvM_00337]।
  • निरस्तीकरण: चल रहे अनुरोध को NvM_CancelWriteAll द्वारा निरस्त किया जा सकता है [SWS_NvM_00019]। इससे समग्र परिणाम NVM_REQ_CANCELED प्राप्त होता है [SWS_NvM_00237], जिसमें वर्तमान में संसाधित ब्लॉक बिना नष्ट किए और डेटा-संगत रूप से पूरा किया जाता है [SWS_NvM_00238]।

यह पाठ AI द्वारा जनरेट किया गया था और मार्गदर्शन के रूप में कार्य करता है। AUTOSAR विनिर्देश ही प्रामाणिक है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन NvM_CancelWriteAll [SWS_NvM_00458] 📄 PDF

void NvM_CancelWriteAll (void);

Service to cancel a running Nv M_ Write All request.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 2a47a7f76a8b उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और सिमेंटिक्स

फ़ंक्शन NvM_CancelWriteAll एक चल रहे मल्टी-ब्लॉक राइट ऑपरेशन (NvM_WriteAll) को समय से पहले निरस्त करने का काम करता है [SWS_NvM_00458], [SWS_NvM_00019]। यह कॉल एसिंक्रोनस, गैर-पुनःप्रवेशी (non-reentrant) है, कोई पैरामीटर स्वीकार नहीं करता है और कोई रिटर्न मान नहीं देता है [SWS_NvM_00458]। फ़ंक्शन सीधे मॉड्यूल को निरस्त करने के अनुरोध का संकेत देता है और तुरंत वापस लौटता है [SWS_NvM_00232]। अनुरोध को जॉब कतार में नहीं रखा जाता है; इस प्रकार का केवल एक ही अनुरोध हर समय लंबित रह सकता है [SWS_NvM_00420]। यदि कॉल के समय कोई ऑपरेशन सक्रिय नहीं है, तो कॉल का कोई प्रभाव नहीं पड़ता है [SWS_NvM_00233]।

प्रक्रिया और डेटा स्थिरता

निरस्तीकरण इस प्रकार किया जाता है कि निरस्तीकरण के समय संसाधित किए जा रहे NVRAM ब्लॉक की डेटा स्थिरता प्रभावित न हो [SWS_NvM_00019]। मॉड्यूल इस सक्रिय ब्लॉक को नियमित रूप से समाप्त करता है और सफलता के आधार पर इसके स्थिति विशेषता (status attribute) को NVM_REQ_OK या NVM_REQ_NOT_OK पर सेट करता है, जबकि शेष सभी लंबित ब्लॉक्स को NVM_REQ_CANCELED पर सेट किया जाता है [SWS_NvM_00236]। समग्र परिणाम निरस्त किए गए ऑपरेशन के परिणाम द्वारा अंतर्निहित रूप से पूर्व निर्धारित होता है [SWS_NvM_00235], एक अलग चर में संग्रहीत किया जाता है [SWS_NvM_00393] और आरक्षित ब्लॉक ID 0 निर्दिष्ट करके NvM_GetErrorStatus के माध्यम से पूछताछ की जा सकती है [SWS_NvM_00394]। इसके अलावा, एक उच्च-स्तरीय कॉलबैक (NvMMultiBlockCallback) को वैकल्पिक रूप से सूचित किया जा सकता है [SWS_NvM_00260]। यदि NvMDrvModeSwitch के माध्यम से कॉन्फ़िगर किया गया है, तो जॉब निरस्तीकरण के बाद स्टोरेज उपकरणों को धीमी ऑपरेटिंग मोड (“slow-mode”) में स्विच कर देता है [SWS_NvM_00681]।

प्रतिबंध और त्रुटि प्रबंधन

NvM_CancelWriteAll का कॉल कार्यात्मक रूप से प्रतिबंधित है और इसे केवल BSW Mode Manager (BswM) द्वारा निष्पादित किया जाना चाहिए [SWS_NvM_00703]। इसके अतिरिक्त, यह फ़ंक्शन API कॉन्फ़िगरेशन क्लास 2 से संबंधित है [SWS_NvM_00561]। कॉल से पहले मॉड्यूल को प्रारंभ किया जाना आवश्यक है [SWS_NvM_00716]; सक्रिय विकास त्रुटि पहचान (DET) के साथ, अनइनिशियलाइज़्ड स्थिति में कॉल करने पर त्रुटि संदेश NVM_E_UNINIT प्राप्त होता है [SWS_NvM_00637]।

यह उपयोग संबंधी निर्देश AUTOSAR विनिर्देश R20-11 के आधार पर स्वचालित रूप से तैयार किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन NvM_ValidateAll [SWS_NvM_00855] 📄 PDF

void NvM_ValidateAll (void);

Initiates a multi block validation request.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 234ca1eec615 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन NvM_ValidateAll कई NVRAM ब्लॉक्स के एसिंक्रोनस सत्यापन को शुरू करता है ([SWS_NvM_00855]) और API कॉन्फ़िगरेशन क्लास 3 से संबंधित है ([SWS_NvM_00560])। यह गैर-पुनःप्रवेशी है, किसी पैरामीटर की अपेक्षा नहीं करता है और कोई रिटर्न मान नहीं देता है ([SWS_NvM_00855])। कॉल करने से पहले NvM मॉड्यूल प्रारंभ होना चाहिए ([SWS_NvM_00859])।

कॉल करने पर, फ़ंक्शन मॉड्यूल को अनुरोध का संकेत देता है और तुरंत वापस लौटता है ([SWS_NvM_00858])। हालांकि, वास्तविक प्रसंस्करण में तब तक देरी होती है जब तक कि सभी सिंगल-ब्लॉक जॉब कतारें पूरी तरह से संसाधित न हो जाएं ([SWS_NvM_00858])। मल्टी-ब्लॉक जॉब्स के लिए जॉब कतार में केवल एक ही स्थान उपलब्ध होता है ([SWS_NvM_00380])। एसिंक्रोनस जॉब का समग्र परिणाम एक अलग स्थिति चर में बनाए रखा जाता है ([SWS_NvM_00393])।

जॉब निष्पादन के भाग के रूप में, मल्टी-ब्लॉक परिणाम और प्रभावित अलग-अलग ब्लॉक्स के परिणाम दोनों को पहले से ही NVM_REQ_PENDING पर सेट किया जाता है ([SWS_NvM_00861])। प्रसंस्करण केवल उन ब्लॉक्स को ध्यान में रखता है जिनके लिए NvMBlockUseAutoValidation को TRUE पर कॉन्फ़िगर किया गया है ([SWS_NvM_00856], [SWS_NvM_00860]):

  • स्थायी RAM ब्लॉक्स संसाधित किए जाते हैं या कॉलबैक NvM_WriteRamBlockToNvm के माध्यम से स्पष्ट सिंक्रोनाइज़ेशन निष्पादित किया जाता है ([SWS_NvM_00860])।
  • RAM ब्लॉक की स्थिति “VALID / CHANGED” पर सेट की जाती है ([SWS_NvM_00856])।
  • यदि RAM में CRC गणना भी कॉन्फ़िगर की गई है, तो जॉब पृष्ठभूमि में पुनर्गणना का अनुरोध करता है, जिसे NvM_MainFunction के माध्यम से संसाधित किया जाता है ([SWS_NvM_00857])।
  • RAM ब्लॉक के सफल सत्यापन के बाद, ब्लॉक-विशिष्ट परिणाम NVM_REQ_OK में बदल जाता है ([SWS_NvM_00862])।

यह उपयोग नोट AUTOSAR विनिर्देश R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 97732570bd55 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन NvM_FirstInitAll कई कॉन्फ़िगर किए गए ब्लॉक्स के एसिंक्रोनस प्रारंभिक आरंभीकरण को शुरू करता है ([SWS_NvM_91001])। यह सेवा गैर-पुनःप्रवेशी है, किसी पैरामीटर की अपेक्षा नहीं करती है और कोई रिटर्न मान नहीं देती है ([SWS_NvM_91001])। प्रसंस्करण के दौरान, यह ध्यान में नहीं रखा जाता है कि गैर-वाष्पशील मेमोरी में कोई ब्लॉक पहले से मौजूद है या मान्य है अथवा दूषित (corrupted) है ([SWS_NvM_91001])। मल्टी-ब्लॉक जॉब्स (अन्य के अलावा NvM_FirstInitAll से) के लिए कतार की लंबाई एक है, जिससे एक समय में केवल एक ही मल्टी-ब्लॉक जॉब कतारबद्ध किया जा सकता है ([SWS_NvM_00380])।

प्रसंस्करण ब्लॉक के प्रबंधन प्रकार के अनुसार भिन्न होता है:

  • NATIVE: यदि डिफ़ॉल्ट डेटा उपलब्ध है, तो NV ब्लॉक को इसके साथ लिखा जाता है ([SWS_NvM_00913])। यदि ब्लॉक में स्थायी RAM या स्पष्ट सिंक्रोनाइज़ेशन है, तो RAM को डिफ़ॉल्ट डेटा (ROM या Init कॉलबैक) के साथ NvM_RestoreBlockDefaults की तरह अपडेट किया जाता है ([SWS_NvM_00915]); स्थायी RAM और स्पष्ट सिंक्रोनाइज़ेशन के बिना, आंतरिक NvM बफ़र RAM के रूप में कार्य करता है, जिसमें RAM स्थिति अप्रभावित रहती है ([SWS_NvM_00914])। यदि डिफ़ॉल्ट डेटा गायब है ([SWS_NvM_00919]) या कोई कॉन्फ़िगर किया गया Init कॉलबैक E_OK के अलावा किसी रिटर्न मान के साथ विफल हो जाता है ([SWS_NvM_00921]), तो ब्लॉक को अमान्य कर दिया जाता है।
  • REDUNDANT: यदि डिफ़ॉल्ट डेटा मौजूद है, तो दोनों ब्लॉक इंस्टेंस इसके साथ लिखे जाते हैं ([SWS_NvM_00916]) और स्थायी RAM या स्पष्ट सिंक्रोनाइज़ेशन मौजूद होने पर RAM को अपडेट किया जाता है ([SWS_NvM_00918]); अन्यथा आंतरिक बफ़र का उपयोग किया जाता है ([SWS_NvM_00917])। यदि कोई Init कॉलबैक E_OK नहीं लौटाता है, तो दोनों इंस्टेंस अमान्य हो जाते हैं ([SWS_NvM_00922])।
  • DATASET: इस प्रकार के प्रसंस्करण के लिए कॉन्फ़िगर किए गए सभी ब्लॉक्स या NV ब्लॉक इंस्टेंस बिना किसी अपवाद के अमान्य कर दिए जाते हैं ([SWS_NvM_00923], [SWS_NvM_00924])।

यदि डिफ़ॉल्ट डेटा के साथ NATIVE ब्लॉक को लिखना ([SWS_NvM_00925]), NATIVE ब्लॉक का अमान्यीकरण ([SWS_NvM_00927]) या REDUNDANT ब्लॉक के दोनों इंस्टेंस को लिखना ([SWS_NvM_00926]) विफल हो जाता है, तो जॉब समग्र परिणाम को NVM_REQ_NOT_OK पर सेट करता है।

यह पाठ R20-11 विनिर्देश के आधार पर एक AI द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 44e91f5e39db उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

सिंक्रोनस कॉलबैक फ़ंक्शन NvM_JobEndNotification को अंतर्निहित मेमोरी एब्स्ट्रैक्शन द्वारा NVRAM मैनेजर को किसी जॉब के त्रुटि-रहित समापन का संकेत देने के लिए कॉल किया जाता है [SWS_NvM_00462]। फ़ंक्शन में न तो कोई पैरामीटर है और न ही कोई रिटर्न मान है, और यह हेडर फ़ाइल NvM_MemIf.h के माध्यम से सर्विस ID 0x11 के साथ उपलब्ध है [SWS_NvM_00462]। मेमोरी एब्स्ट्रैक्शन की एक सफल अधिसूचना में त्रुटि-रहित रूप से पूर्ण किए गए रीड, राइट या इरेज़ ऑपरेशंस शामिल हैं [SWS_NvM_00111]।

समवर्तीता और प्रतिबंध

इंटरफ़ेस को गैर-पुनःप्रवेशी (non-reentrant) के रूप में निर्दिष्ट किया गया है [SWS_NvM_00462]। मेमोरी एब्स्ट्रैक्शन के भीतर कॉलिंग फ़ंक्शन के आधार पर, यह रूटीन इंटरप्ट संदर्भ में निष्पादित किया जा सकता है [SWS_NvM_00111]। मेमोरी एब्स्ट्रैक्शन के सभी मॉड्यूलों को इस तरह से कॉन्फ़िगर किया जाना चाहिए कि वे समान रूप से एक ही मोड — कॉलबैक या पोलिंग — का उपयोग करें [SWS_NvM_00111]।

कॉन्फ़िगरेशन और परस्पर क्रिया

NvM मॉड्यूल केवल तभी कॉलबैक फ़ंक्शन NvM_JobEndNotification प्रदान करता है जब कॉन्फ़िगरेशन पैरामीटर NvMPollingMode के माध्यम से पोलिंग मोड अक्षम हो [SWS_NvM_00440]। इसके अतिरिक्त, यह फ़ंक्शन सामान्य NvM कॉन्फ़िगरेशन पैरामीटर्स से प्रभावित होता है [SWS_NvM_00440]।

यह उपयोग नोट AUTOSAR विनिर्देश R20-11 पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: aca80117b4e4 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

कॉलबैक फ़ंक्शन NvM_JobErrorNotification ([SWS_NvM_00463]) का उपयोग अंतर्निहित मेमोरी एब्स्ट्रैक्शन लेयर द्वारा NVRAM मैनेजर मॉड्यूल (NvM) को एक एसिंक्रोनस जॉब के त्रुटिपूर्ण समापन का संकेत देने के लिए किया जाता है। कॉल सिंक्रोनस रूप से की जाती है और इसे गैर-पुनःप्रवेशी (non-reentrant) के रूप में निर्दिष्ट किया गया है ([SWS_NvM_00463])।

उपयोग और सिग्नेचर

  • इंटरफ़ेस: फ़ंक्शन डिक्लेरेशन हेडर फ़ाइल NvM_MemIf.h के माध्यम से उपलब्ध कराया जाता है ([SWS_NvM_00463])।
  • हस्ताक्षर (Signature): void NvM_JobErrorNotification(void) के अनुसार, फ़ंक्शन में न तो इनपुट, आउटपुट, या इनपुट/आउटपुट पैरामीटर होते हैं और न ही यह कोई रिटर्न मान देता है ([SWS_NvM_00463])।
  • सर्विस-ID: फ़ंक्शन की पहचान हेक्साडेसिमल पहचानकर्ता 0x12 द्वारा की जाती है ([SWS_NvM_00463])।

कॉन्फ़िगरेशन निर्भरता और परस्पर क्रिया

मॉड्यूल NvM केवल तभी कॉलबैक फ़ंक्शन NvM_JobErrorNotification प्रदान करता है जब कॉन्फ़िगरेशन पैरामीटर NvMPollingMode के माध्यम से पोलिंग मोड अक्षम हो ([SWS_NvM_00441])। यदि पोलिंग का उपयोग किया जाता है, तो यह अधिसूचना तंत्र समाप्त हो जाता है। इसके अलावा, फ़ंक्शन [SWS_NvM_00028] पाठ अभी आयात नहीं हुआ के अनुसार सामान्य कॉन्फ़िगरेशन पैरामीटर्स से प्रभावित होता है ([SWS_NvM_00441])।

त्रुटि हैंडलिंग और समवर्तीता

फ़ंक्शन केवल जॉब्स की त्रुटि रिपोर्टिंग के लिए कार्य करता है और न तो अपने स्वयं के त्रुटि कोड परिभाषित करता है और न ही DET या DEM फ़ीडबैक ([SWS_NvM_00463])। Non Reentrant के रूप में वर्गीकरण के कारण, संभवतः मेमोरी एब्स्ट्रैक्शन में कॉलर की यह सुनिश्चित करने की जिम्मेदारी है कि कोई ओवरलैपिंग या इंटरप्टिंग कॉल न हो ([SWS_NvM_00463])। प्रश्न Q-5f72d9d605c25922 (खुला)

यह उपयोग नोट विनिर्देश AUTOSAR Classic R20-11 के आधार पर स्वचालित रूप से जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन NvM_MainFunction [SWS_NvM_00464] 📄 PDF

void NvM_MainFunction (void);

Service for performing the processing of the Nv M jobs.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: e37fc51f7baf उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

फ़ंक्शन NvM_MainFunction में न तो कोई इनपुट पैरामीटर है और न ही कोई रिटर्न मान है (void NvM_MainFunction(void)) और इसे SchM_NvM.h के माध्यम से घोषित किया गया है ([SWS_NvM_00464])। यह NVRAM मैनेजर जॉब्स को संसाधित करने का काम करता है ([SWS_NvM_00464], [SWS_NvM_00256])। एक एसिंक्रोनस सेवा के पूरा होने के बाद, यह ऊपरी लेयर को सूचित करने के लिए कॉन्फ़िगर किए गए कॉलबैक रूटीन्स को निष्पादित करता है ([SWS_NvM_00347])। इसके अतिरिक्त, यह NVRAM ब्लॉक्स के लिए पृष्ठभूमि में अनुरोधित CRC पुनर्गणना को संभालता है ([SWS_NvM_00333]), जैसे कि NvM_SetRamBlockStatus ([SWS_NvM_00121]) या NvM_ValidateAll ([SWS_NvM_00857]) के परिणामस्वरूप।

प्रक्रिया नियंत्रण और प्राथमिकता निर्धारण

यदि कॉन्फ़िगर किया गया है, तो फ़ंक्शन तत्काल प्राथमिकता वाले अनुरोधों के लिए इमीडिएट-प्रायोरिटी-कतार की निगरानी करता है ([SWS_NvM_00259])। यदि एक नियमित अनुरोध तत्काल जॉब द्वारा विनाशकारी रूप से (destructively) निरस्त कर दिया गया था, तो NvM_MainFunction इसके पूरा होने के बाद इसे पुनरारंभ करता है ([SWS_NvM_00258])। सक्रिय पोलिंग मोड में, यह निचली लेयर को सौंपे गए जॉब्स की स्थिति की जाँच करता है ([SWS_NvM_00346])। NvM_WriteAll के प्रसंस्करण के दौरान, यह MEMIF_BROADCAST_ID के लिए MemIf_GetStatus के माध्यम से मेमोरी ड्राइवर एब्स्ट्रैक्शन की स्थिति के बारे में चक्रीय रूप से पूछताछ करता है और ऊपरी लेयर के लिए कॉलबैक को तब तक रोके रखता है जब तक कि MEMIF_BUSY_INTERNAL की रिपोर्ट की जाती है ([SWS_NvM_00350])।

त्रुटि प्रबंधन और पुनरावृत्तियाँ

यदि एप्लिकेशन-विशिष्ट कॉलबैक विफल हो जाते हैं, तो NvM_MainFunction पुन: प्रयास (retry attempts) को नियंत्रित करता है:

  • यदि NvMReadRamBlockFromNvCallback मान E_NOT_OK लौटाता है, तो मॉड्यूल NvM_MainFunction के अगले चक्र में कॉल को दोहराता है ([SWS_NvM_00839])।
  • यदि NvMWriteRamBlockToNvCallback मान E_NOT_OK देता है, तो पुनरावृत्ति NvM_MainFunction के अगले कॉल में भी होती है ([SWS_NvM_00840])।
  • यदि NvM_SetRamBlockStatus पर स्पष्ट सिंक्रोनाइज़ेशन कॉलबैक E_NOT_OK लौटाता है, तो मॉड्यूल NvM_MainFunction के प्रति कॉल एक प्रयास के साथ कॉन्फ़िगर किए गए पुन: प्रयासों को निष्पादित करता है ([SWS_NvM_00908])।

यह पाठ AUTOSAR विनिर्देश R20-11 के आधार पर AI द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I2)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: f9058239e263 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग

कॉलबैक रूटीन NvM_SingleBlockCallbackFunction पहले शुरू किए गए एसिंक्रोनस सिंगल-ब्लॉक अनुरोध के पूरा होने पर ओवरलेइंग लेयर को सिंक्रोनस रूप से सूचित करता है [SWS_NvM_00467]।

फ़ंक्शन दो इनपुट पैरामीटर्स को संसाधित करता है [SWS_NvM_00467]:

  • BlockRequest (प्रकार NvM_BlockRequestType): पहले निष्पादित ब्लॉक अनुरोध के प्रकार को पास करता है, जैसे कि रीड या राइट ऑपरेशंस [SWS_NvM_00467]।
  • JobResult (प्रकार NvM_RequestResultType): संसाधित ब्लॉक जॉब के समग्र परिणाम की रिपोर्ट करता है [SWS_NvM_00467]।

एक रिटर्न मान के रूप में, फ़ंक्शन प्रकार Std_ReturnType लौटाता है [SWS_NvM_00467]। कॉलबैक का सफल निष्पादन E_OK की वापसी द्वारा दर्शाया जाता है; कोई भी अन्य रिटर्न मान एक असफल निष्पादन को इंगित करता है [SWS_NvM_00467]।

त्रुटि हैंडलिंग और समवर्तीता

इंटरफ़ेस अपने स्वयं के DET या DEM त्रुटि संदेश निर्दिष्ट नहीं करता है [SWS_NvM_00467]। पिछले जॉब का परिणाम पैरामीटर JobResult के माध्यम से प्रेषित किया जाता है, जबकि कॉलबैक प्रसंस्करण के भीतर की त्रुटियों की रिपोर्ट फ़ंक्शन रिटर्न मान के माध्यम से ही की जाती है [SWS_NvM_00467]।

कनकर्डेंसी के संबंध में, रूटीन को गैर-पुनःप्रवेशी (Non Reentrant) घोषित किया गया है [SWS_NvM_00467]। यह हेडर NvM_Externals.h के माध्यम से प्रदान किया जाता है [SWS_NvM_00467]। NvM मॉड्यूल द्वारा कॉल चक्रीय NvM जॉब निष्पादन के टास्क संदर्भ में सिंक्रोनस रूप से होना चाहिए (व्याख्या)। प्रश्न Q-f50640211851274f (खुला)

यह उपयोग नोट AUTOSAR R20-11 विनिर्देश के आधार पर एक AI द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन 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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: a3c38e2b6191 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

कॉलबैक रूटीन NvM_MultiBlockCallbackFunction उच्च-स्तरीय लेयर को सूचित करता है कि पहले शुरू किया गया एक एसिंक्रोनस मल्टी-ब्लॉक जॉब पूरा हो गया है [SWS_NvM_00468]। फ़ंक्शन की घोषणा हेडर फ़ाइल NvM_Externals.h के माध्यम से प्रदान की जाती है [SWS_NvM_00468]।

कॉल संदर्भ और पैरामीटर

NVRAM मैनेजर द्वारा कॉल प्रोसेसिंग प्रवाह में निष्पादन के साथ सिंक्रोनस रूप से की जाती है [SWS_NvM_00468]। कॉल किए जाने पर रूटीन को दो पैरामीटर पास किए जाते हैं:

  • MultiBlockRequest (प्रकार NvM_MultiBlockRequestType): पहले संसाधित मल्टी-ब्लॉक जॉब के विशिष्ट अनुरोध प्रकार को निर्दिष्ट करता है, जैसे कि रीड या राइट एक्सेस [SWS_NvM_00468]।
  • JobResult (प्रकार NvM_RequestResultType): पूर्ववर्ती मल्टी-ब्लॉक जॉब के प्रसंस्करण के अंतिम परिणाम को उच्च-स्तरीय लेयर तक पहुँचाता है [SWS_NvM_00468]।

रिटर्न मान और त्रुटि प्रबंधन

रूटीन कॉलिंग मॉड्यूल को प्रकार Std_ReturnType का एक मान लौटाता है [SWS_NvM_00468]। रिटर्न मान E_OK इंगित करता है कि कॉलबैक फ़ंक्शन सफलतापूर्वक संसाधित हो गया था; इसके विपरीत, कोई भी अन्य रिटर्न मान असफल प्रसंस्करण का संकेत देता है [SWS_NvM_00468]। इस फ़ंक्शन के विनिर्देश दायरे में विशिष्ट त्रुटि कोड, DET या DEM संदेश परिभाषित नहीं हैं। व्याख्या: E_OK के असमान रिटर्न मान के ठोस परिणाम कार्यान्वयन-विशिष्ट होने की संभावना है, क्योंकि मानक डाउनस्ट्रीम त्रुटि प्रबंधन निर्धारित नहीं करता है। प्रश्न Q-462dea7f3074ae9c (खुला)

समवर्तीता और प्रतिबंध

फ़ंक्शन को गैर-पुनःप्रवेशी (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_NvM_00468]। इसलिए कॉलिंग सिस्टम के भीतर यह सुनिश्चित किया जाना चाहिए कि इस कॉलबैक इंटरफ़ेस के कोई समवर्ती (concurrent) या बाधित करने वाले मल्टीपल कॉल्स न हों।

यह पाठ विनिर्देश के आधार पर एक AI द्वारा जनरेट किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन 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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 6fa779cf7b62 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

उपयोग और कॉल संदर्भ

उपयोगकर्ता-विशिष्ट कॉलबैक रूटीन NvM_InitBlockCallbackFunction को NvM मॉड्यूल द्वारा तब कॉल किया जाता है जब RAM में NVRAM ब्लॉक के लिए डिफ़ॉल्ट डेटा पुनर्स्थापित किया जाना होता है और कोई संगत ROM ब्लॉक कॉन्फ़िगर नहीं होता है [SWS_NvM_00469]। कॉल सिंक्रोनस रूप से की जाती है और इंटरफ़ेस हेडर NvM_Externals.h के माध्यम से घोषित किया जाता है [SWS_NvM_00469]।

इनपुट पैरामीटर के रूप में, फ़ंक्शन प्रकार NvM_InitBlockRequestType का InitBlockRequest प्राप्त करता है [SWS_NvM_00469]। यह मान रूटीन को वर्तमान में संसाधित ब्लॉक के विशिष्ट अनुरोध प्रकार के बारे में सूचित करता है, जैसे कि डेटा को पढ़ना या पुनर्स्थापित करना (read, restore) [SWS_NvM_00469]।

रिटर्न मान और त्रुटि प्रबंधन

रूटीन प्रकार Std_ReturnType का एक स्थिति मान लौटाता है [SWS_NvM_00469]:

  • E_OK: NvM मॉड्यूल को संकेत देता है कि कॉलबैक फ़ंक्शन ने RAM में डेटा को सफलतापूर्वक प्रारंभ और संसाधित कर दिया है [SWS_NvM_00469]।
  • कोई अन्य रिटर्न मान: इंगित करता है कि आरंभीकरण सफलतापूर्वक पूरा नहीं हो सका [SWS_NvM_00469]।

DET या DEM के लिए विशिष्ट त्रुटि कोड स्वयं इंटरफ़ेस के लिए निर्दिष्ट नहीं हैं [SWS_NvM_00469]।

कनकर्डेंसी और निष्पादन प्रतिबंध

इंटरफ़ेस को सिंक्रोनस और गैर-पुनःप्रवेशी (Non Reentrant) के रूप में परिभाषित किया गया है [SWS_NvM_00469]। चूंकि NVRAM Manager फ़ंक्शन की वापसी की सिंक्रोनस रूप से प्रतीक्षा करता है, इसलिए रूटीन के भीतर एक ब्लॉकिंग निष्पादन संभवतः NvM के आगे के प्रसंस्करण को तुरंत रोक देगा (व्याख्या)। प्रश्न Q-c0e43c9871c4f2d0 (खुला)

यह उपयोग नोट AUTOSAR विनिर्देश R20-11 के आधार पर एक AI द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 5243b53cfd03 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

ब्लॉक-विशिष्ट कॉलबैक फ़ंक्शन NvM_WriteRamBlockToNvm का उपयोग स्पष्ट सिंक्रोनाइज़ेशन के लिए RAM ब्लॉक से एप्लिकेशन डेटा को NvM मॉड्यूल के आंतरिक RAM मिरर में कॉपी करने के लिए किया जाता है [SWS_NvM_00539]। यह NvM_Externals.h के माध्यम से घोषणात्मक रूप से उपलब्ध है और NvM द्वारा सिंक्रोनस रूप से कॉल किया जाता है [SWS_NvM_00539]।

उपयोग और पैरामीटर

फ़ंक्शन आउटपुट पैरामीटर के रूप में पॉइंटर NvMBuffer पास करता है, जो NvM मिरर के गंतव्य पते का प्रतिनिधित्व करता है जहाँ डेटा लिखा जाना चाहिए [SWS_NvM_00539]। रिटर्न मान के रूप में, कॉलबैक रूटीन सफल प्रसंस्करण पर E_OK या त्रुटिपूर्ण प्रक्रिया पर कोई अन्य मान लौटाता है [SWS_NvM_00539]।

समवर्तीता और प्रतिबंध

विनिर्देश के अनुसार, NvM_WriteRamBlockToNvm को गैर-पुनःप्रवेशी (Non Reentrant) डिज़ाइन किया गया है [SWS_NvM_00539]।

मॉड्यूल में परस्पर क्रिया

  • शटडाउन के दौरान, जॉब NvM_WriteAll स्थायी RAM ब्लॉक्स को सिंक्रनाइज़ करता है या स्पष्ट सिंक्रोनाइज़ेशन के लिए कॉलबैक रूटीन NvM_WriteRamBlockToNvm को कॉल करता है [SWS_NvM_00018], बशर्ते NVRAM ब्लॉक के लिए पैरामीटर NvMSelectBlockForWriteAll को true पर कॉन्फ़िगर किया गया हो [SWS_NvM_00252]।
  • राइट जॉब्स NvM_WriteBlock [SWS_NvM_00303] और NvM_WritePRAMBlock [SWS_NvM_00803] NvM_WriteRamBlockToNvm के कॉल के बाद एक अभी भी अमान्य स्थायी RAM ब्लॉक को स्वचालित रूप से मान्य करते हैं।

यह पाठ AUTOSAR विनिर्देश R20-11 के आधार पर AI द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

फ़ंक्शन 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.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 1b2c937c4017 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

फ़ंक्शन NvM_ReadRamBlockFromNvm एक ब्लॉक-विशिष्ट कॉलबैक रूटीन है जिसे NvM_Externals.h के माध्यम से घोषित किया जाता है [SWS_NvM_00540]। इसका उद्देश्य स्पष्ट सिंक्रोनाइज़ेशन करने के लिए एप्लिकेशन को NvM मॉड्यूल के आंतरिक मिरर बफ़र से डेटा को संबंधित RAM ब्लॉक में कॉपी करने में सक्षम बनाना है [SWS_NvM_00540], [SWS_NvM_00118]।

उपयोग और सिमेंटिक्स

  • कॉल संदर्भ और कनकर्डेंसी: कॉल सिंक्रोनस रूप से की जाती है और इसे गैर-पुनःप्रवेशी (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_NvM_00540]।
  • पैरामीटर: पॉइंटर NvMBuffer (प्रकार const void*) इनपुट पैरामीटर के रूप में कार्य करता है। यह बफ़र पता पास करता है जिससे डेटा पढ़ा जा सकता है और RAM ब्लॉक में कॉपी किया जा सकता है [SWS_NvM_00540]।
  • रिटर्न मान और त्रुटि प्रबंधन: कॉलबैक फ़ंक्शन एक Std_ReturnType लौटाता है। रिटर्न मान E_OK सफल प्रसंस्करण का संकेत देता है; कोई भी अन्य रिटर्न मान असफल प्रसंस्करण को इंगित करता है [SWS_NvM_00540]।

इंटरैक्शन

मल्टी-ब्लॉक सेवा NvM_ReadAll के भाग के रूप में, उन NVRAM ब्लॉक्स के लिए स्पष्ट सिंक्रोनाइज़ेशन हेतु NvM_ReadRamBlockFromNvm को कॉल किया जाता है जो तदनुसार कॉन्फ़िगर किए गए हैं और जिनके लिए NvmSelectBlockForReadall == TRUE लागू होता है [SWS_NvM_00118], [SWS_NvM_00356]। यह स्थायी RAM ब्लॉक्स में सीधे कॉपी करने की प्रक्रिया का विकल्प प्रस्तुत करता है, जबकि NvM_ReadAll ब्लॉक्स के प्रशासनिक डेटा को प्रारंभ करता है [SWS_NvM_00356]।

यह पाठ विनिर्देश आवश्यकताओं के आधार पर एक AI प्रणाली द्वारा उत्पन्न किया गया था।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

टाइप 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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: e84ff8330bcb उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

गणना प्रकार (enumeration type) NvM_MultiBlockRequestType हेडर फ़ाइल NvM.h के माध्यम से प्रदान किया जाता है और निष्पादित मल्टी-ब्लॉक अनुरोध [SWS_NvM_91003] की विशिष्ट पहचान के लिए कार्य करता है। इस प्रकार का उपयोग तब किया जाता है जब किसी मल्टी-ब्लॉक ऑपरेशन का परिणाम या स्थिति किसी कॉलबैक फ़ंक्शन के माध्यम से संकेतित की जाती है या मॉड्यूल BswM को रिपोर्ट की जाती है [SWS_NvM_91003]।

मान श्रेणी और सिमेंटिक्स

यह गणना मल्टी-ब्लॉक कार्यों में अंतर करने के लिए निम्नलिखित मानों को परिभाषित करती है [SWS_NvM_91003]:

  • NVM_READ_ALL (0x00): इंगित करता है कि NvM_ReadAll निष्पादित किया गया था।
  • NVM_WRITE_ALL (0x01): इंगित करता है कि NvM_WriteAll निष्पादित किया गया था।
  • NVM_VALIDATE_ALL (0x02): इंगित करता है कि NvM_ValidateAll निष्पादित किया गया था।
  • NVM_FIRST_INIT_ALL (0x03): इंगित करता है कि NvM_FirstInitAll निष्पादित किया गया था।
  • NVM_CANCEL_WRITE_ALL (0x04): इंगित करता है कि NvM_CancelWriteAll निष्पादित किया गया था।

इंटरैक्शन

इस प्रकार को पास करने से, कॉल किए गए कॉलबैक और BswM यह निर्धारित कर सकते हैं कि किस विशिष्ट मल्टी-ब्लॉक सेवा ने सूचना ट्रिगर की है। व्याख्या: संभवतः BswM को दिया जाने वाला फ़ीडबैक समग्र सिस्टम में आगामी कार्रवाइयों या स्थिति परिवर्तनों को विशिष्ट मल्टी-ब्लॉक सेवाओं के समापन के साथ जोड़ने का कार्य करता है। प्रश्न Q-69b4d985301acfeb (खुला)

यह पाठ एक AI द्वारा जनरेट किया गया था और मार्गदर्शन के रूप में कार्य करता है। संदर्भित विनिर्देश ही प्रामाणिक हैं।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

टाइप NvM_RequestResultType [SWS_NvM_00470] 📄 PDF

Type NvM_RequestResultType.

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 49d0056a8c31 उद्गम
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

प्रकार NvM_RequestResultType uint8 पर आधारित है, Rte_NvM_Type.h के माध्यम से उपलब्ध है और NVRAM मैनेजर के रीड, राइट और नियंत्रण अनुरोधों के एसिंक्रोनस अनुरोध परिणाम का प्रतिनिधित्व करता है [SWS_NvM_00470]। परिणाम को मुख्य रूप से API सेवा NvM_GetErrorStatus के माध्यम से क्वेरी किया जाता है और अतिरिक्त रूप से एक कॉन्फ़िगर किए गए कॉलबैक फ़ंक्शन के माध्यम से संकेतित किया जा सकता है [SWS_NvM_00470]।

मान सीमा विभिन्न निष्पादन स्थितियों और त्रुटि स्थितियों का प्रतिनिधित्व करती है [SWS_NvM_00470]:

  • NVM_REQ_OK (0x00): अंतिम एसिंक्रोनस अनुरोध सफलतापूर्वक समाप्त हुआ; यह रीसेट के बाद का डिफ़ॉल्ट मान भी है।
  • NVM_REQ_NOT_OK (0x01): एसिंक्रोनस रीड, राइट या नियंत्रण अनुरोध सफलतापूर्वक समाप्त नहीं हुआ।
  • NVM_REQ_PENDING (0x02): एक एसिंक्रोनस अनुरोध वर्तमान में अभी भी प्रक्रियाधीन है।
  • NVM_REQ_INTEGRITY_FAILED (0x03): NvM_ReadBlock या NvM_ReadAll के मामले में डेटा अखंडता त्रुटि। NvM_ReadBlock के मामले में RAM ब्लॉक की सामग्री बदल दी गई है, लेकिन अमान्य हो गई है; सामग्री को नवीनीकृत और मान्य करने के लिए एप्लिकेशन ज़िम्मेदार है।
  • NVM_REQ_BLOCK_SKIPPED (0x04): संदर्भित ब्लॉक को NvM_ReadAll या NvM_WriteAll के दौरान छोड़ दिया गया था (उदा. NvM_ReadAll के मामले में डेटासेट NVRAM ब्लॉक या स्थायी रूप से कॉन्फ़िगर किए गए RAM ब्लॉक के बिना ब्लॉक)।
  • NVM_REQ_NV_INVALIDATED (0x05): संदर्भित NV ब्लॉक अमान्य (invalidated) है।
  • NVM_REQ_CANCELED (0x06): NvM_CancelWriteAll द्वारा NvM_WriteAll का निरस्तीकरण या NvM_CancelJobs द्वारा एकल ब्लॉक अनुरोध (NvM_ReadBlock, NvM_WriteBlock, NvM_EraseNvBlock, NvM_InvalidateNvBlock, NvM_RestoreBlockDefaults) का निरस्तीकरण।
  • NVM_REQ_RESTORED_DEFAULTS (0x08): डिफ़ॉल्ट मान सफलतापूर्वक RAM छवि में कॉपी किए गए हैं।

रिडंडेंट ब्लॉकों (NVM_BLOCK_REDUNDANT) के साथ संयोजन में, फ़ंक्शन NvM_InvalidateNvBlock अनुरोध परिणाम NvM_RequestResultType को NVM_REQ_OK पर केवल तभी सेट करता है जब दोनों NV ब्लॉक अमान्य कर दिए गए हों [SWS_NvM_00274]।

यह पाठ स्वचालित रूप से उत्पन्न हुआ था। सभी विवरण पूरी तरह से AUTOSAR संस्करण R20-11 की विनिर्देश आवश्यकताओं पर आधारित हैं।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

टाइप 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

टाइप NvM_InitBlockRequestType [SWS_NvM_91123] 📄 PDF

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: f4f68ded6ba5 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

डेटा प्रकार NvM_InitBlockRequestType, uint8 पर आधारित है और हेडर फ़ाइल Rte_NvM_Type.h के माध्यम से प्रदान किया जाता है [SWS_NvM_91123]। यह किसी NVRAM ब्लॉक पर निष्पादित किए गए अनुरोध के प्रकार की पहचान करने का कार्य करता है, जब इसे संबंधित कॉलबैक फ़ंक्शन के माध्यम से संकेतित किया जाता है [SWS_NvM_91123]।

अनुमत मान श्रेणी में चार अनुरोध प्रकार शामिल हैं [SWS_NvM_91123]:

  • NVM_INIT_READ_BLOCK (0x00): इंगित करता है कि ब्लॉक के लिए NvM_ReadBlock या NvM_ReadPRAMBlock का अनुरोध किया गया था [SWS_NvM_91123]।
  • NVM_INIT_RESTORE_BLOCK_DEFAULTS (0x01): संकेत देता है कि ब्लॉक के लिए NvM_RestoreBlockDefaults या NvM_RestorePRAMBlockDefaults का अनुरोध किया गया था [SWS_NvM_91123]।
  • NVM_INIT_READ_ALL_BLOCK (0x02): इंगित करता है कि ब्लॉक का प्रसंस्करण NvM_ReadAll के भाग के रूप में होता है [SWS_NvM_91123]।
  • NVM_INIT_FIRST_INIT_ALL (0x03): NvM_FirstInitAll के निष्पादन के दौरान ब्लॉक प्रसंस्करण की पहचान करता है [SWS_NvM_91123]।

इस गणना मान के आधार पर, कॉल किया गया एप्लिकेशन लॉजिक यह अंतर कर सकता है कि क्या यह एक स्पष्ट एकल-ब्लॉक अनुरोध (डिफ़ॉल्ट मानों को पढ़ना या पुनर्स्थापित करना) है या सिस्टम स्टार्टअप के दौरान एक वैश्विक सामूहिक ऑपरेशन है [SWS_NvM_91123]। व्याख्या: इस प्रकार को ब्लॉक-संबंधित इनिशियलाइज़ेशन कॉलबैक में पैरामीटर के रूप में पास किए जाने की संभावना है, ताकि एप्लिकेशन स्थिति के अनुसार डिफ़ॉल्ट डेटा प्रदान कर सके या विशिष्ट तैयारियां कर सके। प्रश्न Q-42d0d469e305728e (खुला)

यह उपयोग नोट AUTOSAR Classic Release R20-11 के विनिर्देश पर आधारित है।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता I1)

टाइप NvM_BlockRequestType [SWS_NvM_91002] 📄 PDF

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

एआई-जनित असत्यापित मॉडल: gemini-3.8-flash-medium · प्रयास: medium · तापमान: नियंत्रित नहीं किया जा सकता · प्रॉम्प्ट: 68d31eddd2e0 उद्गम खुले प्रश्न (1)
जर्मन मार्गदर्शिका से अनूदितgemini-3.8-flash-low · 2026-10-13 · जर्मन मूल

गणना प्रकार (enumeration type) NvM_BlockRequestType uint8 पर आधारित है और हेडर Rte_NvM_Type.h के माध्यम से उपलब्ध कराया जाता है [SWS_NvM_91002]। यह किसी कॉलबैक फ़ंक्शन के माध्यम से अधिसूचना के दौरान उस अनुरोध के प्रकार को प्रेषित करने का काम करता है जो पहले एक NVRAM ब्लॉक पर निष्पादित किया गया था [SWS_NvM_91002]।

मान श्रेणी में छह विशिष्ट ब्लॉक अनुरोध [SWS_NvM_91002] शामिल हैं:

  • NVM_READ_BLOCK (0x00): इंगित करता है कि ब्लॉक के लिए NvM_ReadBlock या NvM_ReadPRAMBlock निष्पादित किया गया था [SWS_NvM_91002]।
  • NVM_WRITE_BLOCK (0x01): इंगित करता है कि ब्लॉक के लिए NvM_WriteBlock या NvM_WritePRAMBlock निष्पादित किया गया था [SWS_NvM_91002]।
  • NVM_RESTORE_BLOCK_DEFAULTS (0x02): इंगित करता है कि NvM_RestoreBlockDefaults या NvM_RestorePRAMBlockDefaults निष्पादित किया गया था [SWS_NvM_91002]।
  • NVM_ERASE_NV_BLOCK (0x03): इंगित करता है कि ब्लॉक पर NvM_EraseNvBlock निष्पादित किया गया था [SWS_NvM_91002]।
  • NVM_INVALIDATE_NV_BLOCK (0x04): इंगित करता है कि ब्लॉक पर NvM_InvalidateNvBlock निष्पादित किया गया था [SWS_NvM_91002]।
  • NVM_READ_ALL_BLOCK (0x05): इंगित करता है कि NvM_ReadAll ने इस ब्लॉक का प्रसंस्करण पूरा कर लिया है [SWS_NvM_91002]।

एप्लिकेशन आर्किटेक्चर में, उच्च-स्तरीय सॉफ़्टवेयर घटकों को विशिष्ट ब्लॉक ऑपरेशनों के समापन के बारे में विभेदित रूप से सूचित करने के लिए कॉलबैक रूटीन में इस मान का पैरामीटर के रूप में मूल्यांकन किए जाने की संभावना है [SWS_NvM_91002]। प्रश्न Q-467801b6b5e898a2 (खुला) एरर कोड या संगामिति (concurrency) के संबंध में पेलोड में आगे के विनिर्देशों के अभाव में, विनिर्देश विवरण प्रकार परिभाषा और मान श्रेणी [SWS_NvM_91002] तक सीमित हैं।

यह पाठ AI द्वारा तैयार किया गया था; सटीकता की गारंटी नहीं दी जा सकती।

इम्प्लीमेंटर गाइड जल्द आएगी (जटिलता 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#561a21f1
Content hash
561a21f1
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_NVRAMManager.pdf#nameddest=SWS_NvM_00447

विषय मानचित्र

विवरण दृश्य

रूपरेखा में कोई प्रविष्टि चुनें।

आरंभीकरण और स्थिति

NvM_GetVersionInfo फ़ंक्शन

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

void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);
NvM_Init फ़ंक्शन

Service for resetting all internal variables.

void NvM_Init (const NvM_ConfigType* ConfigPtr);

सेवाएँ · Read…

NvM_ReadAll फ़ंक्शन

Initiates a multi block read request.

void NvM_ReadAll (void);
NvM_ReadBlock फ़ंक्शन

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

Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);
NvM_ReadPRAMBlock फ़ंक्शन

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

Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);
NvM_ReadRamBlockFromNvm फ़ंक्शन

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

सेवाएँ · Set…

NvM_SetBlockLockStatus फ़ंक्शन

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);
NvM_SetBlockProtection फ़ंक्शन

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);
NvM_SetDataIndex फ़ंक्शन

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

Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);
NvM_SetRamBlockStatus फ़ंक्शन

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

सेवाएँ · Write…

NvM_WriteAll फ़ंक्शन

Initiates a multi block write request.

void NvM_WriteAll (void);
NvM_WriteBlock फ़ंक्शन

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);
NvM_WritePRAMBlock फ़ंक्शन

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

Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);
NvM_WriteRamBlockToNvm फ़ंक्शन

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

सेवाएँ · Cancel…

NvM_CancelJobs फ़ंक्शन

Service to cancel all jobs pending for a NV block.

Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);
NvM_CancelWriteAll फ़ंक्शन

Service to cancel a running Nv M_ Write All request.

void NvM_CancelWriteAll (void);

सेवाएँ · Get…

NvM_GetDataIndex फ़ंक्शन

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

Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);
NvM_GetErrorStatus फ़ंक्शन

Service to read the block dependent error/ status information.

Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);

सेवाएँ · Job…

NvM_JobEndNotification फ़ंक्शन

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

void NvM_JobEndNotification (void);
NvM_JobErrorNotification फ़ंक्शन

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

void NvM_JobErrorNotification (void);

सेवाएँ · Restore…

NvM_RestoreBlockDefaults फ़ंक्शन

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

Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);
NvM_RestorePRAMBlockDefaults फ़ंक्शन

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

Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);

सेवाएँ · अन्य

NvM_EraseNvBlock फ़ंक्शन

Service to erase a NV block.

Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);
NvM_FirstInitAll फ़ंक्शन

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);
NvM_InitBlockCallbackFunction फ़ंक्शन

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);
NvM_InvalidateNvBlock फ़ंक्शन

Service to invalidate a NV block.

Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);
NvM_MultiBlockCallbackFunction फ़ंक्शन

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);
NvM_SingleBlockCallbackFunction फ़ंक्शन

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);
NvM_ValidateAll फ़ंक्शन

Initiates a multi block validation request.

void NvM_ValidateAll (void);

चक्रीय

NvM_MainFunction फ़ंक्शन

Service for performing the processing of the Nv M jobs.

void NvM_MainFunction (void);

टाइप

NvM_BlockIdType टाइप

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

NvM_ConfigType टाइप

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.