DEENESPTFRRUARHIKOZHNL

Memory Abstraction Interface (MemIf)

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

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

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

डिवाइस इंडेक्स के माध्यम से NVRAM मैनेजर के मेमोरी अनुरोधों को फ़्लैश EEPROM इम्यूलेशन या EEPROM एब्स्ट्रैक्शन पर अग्रेषित करता है।

MemIf NVRAM मैनेजर के मेमोरी अनुरोधों को Fee या Ea मॉड्यूल पर अग्रेषित करता है और उनकी संख्या को एक एकीकृत API SWS MemIf पृ. 7 के पीछे छुपाता है। पैरामीटर DeviceIndex मॉड्यूल का चयन करता है; यदि केवल एक कॉन्फ़िगर किया गया है, तो इसे अनदेखा कर दिया जाता है और MemIf को एक मैक्रो सेट के रूप में कार्यान्वित किया जाता है SWS MemIf पृ. 17। सर्विसेज अनुरोधों को सिंक्रोनस रूप से स्वीकार करती हैं और रिटर्न मान को आगे बढ़ाती हैं, जबकि मेमोरी ऑपरेशन इसके नीचे एसिंक्रोनस रूप से चलता है। स्थिति और परिणाम MemIf_GetStatus और MemIf_GetJobResult द्वारा प्रदान किए जाते हैं। सक्रिय डेवलपमेंट त्रुटि डिटेक्शन के मामले में, दोषपूर्ण कॉल E_NOT_OK या MEMIF_JOB_FAILED लौटाते हैं।

Memory Abstraction Interface फ़्लैश और EEPROM के लिए पिछली ड्राइवर इंटरफ़ेस परतों को प्रतिस्थापित करता है। यह NVRAM मैनेजर को एक एकीकृत API के माध्यम से कई एब्स्ट्रैक्शन मॉड्यूल को संबोधित करने की अनुमति देता है: Flash EEPROM Emulation (Fee) और EEPROM Abstraction (Ea) SRS MemHwAb पृ. 5। MemIf इन मॉड्यूल की संख्या को छुपाता है और एक रैखिक एड्रेस स्पेस पर वर्चुअल सेगमेंटेशन प्रदान करता है SWS MemIf पृ. 7।

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

संदर्भ आरेख (Context diagram): MemIf NvM और Fee/Ea के बीच मध्यस्थता करता है; पूर्णता संदेश सीधे Fee/Ea से NvM को जाते हैं। स्रोत: SWS Fee पृ. 6, [SWS_MemIf_00047]

MemIf का अपना कोई मेमोरी लॉजिक नहीं होता है। पैरामीटर DeviceIndex मॉड्यूल का चयन करता है; यदि केवल एक कॉन्फ़िगर किया गया है, तो इसे अनदेखा कर दिया जाता है और MemIf को एक मैक्रो सेट के रूप में कार्यान्वित किया जाता है। कई मॉड्यूल होने पर, वितरण उदाहरण के लिए फ़ंक्शन पॉइंटर तालिकाओं के माध्यम से होता है SWS MemIf पृ. 17। R20-11 में DeviceIndex का प्रकार uint8 [SWS_MemIf_00039] है; बाद के संस्करण uint16 का उपयोग करते हैं।

सर्विसेज अनुरोधों को सिंक्रोनस रूप से स्वीकार करती हैं और मॉड्यूल के रिटर्न मान को आगे बढ़ाती हैं [SWS_MemIf_00040]। इसके बाद मेमोरी ऑपरेशन निचली परत के मुख्य फ़ंक्शन में एसिंक्रोनस रूप से चलता है। NvM को पूरा होने की जानकारी Fee/Ea से कॉलबैक के माध्यम से या MemIf_GetJobResult के पोलिंग द्वारा मिलती है SWS Fee पृ. 48। MemIf_GetStatus UNINIT, IDLE, BUSY या BUSY_INTERNAL की रिपोर्ट करता है [SWS_MemIf_00064]। कार्य का परिणाम हमेशा अंतिम अनुरोध से संबंधित होता है और अन्य बातों के अलावा निरस्त (aborted), असंगत (inconsistent) और अमान्य ब्लॉकों में अंतर करता है [SWS_MemIf_00065]। MemIf_SetMode सभी मॉड्यूल पर एक साथ प्रभाव डालता है [SWS_MemIf_00038]।

MemIf के माध्यम से राइट जॉब (उदाहरण Ea/Eep)NvMMemIfEaEepBSW टास्क (OS टास्क या चक्रीय कॉल)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)DeviceIndex के माध्यम से मॉड्यूल चुनेंEa_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (अपरिवर्तित)Use Case: निष्पादन (अतुल्यकालिक)अंत तक GetJobResult प्रदान करता हैMEMIF_JOB_PENDINGloopजब तक कार्य समाप्त नहीं हो जाताEep_MainFunction()altBenachrichtigung konfiguriertEa_JobEndNotification()NvM_JobEndNotification()Polling-BetriebMemIf_GetJobResult(DeviceIndex)Ea_GetJobResult()MEMIF_JOB_OKMEMIF_JOB_OK

अनुक्रम आरेख (Sequence diagram): MemIf के माध्यम से सिंक्रोनस स्वीकृति, ड्राइवर में एसिंक्रोनस निष्पादन, कॉलबैक या पोलिंग के माध्यम से पूर्णता। स्रोत: SWS Ea पृ. 41, [SWS_MemIf_00040]

त्रुटि की स्थिति में, MemIf अमान्य डिवाइस इंडेक्स और NULL पॉइंटर्स को डेवलपमेंट त्रुटियों के रूप में रिपोर्ट करता है [SWS_MemIf_00006]। तब सर्विसेज E_NOT_OK लौटाती हैं, MemIf_GetJobResult MEMIF_JOB_FAILED लौटाता है SWS MemIf पृ. 21। मेमोरी की रनटाइम त्रुटियों का पता Fee या Ea लगाते हैं; NvM उन्हें पोलिंग ऑपरेशन में MEMIF_JOB_FAILED के रूप में पढ़ता है और उनके निवारण के लिए जिम्मेदार होता है ErrorDescription पृ. 58।

मेमोरी स्टैक में भूमिका: NvM और Fee/Ea के बीच स्विच

Memory Abstraction Interface (MemIf) फ़्लैश और EEPROM के लिए पिछली ड्राइवर इंटरफ़ेस परतों को प्रतिस्थापित करता है। यह NVRAM Manager (NvM) को एक ही API के माध्यम से कई मेमोरी एब्स्ट्रैक्शन मॉड्यूल को संबोधित करने की अनुमति देता है: Flash EEPROM Emulation (Fee) और EEPROM Abstraction (Ea) SRS MemHwAb पृ. 5। ऊपर की ओर, MemIf छुपाता है कि इसके नीचे कितने Fee और Ea मॉड्यूल हैं। यह एक एकीकृत रैखिक एड्रेस स्पेस पर वर्चुअल सेगमेंटेशन प्रदान करता है SWS MemIf पृ. 7। Fee और Ea ब्लॉक-आधारित एड्रेसिंग और मिटाने-लिखने के चक्रों की "वस्तुतः असीमित" संख्या प्रदान करते हैं। इसलिए, ड्राइवर या कंपोनेंट बदलने पर NvM को बदलने की आवश्यकता नहीं होती है SRS MemHwAb पृ. 5।

MemIf में स्वयं कोई मेमोरी लॉजिक नहीं होता है। इसके API को एब्स्ट्रैक्शन मॉड्यूल के API पर मैप किया जाना चाहिए, और कार्यात्मक व्यवहार उनके विनिर्देशों या मेमोरी ड्राइवरों के विनिर्देशों द्वारा निर्धारित किया जाता है SWS MemIf पृ. 17। तदनुसार, MemIf को एब्स्ट्रैक्शन मॉड्यूल की सर्विसेज की आवश्यकता होती है, Ea के लिए उदाहरण के लिए Ea_Read, Ea_Cancel, Ea_GetStatus और Ea_GetJobResult [SWS_MemIf_00047]। वैकल्पिक रूप से यह Det_ReportError का उपयोग करता है [SWS_MemIf_00048]। MemIf.h में परिभाषित प्रकार MemIf_StatusType, MemIf_JobResultType और MemIf_ModeType स्टैक की साझा शब्दावली बनाते हैं [SWS_MemIf_00064] [SWS_MemIf_00065] [SWS_MemIf_00066]। उदाहरण के लिए, Fls_GetJobResult सीधे MemIf_JobResultType प्रदान करता है SWS Fls पृ. 36।

नए रिलीज़ के चित्र Ea और Fee के नीचे अतिरिक्त रूप से MemAcc और Mem मॉड्यूल दिखाते हैं SWS Ea पृ. 42। R20-11 के लिए संभवतः पुराना अवलोकन प्रासंगिक होना चाहिए, जिसमें Fee फ़्लैश ड्राइवर पर और Ea EEPROM ड्राइवर पर आधारित हैं SWS Fee पृ. 6। MemIf के लिए यह अंतर महत्वहीन है, क्योंकि यह केवल एब्स्ट्रैक्शन स्तर तक ही अग्रेषित करता है SWS MemIf पृ. 17। प्रश्न Q-3c74a6029dd0d159 (खुला)

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

संदर्भ आरेख: MemIf, NvM और एब्स्ट्रैक्शन मॉड्यूल Fee/Ea के बीच स्थित है; पूर्णता संदेश सीधे Fee/Ea से NvM तक पहुँचते हैं। स्रोत: SWS Fee पृ. 6, SRS MemHwAb पृ. 5, [SWS_MemIf_00047], [SWS_MemIf_00048]

DeviceIndex के माध्यम से उपकरण चयन: मैक्रोज़ या वितरण तालिका

पैरामीटर DeviceIndex एब्स्ट्रैक्शन मॉड्यूल और इस प्रकार मेमोरी घटक का चयन करता है। यदि केवल एक ही मॉड्यूल कॉन्फ़िगर किया गया है, तो इसे अनदेखा कर दिया जाता है SWS MemIf पृ. 17। इस मामले में, MemIf को मैक्रोज़ के एक सेट के रूप में लागू किया जाना चाहिए, जैसे कि #define MemIf_Write(DeviceIndex, BlockNumber, DataPtr) Fee_Write(BlockNumber, DataPtr)। एकाधिक मॉड्यूल के मामले में, कॉल को कुशल तंत्रों के माध्यम से वितरित किया जाना चाहिए; विनिर्देश एक समाधान के रूप में फ़ंक्शन पॉइंटर्स की तालिकाओं का उल्लेख करता है, जिन्हें DeviceIndex के माध्यम से अनुक्रमित किया जाता है SWS MemIf पृ. 17। यदि कोई निर्माता-विशिष्ट लाइब्रेरी सभी आवश्यक Fee और Ea मॉड्यूल को प्रतिस्थापित करती है, तो MemIf में केवल मैक्रोज़ होते हैं SRS MemHwAb पृ. 5।

R20-11 में DeviceIndex, uint8 प्रकार का है [SWS_MemIf_00039] [SWS_MemIf_00041]। विनिर्देश के बाद के संस्करण इसे uint16 के रूप में सूचीबद्ध करते हैं SWS MemIf पृ. 18। इस रिलीज़ के लिए uint8 मानक है।

abbildung start Konfiguration von MemIf q0 क्या कोई वेंडर लाइब्रेरी सभी Fee और Ea मॉड्यूल्स को प्रतिस्थापित करती है? start->q0 lib MemIf में लाइब्रेरी-API के लिए केवल मैक्रोज़ शामिल हैं q0->lib हाँ q1 कितने ऐब्स्ट्रैक्शन मॉड्यूल्स कॉन्फ़िगर किए गए हैं? q0->q1 नहीं ende मॉड्यूल का फ़ंक्शन कॉल किया जाता है, रिटर्न मान पास किया जाता है lib->ende ein मैक्रोज़ MemIf-API को मैप करते हैं (उदा. MemIf_Write -> Fee_Write) q1->ein ठीक एक mehr Effiziente Verteilung, z. B. Funktionszeigertabelle q1->mehr mehrere ign DeviceIndex को अनदेखा किया जाता है ein->ign ign->ende idx DeviceIndex मॉड्यूल का चयन करता है (Fee या Ea) mehr->idx idx->ende

गतिविधि आरेख: कॉन्फ़िगर किए गए एब्स्ट्रैक्शन मॉड्यूल की संख्या मैक्रो-मैपिंग और DeviceIndex द्वारा वितरण के बीच निर्णय लेती है। स्रोत: SWS MemIf पृ. 17, SRS MemHwAb पृ. 5

जॉब प्रवाह: समकालिक स्वीकृति, असमकालिक निष्पादन

सभी MemIf सेवाएँ समकालिक रूप से निर्दिष्ट हैं। प्रत्येक चयनित मॉड्यूल के समान नाम वाले फ़ंक्शन को कॉल करती है और उसका रिटर्न मान वापस करती है, जैसे Read, Write और InvalidateBlock [SWS_MemIf_00039] [SWS_MemIf_00040] [SWS_MemIf_00044]। वास्तविक मेमोरी ऑपरेशन उसके बाद निचली परत के चक्रीय रूप से कॉल किए जाने वाले मुख्य फ़ंक्शन में असमकालिक रूप से चलता है। Ea अनुक्रम इसके लिए BSW कार्य में Eep_MainFunction पर एक लूप दिखाता है SWS Ea पृ. 41। Fee विनिर्देश के अनुसार, यह पैटर्न अन्य असमकालिक सेवाओं पर भी लागू होता है SWS Fee पृ. 48।

स्टैक कॉन्फ़िगरेशन के आधार पर, NvM को जॉब की समाप्ति की जानकारी दो तरीकों में से एक से मिलती है। या तो एब्स्ट्रैक्शन मॉड्यूल NvM_JobEndNotification अथवा NvM_JobErrorNotification जैसे कॉलबैक को कॉल करता है, या NvM MemIf_GetJobResult को पोल करता है SWS Fee पृ. 48 EXP ErrorDescription पृ. 45। MemIf स्वयं कोई कॉलबैक फ़ंक्शन प्रदान नहीं करता है; इसका API निम्नलिखित सेवाओं से बना है [SWS_MemIf_00038] [SWS_MemIf_00046]।

सेवासर्विस-IDवापस करनाप्रभाव
MemIf_SetMode0x01–सभी एब्स्ट्रैक्शन मॉड्यूल के SetMode को कॉल करता है [SWS_MemIf_00038]
MemIf_Read0x02Std_ReturnTypeब्लॉक के BlockOffset से शुरू करके Length बाइट्स को DataBufferPtr में पढ़ता है [SWS_MemIf_00039]
MemIf_Write0x03Std_ReturnTypeएक ब्लॉक लिखता है [SWS_MemIf_00040]
MemIf_Cancel0x04–चल रहे जॉब को रद्द करता है [SWS_MemIf_00041]
MemIf_GetStatus0x05MemIf_StatusTypeमॉड्यूल स्थिति [SWS_MemIf_00042]
MemIf_GetJobResult0x06MemIf_JobResultTypeअंतिम जॉब का परिणाम [SWS_MemIf_00043]
MemIf_InvalidateBlock0x07Std_ReturnTypeएक ब्लॉक को अमान्य करता है [SWS_MemIf_00044]
MemIf_GetVersionInfo0x08–संस्करण जानकारी, रीएंट्रेंट [SWS_MemIf_00045]
MemIf_EraseImmediateBlock0x09Std_ReturnTypeएक ब्लॉक को मिटाता है [SWS_MemIf_00046]
MemIf के माध्यम से राइट जॉब (उदाहरण Ea/Eep)NvMMemIfEaEepBSW टास्क (OS टास्क या चक्रीय कॉल)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)DeviceIndex के माध्यम से मॉड्यूल चुनेंEa_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (अपरिवर्तित)Use Case: निष्पादन (अतुल्यकालिक)अंत तक GetJobResult प्रदान करता हैMEMIF_JOB_PENDINGloopजब तक कार्य समाप्त नहीं हो जाताEep_MainFunction()altBenachrichtigung konfiguriertEa_JobEndNotification()NvM_JobEndNotification()Polling-BetriebMemIf_GetJobResult(DeviceIndex)Ea_GetJobResult()MEMIF_JOB_OKMEMIF_JOB_OK

अनुक्रम आरेख: एक राइट जॉब MemIf के माध्यम से समकालिक रूप से स्वीकार किया जाता है, ड्राइवर में असमकालिक रूप से निष्पादित होता है और कॉलबैक या पोलिंग द्वारा पूरा होता है। स्रोत: SWS Ea पृ. 41, SWS Fee पृ. 48, ErrorDescription पृ. 60, [SWS_MemIf_00040]

स्थिति, जॉब परिणाम और ऑपरेटिंग मोड

MemIf_GetStatus चयनित मॉड्यूल की स्थिति प्रदान करता है [SWS_MemIf_00042]। संभावित स्थितियाँ MEMIF_UNINIT, MEMIF_IDLE, MEMIF_BUSY और MEMIF_BUSY_INTERNAL हैं। MEMIF_BUSY_INTERNAL के मामले में, एब्स्ट्रैक्शन मॉड्यूल आंतरिक प्रबंधन में व्यस्त रहता है, जबकि ड्राइवर busy या idle हो सकता है [SWS_MemIf_00064]। Fee विनिर्देश शर्तों को ठोस रूप देता है और आंतरिक प्रबंधन के उदाहरण के रूप में फ़्लैश के पुनर्गठन (Garbage Collection) का उल्लेख करता है SWS Fee पृ. 30। फ़्लैश ड्राइवर के मामले में, स्थिति को आरंभीकरण से पहले भी पूछा जा सकता है और फिर यह MEMIF_UNINIT होती है SWS Fls पृ. 35।

status start शुरू UNINIT MEMIF_UNINIT start->UNINIT IDLE MEMIF_IDLE UNINIT->IDLE Modul initialisiert BUSY MEMIF_BUSY IDLE->BUSY ऊपरी परत का जॉब प्रक्रियाधीन है BUSYINT MEMIF_BUSY_INTERNAL IDLE->BUSYINT interne Verwaltung (z. B. Garbage Collection) BUSY->IDLE Auftrag beendet BUSYINT->IDLE interne Verwaltung beendet

स्थिति आरेख: MemIf_GetStatus के माध्यम से दृश्यमान मॉड्यूल स्थिति का जीवनचक्र। स्रोत: [SWS_MemIf_00064], SWS Fee पृ. 30

MemIf_GetJobResult अंतिम जॉब का परिणाम देता है [SWS_MemIf_00043] [SWS_MemIf_00065]। पढ़ना, लिखना और मिटाना एक ही जॉब परिणाम साझा करते हैं, जिससे केवल अंतिम जॉब के परिणाम के बारे में ही पूछा जा सकता है। एक नया जॉब स्वीकार किए जाने पर, इसे MEMIF_JOB_PENDING पर सेट किया जाता है SWS Fls पृ. 36; Fee अंतिम स्वीकृत जॉब की बात करता है SWS Fee पृ. 31। OK, FAILED और CANCELED के अतिरिक्त, दो ब्लॉक-संबंधित परिणाम हैं। MEMIF_BLOCK_INCONSISTENT का अर्थ है कि ब्लॉक दूषित है या नहीं मिला; MEMIF_BLOCK_INVALID का अर्थ है कि इसे अमान्य के रूप में चिह्नित किया गया है [SWS_MemIf_00065]।

jobergebnis neu Neuer Auftrag angenommen PENDING MEMIF_JOB_PENDING neu->PENDING OK MEMIF_JOB_OK PENDING->OK erfolgreich beendet FAILED MEMIF_JOB_FAILED PENDING->FAILED सफल नहीं CANCELED MEMIF_JOB_CANCELED PENDING->CANCELED abgebrochen INCONS MEMIF_BLOCK_INCONSISTENT PENDING->INCONS ब्लॉक दूषित है या नहीं मिला INVALID MEMIF_BLOCK_INVALID PENDING->INVALID ब्लॉक को अमान्य के रूप में चिह्नित किया गया OK->neu अगला जॉब FAILED->neu अगला जॉब CANCELED->neu अगला जॉब INCONS->neu अगला जॉब INVALID->neu अगला जॉब

स्थिति आरेख: एक स्वीकृत जॉब PENDING पर रहता है और ठीक अंतिम परिणामों में से एक में समाप्त होता है। स्रोत: [SWS_MemIf_00065], SWS Fls पृ. 36, SWS Fee पृ. 31

MemIf_SetMode एकमात्र ऐसी सेवा है जिसमें कोई DeviceIndex नहीं है और यह सभी एब्स्ट्रैक्शन मॉड्यूल के SetMode को कॉल करती है [SWS_MemIf_00038]। मोड MEMIF_MODE_SLOW और MEMIF_MODE_FAST हैं [SWS_MemIf_00066]। ड्राइवरों के लिए, यह एक ओर धीमे रीड एक्सेस अथवा सामान्य SPI एक्सेस और दूसरी ओर तेज़ रीड एक्सेस अथवा SPI बर्स्ट का प्रतीक है। चल रहे ऑपरेशन के दौरान Eep_SetMode को कॉल नहीं किया जाना चाहिए SWS Eep पृ. 34। सक्रिय जाँच के साथ, Fls_SetMode Busy स्थिति में अनुरोध को अस्वीकार करता है SWS Fls पृ. 42। व्याख्या: चूंकि MemIf_SetMode सभी मॉड्यूल तक पहुँचता है, इसलिए इसे केवल तभी कॉल किया जाना चाहिए जब सभी उपकरण MEMIF_IDLE की रिपोर्ट करते हैं। प्रश्न Q-d6ee630fca619042 (खुला)

चल रहे जॉब को रद्द करना

MemIf_Cancel चयनित मॉड्यूल के Cancel फ़ंक्शन को कॉल करता है [SWS_MemIf_00041]। रद्दीकरण स्वयं समकालिक है, लेकिन हार्डवेयर के संदर्भ में असमकालिक है: कॉल के पहले ही वापस आने पर भी हार्डवेयर चलना जारी रख सकता है SWS Fee पृ. 45 SWS Ea पृ. 44। इसके बाद जॉब का परिणाम MEMIF_JOB_CANCELED होता है [SWS_MemIf_00065], जिसे Fee स्पष्ट रूप से विफलता मानता है SWS Fee पृ. 31।

फ़्लैश पथ के लिए, ड्राइवर विनिर्देश बाद की त्रुटि सूचनाओं के साथ MemIf_Cancel → Fee_Cancel → Fls_Cancel श्रृंखला दिखाता है। इसके अतिरिक्त, यह चल रहे Fls_MainFunction के दौरान Fls_Cancel को कॉल न करने की मांग करता है। इसके दो तरीके हैं: NvM और फ़्लैश ड्राइवर के जॉब फ़ंक्शन सिंक्रनाइज़ किए जाते हैं, या Fls_MainFunction के कार्य में बाधा नहीं डाली जाती है SWS Fls पृ. 58।

चल रहे फ़्लैश जॉब को रद्द करनाNvMMemIfFeeFlsMemIf_Cancel(DeviceIndex)Fee_Cancel()Fls_Cancel()Fls_Cancel इसके दौरान नहींlaufender Fls_MainFunctionवापसीवापसीवापसी (सिंक्रोनस)रद्दीकरण अतुल्यकालिक (asynchronous) हैहार्डवेयर के लिएoptFehlerbenachrichtigung konfiguriertFee_JobErrorNotification()NvM_JobErrorNotification()MemIf_GetJobResult(DeviceIndex)Fee_GetJobResult()MEMIF_JOB_CANCELEDMEMIF_JOB_CANCELED

अनुक्रम आरेख: रद्दीकरण सभी परतों के माध्यम से समकालिक रूप से चलता है, त्रुटि अधिसूचना का अनुसरण किया जाता है, जिसके बाद GetJobResult CANCELED की रिपोर्ट करता है। स्रोत: SWS Fls पृ. 58, SWS Fee पृ. 45, [SWS_MemIf_00041]

कॉल नियम, रीएंट्रेंसी और BSW में एम्बेडिंग

MemIf_GetVersionInfo के अपवाद के साथ, सभी सेवाएँ गैर-रीएंट्रेंट हैं [SWS_MemIf_00045] [SWS_MemIf_00040]। इसलिए एकाधिक संदर्भों से समानांतर कॉलों को बाहर रखा जाना चाहिए। चूंकि प्रति मॉड्यूल स्थिति और जॉब परिणाम केवल अंतिम जॉब को दर्शाते हैं, कॉलर को पिछले जॉब के पूरा होने के बाद ही एक नया जॉब जारी करना चाहिए SWS Fls पृ. 36।

एक ICC2 क्लस्टर "MEM" का मेमोरी मैपिंग उदाहरण NvM के साथ MemIf को सूचीबद्ध करता है। वहां MemIf_SetMode को BswCalledEntity के रूप में मॉडल किया गया है, और MemIf का सेक्शन प्रीफ़िक्स MEMIF है SWS MemoryMapping पृ. 50। BSW Distribution Guide MEMIF को FLS और FEE के साथ "Type I" के उदाहरण के रूप में नामित करता है; वैधता के दायरे को स्थानीय स्कोप के साथ SwAddrMethod के माध्यम से एक कोर तक सीमित किया जा सकता है EXP BSWDistributionGuide पृ. 31। संभवतः MemIf को मल्टी-कोर सिस्टम में कोर-स्थानीय रूप से संचालित किया जाना चाहिए। प्रश्न Q-d998fdc58e0bcddd (खुला)

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

MemIf दो डेवलपमेंट त्रुटियों को जानता है। MEMIF_E_PARAM_DEVICE (0x01) गलत DeviceIndex को दर्शाता है, MEMIF_E_PARAM_POINTER (0x02) एक NULL पॉइंटर को [SWS_MemIf_00006]। इन्हें वैकल्पिक Det_ReportError के माध्यम से रिपोर्ट किया जाता है [SWS_MemIf_00048]। ट्रेसिंग तालिका के अनुसार API के माध्यम से विशिष्ट त्रुटि कोड वापस नहीं किए जाते हैं SWS MemIf पृ. 12।

यदि डेवलपमेंट त्रुटि पहचान सक्रिय है और कोई त्रुटि पहचानी जाती है, तो Read, Write, InvalidateBlock और EraseImmediateBlock E_NOT_OK [SWS_MemIf_00039] [SWS_MemIf_00040] [SWS_MemIf_00044] [SWS_MemIf_00046] लौटाते हैं। MemIf_GetJobResult इस मामले में MEMIF_JOB_FAILED लौटाता है SWS MemIf पृ. 21। अन्यथा मॉड्यूल का मान अपरिवर्तित आगे बढ़ा दिया जाता है।

fehlerpruefung aufruf एक MemIf सर्विस का कॉल (DeviceIndex, यदि लागू हो तो पॉइंटर) q1 Entwicklungsfehlererkennung aktiviert? aufruf->q1 q2 क्या पैरामीटर मान्य हैं? q1->q2 हाँ weiter DeviceIndex द्वारा चयनित मॉड्यूल के फ़ंक्शन को कॉल करें q1->weiter नहीं det MEMIF_E_PARAM_DEVICE (0x01) या MEMIF_E_PARAM_POINTER (0x02) के साथ Det_ReportError q2->det नहीं q2->weiter हाँ fehl रिटर्न E_NOT_OK (MemIf_GetJobResult: MEMIF_JOB_FAILED) det->fehl rueck मॉड्यूल का रिटर्न मान अपरिवर्तित लौटाएं weiter->rueck

गतिविधि आरेख: सक्रिय डेवलपमेंट त्रुटि पहचान के तहत पैरामीटर जाँच और मॉड्यूल परिणाम को आगे बढ़ाना। स्रोत: [SWS_MemIf_00006], [SWS_MemIf_00048], SWS MemIf पृ. 18, SWS MemIf पृ. 21

मेमोरी के रनटाइम त्रुटियों को MemIf नहीं, बल्कि Fee अथवा Ea पहचानता है; MemIf स्वयं इस पर प्रतिक्रिया नहीं करता है ("N/A")। पोलिंग मोड में, NvM MemIf_GetJobResult के माध्यम से त्रुटि को MEMIF_JOB_FAILED के रूप में पढ़ता है, और समाधान NvM के पास होता है ErrorDescription पृ. 58 ErrorDescription पृ. 60। एक नया संस्करण इस समाधान का अधिक विस्तार से वर्णन करता है। इसके अनुसार, NvM राइट जॉब्स के लिए एक पुनः प्रयास काउंटर बढ़ाता है, सीमा पार करने के बाद निरस्त करता है और DEM को NVM_E_REQ_FAILED की रिपोर्ट करता है EXP ErrorDescription पृ. 45। R20-11 के लिए यह विवरण यहाँ मानक रूप से समर्थित नहीं है।

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

प्रॉम्प्ट में प्रदान किए गए विनिर्देश उद्धरणों के आधार पर AI-जनरेटेड गाइड। रिलीज़ R20-11 की संदर्भित आवश्यकताएँ मानक हैं। व्याख्याओं को इस रूप में चिह्नित किया गया है।

Memory Abstraction Interface (MemIf)

Abstracts underlying Flash and EEPROM memory drivers.

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

फ़ंक्शन MemIf_SetMode [SWS_MemIf_00038] 📄 PDF

void MemIf_SetMode (MemIf_ModeType Mode);

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

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

फ़ंक्शन MemIf_SetMode मेमोरी इंटरफ़ेस के माध्यम से ऑपरेटिंग मोड को सिंक्रोनस रूप से स्विच करने का कार्य करता है [SWS_MemIf_00038]। कॉल किए जाने पर, यह अनुरोधित मोड को सभी अंतर्निहित मेमोरी एब्स्ट्रैक्शन मॉड्यूल के व्यक्तिगत "Set Mode" फ़ंक्शनों को अग्रेषित करता है [SWS_MemIf_00038]। लक्ष्य मोड Mode को पैरामीटर के रूप में पास किया जाता है, जबकि फ़ंक्शन कोई रिटर्न मान नहीं देता है [SWS_MemIf_00038]। इंटरफ़ेस हेडर MemIf.h में सेवा ID 0x01 के साथ परिभाषित है [SWS_MemIf_00038]।

समवर्तीता के संबंध में, MemIf_SetMode को गैर-पुनःप्रवेशी (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_MemIf_00038]। Interpretation: कॉल करने वाले संभवतः एकाधिक कार्यों या इंटरप्ट सर्विस रूटीनों से एक साथ या बाधा डालते हुए फ़ंक्शन को कॉल नहीं कर सकते हैं, यही वजह है कि यदि आवश्यक हो तो समवर्ती एक्सेस को बाहरी सुरक्षा तंत्रों द्वारा समन्वित किया जाना चाहिए। प्रश्न Q-02b14e9cb4b05dc9 (खुला)

सिंक्रोनस निष्पादन सिमेंटिक्स के कारण, कॉल मेमोरी एब्स्ट्रैक्शन मॉड्यूल को अनुरोध अग्रेषित करने के बाद ही कॉलर के पास लौटता है [SWS_MemIf_00038]। तत्व विनिर्देश में इस फ़ंक्शन के लिए त्रुटि संकेत हेतु कोई विशिष्ट रिटर्न मान या अलग DET अथवा DEM त्रुटि संदेश प्रदान नहीं किए गए हैं [SWS_MemIf_00038]।

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

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

फ़ंक्शन MemIf_Read [SWS_MemIf_00039] 📄 PDF

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

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

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

फ़ंक्शन MemIf_Read पैरामीटर DeviceIndex के माध्यम से चयनित अंतर्निहित मेमोरी एब्स्ट्रैक्शन मॉड्यूल को सिंक्रोनस रूप से एक पढ़ने का अनुरोध अग्रेषित करता है [SWS_MemIf_00039]। यह हेडर MemIf.h में घोषित है और लॉजिकल मेमोरी ब्लॉक से डेटा पढ़ने का कार्य करता है।

पैरामीटर और इंटरफ़ेस

MemIf_Read के कॉल में निम्नलिखित इनपुट और आउटपुट पैरामीटर शामिल हैं [SWS_MemIf_00039]:

  • DeviceIndex: लक्ष्य मॉड्यूल का चयन करने के लिए लक्ष्य डिवाइस का इंडेक्स।
  • BlockNumber: पढ़े जाने वाले मेमोरी ब्लॉक का लॉजिकल ब्लॉक नंबर।
  • BlockOffset: लॉजिकल ब्लॉक के भीतर बाइट ऑफ़सेट जहाँ से पढ़ा जाना है।
  • DataBufferPtr: पढ़े गए डेटा को संग्रहीत करने के लिए बफ़र का पॉइंटर।
  • Length: पढ़े जाने वाले डेटा बाइट्स की संख्या।

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

यदि डेवलपमेंट त्रुटि पहचान (Development Error Detection) सक्रिय है और किसी डेवलपमेंट त्रुटि का पता चलता है, तो फ़ंक्शन E_NOT_OK लौटाता है [SWS_MemIf_00039]। अन्यथा, अंतर्निहित मॉड्यूल के कॉल किए गए रीड फ़ंक्शन के रिटर्न मान को Std_ReturnType के रूप में अग्रेषित किया जाता है [SWS_MemIf_00039]।

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

फ़ंक्शन को सिंक्रोनस और गैर-रीएंट्रेंट (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_MemIf_00039]। इसलिए, एक कॉल आमतौर पर टास्क संदर्भ में होना चाहिए; समानांतर या नेस्टेड कॉल से कॉलर द्वारा बचा जाना चाहिए या उन्हें क्रमिक (serialize) किया जाना चाहिए। प्रश्न Q-b774bf07a69e28af (खुला)

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

फ़ंक्शन MemIf_Write [SWS_MemIf_00040] 📄 PDF

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

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

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

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

इंटरफ़ेस फ़ंक्शन MemIf_Write एक एब्स्ट्रैक्शन लेयर के रूप में कार्य करता है और अंतर्निहित मेमोरी एब्स्ट्रैक्शन मॉड्यूल के Write फ़ंक्शन को कॉल करता है, जिसे पैरामीटर DeviceIndex के माध्यम से चुना जाता है [SWS_MemIf_00040]। सिंक्रोनस कॉल के दौरान, तीन इनपुट पैरामीटर पास किए जाते हैं: लक्ष्य ड्राइवर का चयन करने के लिए डिवाइस इंडेक्स DeviceIndex, लॉजिकल ब्लॉक नंबर BlockNumber और लिखे जाने वाले डेटा वाले बफ़र का पॉइंटर DataBufferPtr [SWS_MemIf_00040]। फ़ंक्शन सर्विस ID 0x03 के अंतर्गत निर्दिष्ट है और हेडर फ़ाइल MemIf.h के माध्यम से उपलब्ध है [SWS_MemIf_00040]।

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

रिटर्न मान प्रकार Std_ReturnType का है [SWS_MemIf_00040]। यदि Memory Abstraction Interface के लिए डेवलपमेंट त्रुटि पहचान (Development Error Detection) सक्रिय है और [SWS_MemIf_00022] के अनुसार एक डेवलपमेंट त्रुटि का पता चलता है, तो MemIf_Write त्रुटि कोड E_NOT_OK लौटाता है [SWS_MemIf_00040]। यदि कोई त्रुटि मौजूद नहीं है, तो फ़ंक्शन कॉल किए गए अंतर्निहित मॉड्यूल के रिटर्न मान को बिना किसी बदलाव के कॉलर को अग्रेषित करता है [SWS_MemIf_00040]।

समवर्तीता और सीमांत शर्तें

समवर्तीता व्यवहार के संबंध में, MemIf_Write को सिंक्रोनस और गैर-रीएंट्रेंट (Non Reentrant) के रूप में परिभाषित किया गया है [SWS_MemIf_00040]।

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

फ़ंक्शन MemIf_Cancel [SWS_MemIf_00041] 📄 PDF

void MemIf_Cancel (uint8 DeviceIndex);

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

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

सिंक्रोनस फ़ंक्शन MemIf_Cancel अंतर्निहित मेमोरी एब्स्ट्रैक्शन मॉड्यूल के Cancel फ़ंक्शन को कॉल करने का कार्य करता है, जिसे पैरामीटर Device Index के माध्यम से चुना जाता है [SWS_MemIf_00041]। सेवा का कोई रिटर्न मान नहीं होता है और यह रद्दीकरण आदेश को सीधे संबोधित एब्स्ट्रैक्शन इंस्टेंस को अग्रेषित करता है [SWS_MemIf_00041]।

कॉल और एकीकरण के लिए निम्नलिखित तकनीकी विशेषताएँ लागू होती हैं:

  • कॉल संदर्भ और समवर्तीता: फ़ंक्शन को गैर-रीएंट्रेंट (Non Reentrant) के रूप में परिभाषित किया गया है [SWS_MemIf_00041]। कॉलर्स को यह सुनिश्चित करना चाहिए कि निष्पादन अन्य संदर्भों द्वारा समवर्ती या बाधाकारी तरीके से न हो।
  • हस्ताक्षर और पहचान: इंटरफ़ेस void MemIf_Cancel (uint8 Device Index) की सर्विस ID 0x04 है और यह हेडर फ़ाइल MemIf.h के माध्यम से उपलब्ध कराया जाता है [SWS_MemIf_00041]।
  • पैरामीटर: इनपुट पैरामीटर Device Index (प्रकार uint8) लक्ष्य मॉड्यूल का चयन करता है; इनपुट/आउटपुट या रिटर्न पैरामीटर मौजूद नहीं हैं [SWS_MemIf_00041]।
  • त्रुटि प्रबंधन: विनिर्देश इस फ़ंक्शन के लिए किसी विशिष्ट त्रुटि कोड, रिटर्न मान या DET संदेशों का वर्णन नहीं करता है [SWS_MemIf_00041] (व्याख्या: अमान्य डिवाइस अनुक्रमणिका की जाँच संभवतः उच्च-स्तरीय सिस्टम आर्किटेक्चर या अंतर्निहित मॉड्यूल पर छोड़ दी गई है)। प्रश्न Q-4a5d989ce611ba89 (खुला)

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

फ़ंक्शन MemIf_GetStatus [SWS_MemIf_00042] 📄 PDF

MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);

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

फ़ंक्शन MemIf_GetJobResult [SWS_MemIf_00043] 📄 PDF

MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);

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

फ़ंक्शन MemIf_InvalidateBlock [SWS_MemIf_00044] 📄 PDF

Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);

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

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

सिंक्रोनस फ़ंक्शन MemIf_InvalidateBlock किसी लॉजिकल ब्लॉक को अमान्य करने के अनुरोध को पैरामीटर DeviceIndex के माध्यम से चयनित अंतर्निहित मेमोरी एब्स्ट्रैक्शन मॉड्यूल को अग्रेषित करता है [SWS_MemIf_00044]। इंटरफ़ेस हेडर MemIf.h के माध्यम से प्रदान किया जाता है और इसकी सेवा ID 0x07 है [SWS_MemIf_00044]।

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

कॉल सिंक्रोनस रूप से होता है और एड्रेसिंग लक्ष्य को निम्नलिखित इनपुट पैरामीटर पास करता है [SWS_MemIf_00044]:

  • DeviceIndex: अंतर्निहित मेमोरी एब्स्ट्रैक्शन मॉड्यूल का संख्यात्मक इंडेक्स [SWS_MemIf_00044]।
  • BlockNumber: अमान्य किए जाने वाले मेमोरी ब्लॉक की अद्वितीय पहचान [SWS_MemIf_00044]।

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

फ़ंक्शन प्रकार Std_ReturnType का एक स्थिति मान लौटाता है [SWS_MemIf_00044]:

  • यदि Memory Abstraction Interface के लिए डेवलपमेंट त्रुटि पहचान (Development Error Detection) सक्रिय है और SWS_MemIf_00022 के अनुसार कोई त्रुटि होती है, तो फ़ंक्शन E_NOT_OK लौटाता है [SWS_MemIf_00044]।
  • यदि किसी डेवलपमेंट त्रुटि का पता नहीं चलता है, तो इंटरफ़ेस अंतर्निहित मॉड्यूल के कॉल किए गए फ़ंक्शन का परिणाम लौटाता है [SWS_MemIf_00044]।

संगामिति

फ़ंक्शन को गैर-पुनःप्रवेशी (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_MemIf_00044]।

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

फ़ंक्शन MemIf_EraseImmediateBlock [SWS_MemIf_00046] 📄 PDF

Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);

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

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

उपयोग

सिंक्रोनस फ़ंक्शन MemIf_EraseImmediateBlock अधीनस्थ मेमोरी एब्स्ट्रैक्शन मॉड्यूल में तत्काल के रूप में वर्गीकृत ब्लॉक को मिटाने की प्रक्रिया शुरू करता है [SWS_MemIf_00046]। कॉल हेडर MemIf.h के माध्यम से प्रदान किया जाता है और सेवा ID 0x09 वहन करता है [SWS_MemIf_00046]। विशिष्ट मेमोरी डिवाइस या एब्स्ट्रैक्शन मॉड्यूल को संबोधित करने के लिए इनपुट पैरामीटर DeviceIndex और लक्ष्य ब्लॉक की पहचान के लिए BlockNumber काम करते हैं [SWS_MemIf_00046]। कोई अतिरिक्त Inout या Out पैरामीटर मौजूद नहीं हैं [SWS_MemIf_00046]।

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

फ़ंक्शन प्रकार Std_ReturnType का एक स्थिति मान लौटाता है [SWS_MemIf_00046]। यदि Memory Abstraction Interface के लिए डेवलपमेंट त्रुटि पहचान सक्रिय है और [SWS_MemIf_00022] के अनुसार संगत त्रुटि का पता चलता है, तो कॉल निश्चित रिटर्न मान E_NOT_OK प्रदान करता है [SWS_MemIf_00046]। यदि ऐसी कोई त्रुटि नहीं होती है, तो अधीनस्थ मॉड्यूल के कॉल किए गए फ़ंक्शन का तात्कालिक परिणाम कॉलर को पास कर दिया जाता है [SWS_MemIf_00046]।

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

MemIf_EraseImmediateBlock का निष्पादन सिंक्रोनस रूप से होता है और इसे गैर-पुनःप्रवेशी (Non Reentrant) के रूप में निर्दिष्ट किया गया है [SWS_MemIf_00046]। Interpretation: चूँकि इंटरफ़ेस के समानांतर कॉल अस्वीकार्य हैं, इसलिए अधीनस्थ मेमोरी ड्राइवरों में डेटा विसंगतियों को रोकने के लिए समग्र सिस्टम में यह फ़ंक्शन संभवतः केवल टास्क स्तर पर एक सिंक्रनाइज़ किए गए संदर्भ से ही कॉल किया जाना चाहिए। प्रश्न Q-4fce518bab0115db (खुला)

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

टाइप MemIf_StatusType [SWS_MemIf_00064] 📄 PDF

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

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

प्रगणना प्रकार MemIf_StatusType [SWS_MemIf_00064] के अनुसार अधीनस्थ मेमोरी एब्स्ट्रैक्शन मॉड्यूल और संबंधित डिवाइस ड्राइवर की वर्तमान परिचालन और निष्पादन स्थिति को चिह्नित करता है। यह प्रकार Memory Abstraction Interface में परिभाषित है और हेडर फ़ाइल MemIf.h के माध्यम से कॉल करने वालों के लिए उपलब्ध है [SWS_MemIf_00064]।

प्रगणना में परिचालन तत्परता को मैप करने के लिए चार अलग-अलग स्थितियाँ शामिल हैं [SWS_MemIf_00064]:

  • MEMIF_UNINIT: अधीनस्थ एब्स्ट्रैक्शन मॉड्यूल या संबंधित डिवाइस ड्राइवर (अभी) प्रारंभ नहीं हुआ है [SWS_MemIf_00064]।
  • MEMIF_IDLE: एब्स्ट्रैक्शन मॉड्यूल या डिवाइस ड्राइवर संचालन के लिए तैयार है और वर्तमान में कोई कार्य निष्पादित नहीं कर रहा है [SWS_MemIf_00064]।
  • MEMIF_BUSY: अधीनस्थ मॉड्यूल या डिवाइस ड्राइवर वर्तमान में एक ऑपरेशन को संसाधित कर रहा है [SWS_MemIf_00064]।
  • MEMIF_BUSY_INTERNAL: एब्स्ट्रैक्शन मॉड्यूल आंतरिक प्रबंधन संचालन संभाल रहा है, जबकि ड्राइवर खाली या व्यस्त हो सकता है [SWS_MemIf_00064]।

कॉलिंग परतें इस स्थिति का उपयोग कार्य सौंपने से पहले सिंक्रोनस रूप से यह निर्धारित करने के लिए करती हैं कि क्या मेमोरी परतें संचालन के लिए तैयार हैं या आंतरिक प्रबंधन प्रक्रियाएँ चल रही हैं [SWS_MemIf_00064]। चूँकि MemIf_StatusType एक शुद्ध डेटा प्रकार परिभाषा का प्रतिनिधित्व करता है, कार्यात्मक पहलू जैसे DET या DEM संदेश, पुनःप्रवेशी नियम या कॉल संदर्भ विनिर्देश तत्व में अलग से नहीं दिखाए गए हैं।

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

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

टाइप MemIf_JobResultType [SWS_MemIf_00065] 📄 PDF

Denotes the result of the last job.

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

प्रगणना प्रकार MemIf_JobResultType मेमोरी इंटरफ़ेस को अंतिम संसाधित किए गए कार्य के परिणाम का वर्णन करता है और इसे हेडर फ़ाइल MemIf.h के माध्यम से प्रदान किया जाता है [SWS_MemIf_00065]।

प्रगणना निष्पादन के लिए स्थितियों के साथ-साथ विशिष्ट त्रुटि और ब्लॉक स्थितियों को परिभाषित करती है [SWS_MemIf_00065]:

  • MEMIF_JOB_OK: अनुरोधित कार्य सफलतापूर्वक समाप्त हो गया [SWS_MemIf_00065]।
  • MEMIF_JOB_PENDING: कार्य अभी तक पूरा नहीं हुआ है [SWS_MemIf_00065]। Interpretation: यह इंगित करता है कि कार्यों को एसिंक्रोनस रूप से संसाधित किया जाता है और कॉलर इस मध्यवर्ती स्थिति के माध्यम से पूर्णता का निर्धारण करता है। प्रश्न Q-31078cf25506334e (खुला)
  • MEMIF_JOB_FAILED: कार्य सफलतापूर्वक पूरा नहीं हुआ था [SWS_MemIf_00065]।
  • MEMIF_JOB_CANCELED: कार्य निरस्त कर दिया गया [SWS_MemIf_00065]।
  • MEMIF_BLOCK_INCONSISTENT: अनुरोधित ब्लॉक असंगत है, इसमें संभवतः दूषित डेटा शामिल है या यह नहीं मिला [SWS_MemIf_00065]।
  • MEMIF_BLOCK_INVALID: अनुरोधित ब्लॉक को अमान्य के रूप में चिह्नित किया गया था, जिससे कि वांछित ऑपरेशन निष्पादित नहीं किया जा सकता [SWS_MemIf_00065]।

कार्य परिणाम का मूल्यांकन करते समय, यह प्रकार सामान्य निष्पादन त्रुटियों (MEMIF_JOB_FAILED) और ब्लॉक-संबंधी समस्याओं (MEMIF_BLOCK_INCONSISTENT, MEMIF_BLOCK_INVALID) के बीच अंतर करने का काम करता है [SWS_MemIf_00065]।

यह पाठ एक AI द्वारा जनरेट किया गया था और यह ओरिएंटेशन के उद्देश्य से है।

टाइप MemIf_ModeType [SWS_MemIf_00066] 📄 PDF

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

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

प्रगणना प्रकार MemIf_ModeType अधीनस्थ मेमोरी एब्स्ट्रैक्शन मॉड्यूल और डिवाइस ड्राइवरों के ऑपरेटिंग मोड को परिभाषित करता है [SWS_MemIf_00066]। इसे हेडर फ़ाइल MemIf.h के माध्यम से प्रदान किया जाता है और यह मेमोरी एक्सेस के गति और परिचालन व्यवहार को नियंत्रित करने का काम करता है [SWS_MemIf_00066]।

[SWS_MemIf_00066] के अनुसार मान सीमा में दो स्थितियाँ शामिल हैं:

  • MEMIF_MODE_SLOW: अधीनस्थ एब्स्ट्रैक्शन मॉड्यूल और डिवाइस ड्राइवर धीमे मोड (Slow Mode) में काम करते हैं [SWS_MemIf_00066]।
  • MEMIF_MODE_FAST: अधीनस्थ एब्स्ट्रैक्शन मॉड्यूल और डिवाइस ड्राइवर तेज़ मोड (Fast Mode) में काम करते हैं [SWS_MemIf_00066]।

त्रुटि प्रबंधन, पुनःप्रवेशी या विशिष्ट कॉल संदर्भों के संबंध में, प्रकार के विनिर्देश में कोई अलग प्रावधान शामिल नहीं हैं; मोड का पासिंग और मूल्यांकन मेमोरी इंटरफ़ेस या अधीनस्थ ड्राइवरों के संबंधित इंटरफ़ेस के माध्यम से सिंक्रोनस रूप से होता है [SWS_MemIf_00066]।

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

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

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

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

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

विवरण दृश्य

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

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

MemIf_GetStatus फ़ंक्शन

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

MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);
MemIf_GetVersionInfo फ़ंक्शन

Returns version information.

void MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);

सेवाएँ

MemIf_Cancel फ़ंक्शन

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

void MemIf_Cancel (uint8 DeviceIndex);
MemIf_EraseImmediateBlock फ़ंक्शन

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

Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);
MemIf_GetJobResult फ़ंक्शन

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

MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);
MemIf_InvalidateBlock फ़ंक्शन

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

Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);
MemIf_Read फ़ंक्शन

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

Std_ReturnType MemIf_Read (uint8 DeviceIndex, uint16 BlockNumber, uint16 BlockOffset, uint8* DataBufferPtr, uint16 Length);
MemIf_SetMode फ़ंक्शन

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

void MemIf_SetMode (MemIf_ModeType Mode);
MemIf_Write फ़ंक्शन

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

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

टाइप

MemIf_JobResultType टाइप

Denotes the result of the last job.

MemIf_ModeType टाइप

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

MemIf_StatusType टाइप

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