NVRAM Manager (NvM)
Provides synchronous and asynchronous block-based data management for non-volatile storage (EEPROM, Flash).
Funktionen — Übersicht
void NvM_Init (const NvM_ConfigType* ConfigPtr);Service for resetting all internal variables.Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);Service for setting the Data Inde x of a dataset NVRAM block.Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);Service for getting the currently set Data Index of a datase t NVRAM blockStd_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);Service for setting/ resetting the write protection for a NV block.Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);Service to read the block dependent error/ status information.void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);Service to get the version information of the Nv M module.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.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.Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);Service to cancel all jobs pending for a NV block.Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);Service to copy the data of the NV block to its corresponding RAM block.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.Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);Service to restore the default data to its corr esponding RAM block.Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);Service to erase a NV block.Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);Service to invalidate a NV block.Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);Service to copy the data of the NV block to its corresponding permanent RAM block.Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);Service to copy the data of the permanent RAM block to its corresponding NV block.Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);Service to restore the default data to its corresponding permanent RAM block.void NvM_ReadAll (void);Initiates a multi block read request.void NvM_WriteAll (void);Initiates a multi block write request.void NvM_CancelWriteAll (void);Service to cancel a running Nv M_ Write All request.void NvM_ValidateAll (void);Initiates a multi block validation request.void NvM_FirstInitAll (void);The function initiates a multi block first initialization request.void NvM_JobEndNotification (void);Function to be used by the underlying memory abstraction to signal end of job without error.void NvM_JobErrorNotification (void);Function to be used by the underlying memory abstraction to signal end of job with error.void NvM_MainFunction (void);Service for performing the processing of the Nv M jobs.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.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.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...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...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...
Typen — Übersicht
struct NvM_ConfigTypeConfiguration data structure of the Nv M module.NvM_MultiBlockRequestTypeIdentifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw Menum NvM_RequestResultTypeType NvM_RequestResultType.NvM_BlockIdTypeIdentification of a NVRAM block via a unique block identifier.NvM_InitBlockRequestTypeIdentifies the type of request performed on a block when signaled via the callback functionNvM_BlockRequestTypeIdentifies the type of reques t performed on a block when signaled via the callback function
Funktionen & Typen — Detailansicht
फ़ंक्शन NvM_Init [SWS_NvM_00447] 📄 PDF
void NvM_Init (const NvM_ConfigType* ConfigPtr);
Service for resetting all internal variables.
उपयोग और कॉल संदर्भ
फ़ंक्शन 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_SetDataIndex [SWS_NvM_00448] 📄 PDF
Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);
Service for setting the Data Inde x of a dataset NVRAM block.
फ़ंक्शन 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
उपयोग और सिमेंटिक्स
सिंक्रोनस और पुनःप्रवेशी फ़ंक्शन 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_GetVersionInfo [SWS_NvM_00452] 📄 PDF
void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);
Service to get the version information of the Nv M module.
फ़ंक्शन 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.
सिंक्रोनस और पुनःप्रवेशी फ़ंक्शन 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.
उपयोग और कॉल संदर्भ
सिंक्रोनस और रीएंट्रेंट फ़ंक्शन 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.
उपयोग और सिमेंटिक्स
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.
उपयोग और सिमेंटिक्स
फ़ंक्शन 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
फ़ंक्शन 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_WriteBlockDET त्रुटि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.
उपयोग और सिमेंटिक्स
फ़ंक्शन 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.
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.
फ़ंक्शन 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_FAILEDDEM को प्रेषित की जाती है [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.
उपयोग
एसिंक्रोनस और रीएंट्रेंट फ़ंक्शन [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.
रीएंट्रेंट, एसिंक्रोनस फ़ंक्शन 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.
उपयोग और सिमेंटिक्स
फ़ंक्शन 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.
फ़ंक्शन 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.
उपयोग और कॉल संदर्भ
फ़ंक्शन 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.
उपयोग और सिमेंटिक्स
फ़ंक्शन 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.
फ़ंक्शन 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.
फ़ंक्शन 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.
उपयोग
सिंक्रोनस कॉलबैक फ़ंक्शन 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.
कॉलबैक फ़ंक्शन 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.
उपयोग
फ़ंक्शन 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.
उपयोग
कॉलबैक रूटीन 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
कॉलबैक रूटीन 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
उपयोग और कॉल संदर्भ
उपयोगकर्ता-विशिष्ट कॉलबैक रूटीन 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.
ब्लॉक-विशिष्ट कॉलबैक फ़ंक्शन 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.
फ़ंक्शन 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_ConfigType [SWS_NvM_00880] 📄 PDF
Configuration data structure of the Nv M module.
टाइप 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
गणना प्रकार (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.
प्रकार 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
डेटा प्रकार 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
गणना प्रकार (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
gemini-3.8-flash-low· 2026-10-13 · जर्मन मूल