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 عبر فهرس الجهاز إلى محاكاة Flash-EEPROM أو تجريد EEPROM.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: claude-opus-5-5 · الجهد: high · درجة الحرارة: غير قابل للتحكم · الموجّه: 423eb9cf4c9b المصدر أسئلة مفتوحة (5)
المرساة السببية: R20-11 صالح اعتبارًا من R20-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يعيد توجيه مهام التخزين الخاصة بمدير NVRAM عبر فهرس الجهاز إلى محاكاة Flash-EEPROM أو تجريد EEPROM.

يعيد MemIf توجيه مهام التخزين الخاصة بمدير NVRAM إلى وحدات Fee أو Ea ويخفي عددها خلف API موحدة SWS MemIf ص. 7. يحدد المعامِل DeviceIndex الوحدة؛ وإذا تم تكوين وحدة واحدة فقط، يتم تجاهله وتطبيق MemIf كمجموعة وحدات ماكرو (macros) SWS MemIf ص. 17. تقبل الخدمات المهام بشكل متزامن وتمرر قيمة الإرجاع، بينما تُنفَّذ عملية التخزين بشكل غير متزامن في الطبقة الأدنى. يوفّر MemIf_GetStatus وMemIf_GetJobResult الحالة والنتيجة. عند تفعيل التعرف على أخطاء التطوير، تعيد الاستدعاءات الخاطئة E_NOT_OK أو MEMIF_JOB_FAILED.

تحل واجهة Memory Abstraction محل طبقات واجهات المشغّلات السابقة لـ Flash وEEPROM. وتتيح لمدير NVRAM مخاطبة عدة وحدات تجريد عبر API موحدة: محاكاة Flash EEPROM (Fee) وتجريد EEPROM (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 نفس API مثل Fee/Ea Det Det (optional) MemIf->Det Det_ReportError Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Flash Driver Fee->Fls Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep EEPROM Driver Ea->Eep

مخطط السياق: يتوسط 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 أو من خلال الاستقصاء (Polling) لـ MemIf_GetJobResult SWS Fee ص. 48. يبلّغ MemIf_GetStatus عن UNINIT أو IDLE أو BUSY أو BUSY_INTERNAL [SWS_MemIf_00064]. ترتبط نتيجة المهمة دائمًا بآخر أمر وتُميّز بين الكتل الملغاة وغير المتسقة وغير الصالحة، من بين أمور أخرى [SWS_MemIf_00065]. يؤثر MemIf_SetMode في جميع الوحدات في الوقت نفسه [SWS_MemIf_00038].

مهمة كتابة عبر MemIf (مثال Ea/Eep)NvMMemIfEaEepمهمة BSW (مهمة OS أو استدعاء دوري)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)تحديد الوحدة عبر DeviceIndexEa_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (دون تغيير)Use Case: التنفيذ (غير متزامن)حتى النهاية يُرجع GetJobResultMEMIF_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_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) محل طبقات واجهات المشغّلات السابقة للذاكرة الوميضية (Flash) وEEPROM. وهي تسمح لمدير NVRAM (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_Read وEa_Cancel وEa_GetStatus وEa_GetJobResult بالنسبة لـ Ea [SWS_MemIf_00047]. وتستخدم اختيارياً Det_ReportError [SWS_MemIf_00048]. وتشكل الأنواع MemIf_StatusType وMemIf_JobResultType وMemIf_ModeType المحددة في MemIf.h المفردات المشتركة للمكدس [SWS_MemIf_00064] [SWS_MemIf_00065] [SWS_MemIf_00066]. وهكذا، يقدم Fls_GetJobResult على سبيل المثال MemIf_JobResultType مباشرةً SWS Fls ص. 36.

تُظهر الرسوم التوضيحية للإصدارات الأحدث الوحدتين MemAcc وMem إضافياً أسفل Ea وFee SWS Ea ص. 42. وبالنسبة لـ R20-11، يُرجح أن تكون النظرة العامة الأقدم هي المعتمدة، حيث تعتمد Fee فيها على مشغل Flash وتعتمد 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 نفس API مثل Fee/Ea Det Det (optional) MemIf->Det Det_ReportError Fee->NvM NvM_JobEndNotification / NvM_JobErrorNotification Fls Flash Driver Fee->Fls Ea->NvM NvM_JobEndNotification / NvM_JobErrorNotification Eep EEPROM Driver Ea->Eep

مخطط السياق: تقع MemIf بين NvM ووحدات التجريد Fee/Ea؛ وتصل إشعارات الاكتمال إلى NvM مباشرةً من Fee/Ea. المصادر: 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 لذلك حلقة تكرار عبر Eep_MainFunction في مهمة BSW SWS Ea ص. 41. ووفقاً لمواصفات Fee، يسري هذا النمط أيضاً على بقية الخدمات غير المتزامنة SWS Fee ص. 48.

يعلم NvM بانتهاء المهمة بإحدى طريقتين وفقاً لتكوين المكدس. فإما أن تستدعي وحدة التجريد رد اتصال مثل NvM_JobEndNotification أو NvM_JobErrorNotification، وإما أن يقوم NvM بالاقتراع الدوري (polling) لـ MemIf_GetJobResult SWS Fee ص. 48 EXP ErrorDescription ص. 45. ولا توفر MemIf نفسها أي دالة رد اتصال؛ وتتألف API الخاصة بها من الخدمات التالية [SWS_MemIf_00038] [SWS_MemIf_00046].

الخدمةService-IDيعودالتأثير
MemIf_SetMode0x01–تستدعي SetMode لجميع وحدات التجريد [SWS_MemIf_00038]
MemIf_Read0x02Std_ReturnTypeتقرأ Length من البايتات للكتلة بدءاً من BlockOffset إلى 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–معلومات الإصدار، قابلة لإعادة الدخول (reentrant) [SWS_MemIf_00045]
MemIf_EraseImmediateBlock0x09Std_ReturnTypeتمحو كتلة [SWS_MemIf_00046]
مهمة كتابة عبر MemIf (مثال Ea/Eep)NvMMemIfEaEepمهمة BSW (مهمة OS أو استدعاء دوري)Use Case: Auftragsannahme (synchron)MemIf_Write(DeviceIndex,BlockNumber, DataBufferPtr)تحديد الوحدة عبر DeviceIndexEa_Write(BlockNumber, DataBufferPtr)Eep_Write(EepromAddress,DataBufferPtr, Length)Std_ReturnTypeStd_ReturnTypeStd_ReturnType (دون تغيير)Use Case: التنفيذ (غير متزامن)حتى النهاية يُرجع GetJobResultMEMIF_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 الشروط بدقة وتذكر إعادة تنظيم الـ Flash (Garbage Collection) كمثال للإدارة الداخلية SWS Fee ص. 30. وبالنسبة لمشغل Flash، يجوز الاستعلام عن الحالة حتى قبل التهيئة، وتكون عندها MEMIF_UNINIT SWS Fls ص. 35.

status start 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 (SPI burst) من جهة أخرى. ويحظر استدعاء Eep_SetMode أثناء عملية جارية SWS Eep ص. 34. وترفض Fls_SetMode أي طلب في حالة الانشغال عند تفعيل الفحص 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.

بالنسبة لمسار الـ Flash، تُظهر مواصفات المشغل السلسلة MemIf_Cancel ← Fee_Cancel ← Fls_Cancel متبوعة بإشعارات الأخطاء. وتتطلب أيضاً عدم استدعاء Fls_Cancel أثناء عملية Fls_MainFunction جارية. ولتحقيق ذلك توجد طريقتان: مزامنة دوال المهام الخاصة بـ NvM ومشغل Flash، أو عدم مقاطعة مهمة Fls_MainFunction SWS Fls ص. 58.

إلغاء مهمة فلاش جاريةNvMMemIfFeeFlsMemIf_Cancel(DeviceIndex)Fee_Cancel()Fls_Cancel()Fls_Cancel ليس أثناءlaufender Fls_MainFunctionالعودةالعودةالعودة (متزامنة)الإلغاء غير متزامنبالنسبة للعتاد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، فإن جميع الخدمات غير قابلة لإعادة الدخول (غير reentrant) [SWS_MemIf_00045] [SWS_MemIf_00040]. لذلك يجب استبعاد الاستدعاءات المتوازية من عدة سياقات. ونظراً لأن الحالة ونتيجة المهمة لكل وحدة تعكسان فقط المهمة الأخيرة، يجب على المستدعي ألا يصدر مهمة جديدة إلا بعد اكتمال المهمة السابقة SWS Fls ص. 36.

يورد مثال تعيين الذاكرة لمجموعة ICC2 المسماة «MEM» واجهة MemIf مع NvM. وهناك، تمت نمذجة MemIf_SetMode كـ BswCalledEntity، ولدى MemIf بادئة القسم MEMIF SWS MemoryMapping ص. 50. ويذكر دليل توزيع BSW الواجهة 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 Det_ReportError مع MEMIF_E_PARAM_DEVICE (0x01) أو MEMIF_E_PARAM_POINTER (0x02) 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، فإن هذا التفصيل غير موثق معيارياً هنا.

أدلة تفصيلية إضافية

دليل تم إنشاؤه بواسطة الذكاء الاصطناعي بناءً على مقتطفات المواصفات المقدمة في التوجيه. المتطلبات المشار إليها في الإصدار 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]. تم تعريف الواجهة باستخدام Service ID 0x01 في ملف الرأس MemIf.h [SWS_MemIf_00038].

فيما يتعلق بالتزامن، تم تحديد MemIf_SetMode على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_MemIf_00038]. تفسير: يُرجح أنه لا يجوز للمستدعين استدعاء الدالة بشكل متزامن أو مقاطِع من مهام متعددة أو روتينات خدمة المقاطعة، ولهذا السبب يُتوقع تنسيق الوصول المتزامن عند الحاجة من خلال آليات حماية خارجية. سؤال 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]. وبالتالي، يُرجح عادةً أن يتم الاستدعاء في سياق المهمة؛ كما يجب على المستدعي تجنب الاستدعاءات المتوازية أو المتداخلة أو تسلسلها. سؤال Q-b774bf07a69e28af (مفتوح)

تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي وتستند إلى مواصفة 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]. الدالة محددة بمعرف الخدمة 0x03 ومتوفرة عبر ملف الرأس MemIf.h [SWS_MemIf_00040].

معالجة الأخطاء وقيم الإرجاع

القيمة المرجعة هي من النوع Std_ReturnType [SWS_MemIf_00040]. إذا كان اكتشاف أخطاء التطوير (Development Error Detection) نشطاً لـ Memory Abstraction Interface وتم اكتشاف خطأ تطوير وفقاً لـ [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.

دالة 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) معرف الخدمة 0x04 وتُتاح عبر ملف الرأس MemIf.h [SWS_MemIf_00041].
  • المعلمات: تحدد معلمة الإدخال Device Index (النوع uint8) الوحدة المستهدفة؛ ولا توجد معلمات إدخال/إخراج أو معلمات إرجاع [SWS_MemIf_00041].
  • معالجة الأخطاء: لا تصف المواصفة لهذه الدالة أي رموز أخطاء محددة، أو قيم مرجعة، أو بلاغات DET [SWS_MemIf_00041] (التفسير: يُرجَّح ترك التحقق من فهارس الأجهزة غير المسموح بها لبنية النظام الأعلى أو للوحدة التابعة). سؤال Q-4a5d989ce611ba89 (مفتوح)

تم إعداد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.

دالة 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 وتحمل Service ID 0x07 [SWS_MemIf_00044].

الاستخدام والمعلمات

يتم الاستدعاء بشكل متزامن ويمرر معلمات الإدخال التالية إلى الهدف المعنون [SWS_MemIf_00044]:

  • DeviceIndex: الفهرس الرقمي لوحدة تجريد الذاكرة الأساسية [SWS_MemIf_00044].
  • BlockNumber: معرف فريد لكتلة الذاكرة المراد إبطال صلاحيتها [SWS_MemIf_00044].

معالجة الأخطاء وقيم الإرجاع

ترجع الدالة قيمة حالة من النوع Std_ReturnType [SWS_MemIf_00044]:

  • إذا تم تفعيل اكتشاف أخطاء التطوير (Development Error Detection) لـ Memory Abstraction Interface وحدث خطأ وفقاً لـ SWS_MemIf_00022، ترجع الدالة E_NOT_OK [SWS_MemIf_00044].
  • إذا لم يتم اكتشاف أي خطأ في التطوير، ترجع الواجهة نتيجة الدالة المستدعاة للوحدة التابعة [SWS_MemIf_00044].

التزامن

تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_MemIf_00044].

تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استنادًا إلى مواصفة AUTOSAR Classic الإصدار 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 ويحمل معرف الخدمة 0x09 [SWS_MemIf_00046]. وتُستخدَم المعلمة DeviceIndex كمعلمة إدخال لعنونة جهاز الذاكرة المعني أو وحدة التجريد المحددة، بالإضافة إلى BlockNumber لتحديد الكتلة الهدف [SWS_MemIf_00046]. ولا توجد معلمات إدخال/إخراج أو معلمات إخراج إضافية [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]. تفسير: نظراً لأن الاستدعاءات المتوازية للواجهة غير مسموح بها، يُرجَّح أن الدالة لا تُستدعى في النظام ككل إلا من سياق متزامن على مستوى المهمة، وذلك لمنع عدم اتساق البيانات في برامج تشغيل الذاكرة التابعة. سؤال 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.

دليل المنفِّذ قيد الإعداد (التعقيد 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]. تفسير: يشير هذا إلى أن الطلبات تتم معالجتها بشكل غير متزامن، وأن الجهة المستدعية تحدد الاكتمال من خلال هذه الحالة الوسيطة. سؤال 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].

تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو مخصص للتوجيه.

نوع 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].

تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو مخصص للتوجيه الفني.

دليل المنفِّذ قيد الإعداد (التعقيد 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#0555308e
Content hash
0555308e
Source
https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_MemoryAbstractionInterface.pdf#nameddest=SWS_MemIf_00038

خريطة المواضيع

عرض التفاصيل

اختر عنصرًا من المخطط.

التهيئة والحالة

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

MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);

Returns version information.

void MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);

الخدمات

MemIf_Cancel دالة

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

void MemIf_Cancel (uint8 DeviceIndex);

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

Std_ReturnType MemIf_EraseImmediateBlock (uint8 DeviceIndex, uint16 BlockNumber);

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

MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);

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

Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);
MemIf_Read دالة

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

الأنواع

Denotes the result of the last job.

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

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