Memory Abstraction Interface (MemIf)
Abstracts underlying Flash and EEPROM memory drivers.
Funktionen — Übersicht
void MemIf_SetMode (MemIf_ModeType Mode);Invokes the "Set Mode" functions of all underlying memory abstraction modules.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.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.void MemIf_Cancel (uint8 DeviceIndex);Invokes the "Cancel" function of the underlying memory abstraction module selected by the parameter Device Index.MemIf_StatusType MemIf_GetStatus (uint8 DeviceIndex);Invokes the "Get Status" function of the underlying memory abstraction module selected by the parameter Device Index.MemIf_JobResultType MemIf_GetJobResult (uint8 DeviceIndex);Invokes the "Get Job Result" function of the underlying memory abstraction module selected by the parameter Device Index.Std_ReturnType MemIf_InvalidateBlock (uint8 DeviceIndex, uint16 BlockNumber);Invokes the "Invalidate Block" function of the underlying memory abstraction modulevoid MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);Returns version information.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.
Typen — Übersicht
enum MemIf_StatusTypeDenotes the current status of the underlying abstraction module and device drive.enum MemIf_JobResultTypeDenotes the result of the last job.enum MemIf_ModeTypeDenotes the operation mode of the underlying abstraction mod ules and device drivers.
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.
تُستخدم الدالة 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.
توجّه الدالة 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.
الاستخدام وسياق الاستدعاء
تعمل دالة الواجهة 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.
تُستخدم الدالة المتزامنة 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.
تقوم الدالة المتزامنة 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_GetVersionInfo [SWS_MemIf_00045] 📄 PDF
void MemIf_GetVersionInfo (Std_VersionInfoType* VersionInfoPtr);
Returns version information.
دالة 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.
الاستخدام
تتسبب الدالة المتزامنة 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
يحدد نوع التعداد 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.
يصف نوع التعداد 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.
يحدد نوع التعداد 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
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني