DEENESPTFRRUARHIKOZHNL

NVRAM Manager (NvM)

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

دليل الوحدةمولَّد بالذكاء الاصطناعي

يدير كتل البيانات غير المتطايرة ويقوم بمزامنتها بشكل غير متزامن بين RAM وذاكرة NV.
مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: claude-opus-5-5 · الجهد: high · درجة الحرارة: غير قابل للتحكم · الموجّه: 1d912b11517a المصدر أسئلة مفتوحة (1)
المرساة السببية: R20-11 صالح اعتبارًا من R20-11 مُركَّب حديثًا لهذا الإصدار من المواصفة.
مترجم من الدليل الألمانيمُولَّد بالذكاء الاصطناعيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يدير كتل البيانات غير المتطايرة ويقوم بمزامنتها بشكل غير متزامن بين RAM وذاكرة NV.

يُعد NVRAM Manager (NvM) منفذ الوصول الوحيد إلى الذاكرة غير المتطايرة. فهو ينسخ كتل NVRAM ضمنيًا بين RAM وذاكرة NV [SWS_NvM_00038]. عند بدء التشغيل، يملأ NvM_ReadAll الذي يطلقه BswM كتل RAM، وعند إيقاف التشغيل، يحفظ NvM_WriteAll الكتل المعدلة. تُدرج الطلبات الفردية مثل NvM_WriteBlock في قائمة انتظار بشكل غير متزامن، وتُعالج وفقًا للأولوية، ويجري تأكيد إتمامها عبر الحالة أو عبر دالة رد نداء [SWS_NvM_00185]. يعالج NvM أخطاء القراءة عبر إعادات المحاولة، والنسخ الاحتياطية المتكررة، والبيانات الافتراضية؛ ومع ذلك، يجب على المستخدمين التحقق من حالة الكتلة بأنفسهم.

يُعد NVRAM Manager (NvM) منفذ الوصول الوحيد إلى الذاكرة غير المتطايرة [SWS_NvM_00384]. فهو ينسخ الكتل ضمنيًا بين NVRAM وRAM؛ ويعمل التطبيق مباشرةً مع بيانات RAM [SWS_NvM_00038]. ومن جهة الطبقات الأدنى، يستخدم Memory Abstraction Interface مع Fee أو Ea [SWS_NvM_00051]. ويُبلّغ BswM بالحالات، ويُبلّغ DEM وDET بالأخطاء [SWS_NvM_00745] [SWS_NvM_00592].

kontext nutzer مستخدم NvM (SW-C عبر RTE، وحدات BSW) nvm NvM (NVRAM Manager) nutzer->nvm مهام فردية NvM_ReadBlock، NvM_WriteBlock، … bswm BswM bswm->nvm NvM_Init, NvM_ReadAll, NvM_WriteAll, NvM_CancelWriteAll nvm->nutzer استدعاءات الرد SingleBlock وInitBlock وMirror nvm->bswm BswM_NvM_CurrentJobMode, BswM_NvM_CurrentBlockMode memif MemIf nvm->memif مهام القراءة/الكتابة، MemIf_GetJobResult dem Dem nvm->dem Produktionsfehler det Det nvm->det Entwicklungsfehler crc Crc nvm->crc CRC-Berechnung fee Fee / Ea memif->fee إعادة التوجيه fee->nvm NvM_JobEndNotification, NvM_JobErrorNotification

مخطط السياق: تضمين NvM بين المستخدمين، وBswM، وMemIf/Fee/Ea، بالإضافة إلى DEM وDET. المصادر: [SWS_NvM_00384] [SWS_NvM_00465] [SWS_NvM_00746]

تتكون كل كتلة NVRAM من كتلة NV، وكتلة RAM، وAdministrative Block، ويُضاف إليها اختياريًا كتلة ROM تحتوي على بيانات افتراضية [SWS_NvM_00138]. تتوفر الأنواع Native وRedundant وDataset؛ وهي تختلف في عدد كتل NV وROM [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559]. يقوم NvM بمزامنة كتلة RAM ضمنيًا ومباشرةً، أو صراحةً عبر RAM-Mirror باستخدام دوال رد النداء [SWS_NvM_00511].

تسير دورة الحياة في ثلاث خطوات:

  • يستدعي BswM الدالة NvM_Init حصريًا [SWS_NvM_00693].
  • يتحقق NvM_ReadAll أولاً من ID التكوين ثم يملأ كتل RAM [SWS_NvM_00073] [SWS_NvM_00718].
  • عند إيقاف التشغيل، يحفظ NvM_WriteAll الكتل المعدلة [SWS_NvM_00092]. ويقوم NvM_CancelWriteAll بالإلغاء بصورة غير مدمرة [SWS_NvM_00238].

تُدرج الطلبات الفردية مثل NvM_WriteBlock في قائمة الانتظار وتصبح بعد ذلك في الحالة NVM_REQ_PENDING [SWS_NvM_00185]. اختياريًا، يستخدم NvM قائمة انتظار خاصة للطلبات الفورية (Immediate) [SWS_NvM_00378]. وتُوفَّر النتيجة عبر NvM_GetErrorStatus أو عبر دالة رد نداء مُكوَّنة [SWS_NvM_00015] [SWS_NvM_00740].

مهمة غير متزامنة لكتلة مفردة مع إشعارNvM-AnwenderNvMBswMBSW-TaskMemIfNvM_WriteBlock(BlockId, NvM_SrcPtr)einreihen, Blockergebnis:NVM_REQ_PENDINGoptNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, NVM_REQ_PENDING)E_OKloopحتى تكتمل مهمة الكتابةNvM_MainFunction()Schreibauftrag / Status abfragenJob-ErgebnisoptNvMSingleBlockCallback konfiguriertNvM_SingleBlockCallbackFunction(NVM_WRITE_BLOCK, JobResult)optNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, Ergebnis)NvM_GetErrorStatus(BlockId, RequestResultPtr)E_OK, Ergebnis

مخطط تسلسلي: يُدرج طلب كتابة غير متزامن في قائمة الانتظار، ويُنفّذ في NvM_MainFunction، ويجري تأكيد إتمامه عبر دالة رد نداء، ورسالة إلى BswM، واستعلام عن الحالة. المصادر: [SWS_NvM_00185] [SWS_NvM_00347] [SWS_NvM_00891]، SWS NvM ص. 160

يعالج NvM أخطاء القراءة عبر ثلاث مراحل:

  • إعادات القراءة المُكوَّنة [SWS_NvM_00526]،
  • النسخة الثانية للكتل المتكررة (redundant) [SWS_NvM_00199]،
  • البيانات الافتراضية مع النتيجة NVM_REQ_RESTORED_DEFAULTS [SWS_NvM_00202].

Interpretation: يُرجّح أن يتبع ترتيب المراحل التسلسل الوارد في Error Description. سؤال Q-027e7f981e4d0a43 (مفتوح) يعيد NvM محاولة أخطاء الكتابة حتى NVM_MAX_NUM_OF_WRITE_RETRIES ثم يُبلّغ DEM بالقيمة NVM_E_REQ_FAILED [SWS_NvM_00684]. ويتحقق المستخدمون من حالة كتلهم بأنفسهم [SWS_NvM_00694].

الدور في مكدس الذاكرة: منفذ الوصول الوحيد إلى الذاكرة غير المتطايرة

يُجمّع NVRAM Manager (NvM) الوصول إلى البيانات غير المتطايرة. وتتعامل البيئة المحيطة مع الذاكرة غير المتطايرة حصريًا عبر NvM، الذي يوفر واجهة رد نداء لهذا الغرض [SWS_NvM_00384]. يكون الوصول ضمنيًا: ينسخ NvM الكتل بين NVRAM وRAM المشتركة. ويعمل التطبيق مباشرةً مع بيانات RAM مع مراعاة قواعد المزامنة [SWS_NvM_00038] [SWS_NvM_00692]. يجري اختيار الكتلة عبر ID الكتلة المُكوَّن الخاص بها [SWS_NvM_00069] [SWS_NvM_00471]. وتُضمّن Upper Layer لهذا الغرض NvM.h فقط [SWS_NvM_00691]. يوضح الرسم التخطيطي للتحديث الضمني تقسيم العمل: تُطلق أجزاء أخرى من البرمجيات الأساسية عمليات حفظ واستعادة جميع الكتل بناءً على حالة ECU. وتصل SW-C فقط إلى محتوى كتل RAM الخاصة بها (SWS NvM ص. 121).

ومن جهة الطبقات الأدنى، يعمل NvM مع Memory Abstraction Interface. وتوفر هذه الواجهة بالاشتراك مع Fee أو Ea مساحة عناوين خطية ظاهرية بحجم 32 بت [SWS_NvM_00051] [SWS_NvM_00465]. ويقوم NvM بحساب مجاميع الفحص عبر وحدة Crc [SWS_NvM_00466]. ويعرف انتهاء مهمة Lower-Layer بطريقتين:

تُرسل أخطاء الإنتاج إلى DEM [SWS_NvM_00592]، وأخطاء التطوير إلى DET [SWS_NvM_00614]. ويُبلّغ NvM بحالات الطلبات إلى BswM [SWS_NvM_00745] [SWS_NvM_00746].

kontext nutzer مستخدم NvM (SW-C عبر RTE، وحدات BSW) nvm NvM (NVRAM Manager) nutzer->nvm مهام فردية NvM_ReadBlock، NvM_WriteBlock، … bswm BswM bswm->nvm NvM_Init, NvM_ReadAll, NvM_WriteAll, NvM_CancelWriteAll nvm->nutzer استدعاءات الرد SingleBlock وInitBlock وMirror nvm->bswm BswM_NvM_CurrentJobMode, BswM_NvM_CurrentBlockMode memif MemIf nvm->memif مهام القراءة/الكتابة، MemIf_GetJobResult dem Dem nvm->dem Produktionsfehler det Det nvm->det Entwicklungsfehler crc Crc nvm->crc CRC-Berechnung fee Fee / Ea memif->fee إعادة التوجيه fee->nvm NvM_JobEndNotification, NvM_JobErrorNotification

مخطط السياق: يتوسط NvM بين المستخدمين وBswM من جهة، وMemIf/Fee/Ea من جهة أخرى. ويُبلّغ DEM وDET بالأخطاء. المصادر: [SWS_NvM_00384] [SWS_NvM_00745] [SWS_NvM_00746] [SWS_NvM_00465] [SWS_NvM_00466]، Error Description ص. 43

بنية كتلة NVRAM وأنواع الإدارة الثلاثة

تتكون كتلة NVRAM من المكونات الإلزامية: كتلة NV، وكتلة RAM، وAdministrative Block. وتُعد كتلة ROM التي تحتوي على بيانات افتراضية اختيارية [SWS_NvM_00138] [SWS_NvM_00139] [SWS_NvM_00020]. يحدد واصف الكتلة (Block Descriptor) هذا التركيب في وقت التكوين [SWS_NvM_00140]. المكونات الفردية:

  • تحمل كتلة NV بيانات المستخدم بالإضافة إلى CRC وترويسة (Header) اختياريًا [SWS_NvM_00125] (SWS NvM ص. 39).
  • يجوز أن تقع كتلة RAM في RAM العمومية دون قيود على العناوين [SWS_NvM_00088].
  • تكون Administrative Block غير مرئية للتطبيق. وتحتفظ بفهرس مجموعة البيانات، والسمات، وحقل الخطأ/الحالة [SWS_NvM_00134] [SWS_NvM_00135] [SWS_NvM_00136].

يدعم NvM الأنواع NVM_BLOCK_NATIVE وNVM_BLOCK_REDUNDANT وNVM_BLOCK_DATASET [SWS_NvM_00137]. وهي تختلف في عدد كتل NV وROM [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559] (SWS NvM ص. 10). وبالنسبة لكتل Dataset، يسري ما يلي:

blockaufbau nvram NVRAM-Block (BlockId, Verwaltungstyp) nv NV-Block Header (opt.), Daten, CRC (opt.) nvram->nv NATIVE: 1 REDUNDANT: 2 DATASET: 1..m ram كتلة RAM دائمة أو مؤقتة أو مرآة RAM nvram->ram genau 1 rom ROM-Block (optional) Defaultdaten nvram->rom NATIVE/REDUNDANT: 0..1 DATASET: 0..n adm Administrative Block Index, Attribute, Fehler-/Status nvram->adm genau 1

مخطط التعاون (بنية الكتلة): المكونات الإلزامية والاختيارية لكتلة NVRAM مع الأعداد المقابلة (Cardinalities) لكل نوع إدارة. المصادر: [SWS_NvM_00138] [SWS_NvM_00557] [SWS_NvM_00558] [SWS_NvM_00559] [SWS_NvM_00134]، SWS NvM ص. 10

دورة الحياة: NvM_Init وNvM_ReadAll وNvM_WriteAll

يستدعي BswM الدالة NvM_Init حصريًا [SWS_NvM_00693]. يعيد NvM_Init ضبط قوائم الانتظار وآلات الحالة ويشير داخليًا إلى «INIT DONE» [SWS_NvM_00399]. وهو لا يُهيئ كتل RAM ولا الوحدات النمطية التابعة [SWS_NvM_00091] [SWS_NvM_00193]. ويكون مؤشر التكوين دائمًا NULL_PTR [SWS_NvM_00881]. بعد ذلك فقط يعالج NvM_MainFunction الطلبات [SWS_NvM_00257].

يملأ NvM_ReadAll كتل RAM بعد ذلك [SWS_NvM_00718]. يُشير الاستدعاء فقط إلى وجود الطلب. وتُؤجل المعالجة حتى تكتمل طلبات الكتل الفردية [SWS_NvM_00243]. وبعد ذلك تُنفّذ المهمة في ثلاث خطوات:

  1. يقارن أولاً ID التكوين المخزن مع ID التكوين المُصرّف [SWS_NvM_00073]. وفي حال وجود اختلاف، يعتمد السلوك على NvMDynamicConfiguration: فمع NvMDynamicConfiguration == FALSE يجري تجاهل الاختلاف [SWS_NvM_00248]. وبخلاف ذلك، تتلقى الكتل غير المقاومة للتغيير بيانات افتراضية [SWS_NvM_00249] [SWS_NvM_00674] (NV Data Handling ص. 15).
  2. ثم يمر تكراريًا على كتل المستخدم باستثناء ID الكتلة 0 و1 [SWS_NvM_00244]. وفي أثناء ذلك، لا يعالج سوى الكتل ذات كتلة RAM الدائمة أو ذات المزامنة الصريحة [SWS_NvM_00118].
  3. وفي النهاية، يضبط النتيجة الإجمالية على NVM_REQ_OK أو NVM_REQ_NOT_OK [SWS_NvM_00895] [SWS_NvM_00301].

في مثال إدارة الأنماط (Mode Management)، لا تبدأ قاعدة BswM NvMReadAllFinished التهيئة المتبقية إلا بعد اكتمال NvM_ReadAll (Mode Management Guide ص. 31).

البدء: NvM_Init وNvM_ReadAllBSW-TaskBswMNvMMemIf / Fee / EaUse Case: InitialisierungNvM_Init(NULL_PTR)إعادة تعيين قوائم الانتظار والحالات،«INIT DONE» – كتل RAM دون تغييرNvM_Init()Use Case: Multiblock-Auftrag NvM_ReadAllNvM_ReadAll()NvM_ReadAll()optNvMBswMMultiBlockJobStatusInformation == TRUEBswM_NvM_CurrentJobMode(ReadAll, NVM_REQ_PENDING)NvM_MainFunction()الخطوة الأولى: المحفوظة وkompilierte Konfigurations-ID vergleichenloopلكل كتلة مستخدم لـ NvM_ReadAll (باستثناء معرف الكتلة 0 و1)NvM_MainFunction()NV-Block lesenJob-Ergebnisملء كتلة RAM أو المرآة،Blockergebnis setzenoptNvMBswMMultiBlockJobStatusInformation == TRUEBswM_NvM_CurrentJobMode(ReadAll, Ergebnis)BswM_MainFunction()Regel NvMReadAllFinished:restliche BSW-Initialisierung

مخطط تسلسلي: بدء تشغيل غير متزامن باستخدام NvM_Init وNvM_ReadAll مع إبلاغ BswM بحالة الكتل المتعددة (Multiblock). المصادر: [SWS_NvM_00693] [SWS_NvM_00243] [SWS_NvM_00073] [SWS_NvM_00888] [SWS_NvM_00889]، NV Data Handling ص. 20

عند إيقاف التشغيل، يستدعي BswM الدالة NvM_WriteAll [SWS_NvM_00092]. ويتصرف هذا الإجراء على النحو التالي:

  • يكتب كتل RAM الدائمة أو يجلب البيانات المتزامنة صراحةً عبر NvM_WriteRamBlockToNvm [SWS_NvM_00252].
  • يتحقق مسبقًا من الحالة «valid/modified» [SWS_NvM_00682].
  • يتجاوز الكتل المحمية والمقفلة دون إرسال رسالة خطأ [SWS_NvM_00434] [SWS_NvM_00750].
  • لا تقاطعه الطلبات الأخرى [SWS_NvM_00567].

يُميّز المستخدمون الكتل المعدلة باستخدام NvM_SetRamBlockStatus(…, TRUE)، شريطة تفعيل API [SWS_NvM_00406] [SWS_NvM_00408]. وفي كتل علامة التعديل (Dirty Flag)، تتولى RTE إجراء هذا الاستدعاء (NV Data Handling ص. 41).

إن NvM_CancelWriteAll مخصص لـ BswM [SWS_NvM_00703] ويبقى عديم التأثير دون وجود NvM_WriteAll قيد التشغيل [SWS_NvM_00233]. وتُختتم الكتلة الحالية بصورة غير مدمرة [SWS_NvM_00238]. وتحصل الكتل المتبقية ونتيجة الكتل المتعددة على NVM_REQ_CANCELED [SWS_NvM_00236] [SWS_NvM_00237] (SWS NvM ص. 161).

يُكمّل طلبان إضافيان للكتل المتعددة دورة الحياة:

  • يضبط NvM_ValidateAll الكتل ذات التحقق التلقائي على «VALID / CHANGED» [SWS_NvM_00856].
  • يكتب NvM_FirstInitAll البيانات الافتراضية في الكتل أو يُبطل صلاحيتها إذا لم تكن متوفرة [SWS_NvM_00913] [SWS_NvM_00919].

ينطبق طول قائمة انتظار يبلغ واحدًا على جميع طلبات الكتل المتعددة [SWS_NvM_00380].

إيقاف التشغيل: NvM_WriteAll وNvM_CancelWriteAllBSW-TaskBswMNvMNvM_WriteAll()NvM_WriteAll()loopلكل كتلة ذات RAM دائم أو مزامنة صريحةNvM_MainFunction()فحص «valid/modified»؛ وتخطي الكتل المحميةوالمحظورة؛ ثم الكتابةaltAbbruch angefordertNvM_CancelWriteAll()NvM_CancelWriteAll()NvM_MainFunction()إنهاء الكتلة الحالية بشكل غير مدمر،الكتل المتبقية: NVM_REQ_CANCELEDBswM_NvM_CurrentJobMode(WriteAll, NVM_REQ_CANCELED)إتمام اعتياديBswM_NvM_CurrentJobMode(WriteAll, Ergebnis)Regel NvMWriteAllFinished:EcuM_GoDown

مخطط تسلسلي: إيقاف التشغيل باستخدام NvM_WriteAll والإلغاء الاختياري بواسطة NvM_CancelWriteAll. المصادر: [SWS_NvM_00092] [SWS_NvM_00682] [SWS_NvM_00238] [SWS_NvM_00237] [SWS_NvM_00889]، Mode Management Guide ص. 37

الطلبات الفردية: قوائم الانتظار، والأولويات، والإفادة بالنتائج

تكون طلبات الكتل الفردية مثل NvM_ReadBlock أو NvM_WriteBlock أو NvM_RestoreBlockDefaults غير متزامنة. تستلم الدالة المعلمات، وتدرج الطلب في قائمة الانتظار، ثم تعود [SWS_NvM_00195] [SWS_NvM_00208] [SWS_NvM_00224]. بعد ذلك تصبح نتيجة الكتلة NVM_REQ_PENDING [SWS_NvM_00185]. وعند فيضان قائمة الانتظار، تُرجع الدالة E_NOT_OK [SWS_NvM_00184]. ولا تُدرج الكتلة في قائمة الانتظار إلا إذا لم تكن معلقة بالفعل أو قيد المعالجة [SWS_NvM_00385].

تعمل الخدمات الأخرى بشكل متزامن في سياق المتصل، مثل NvM_SetDataIndex [SWS_NvM_00448] وNvM_GetErrorStatus (SWS NvM ص. 158). ويزيل NvM_CancelJobs الطلبات المعلقة لكتلة معينة؛ غير أن المهمة الجارية تستمر في التنفيذ [SWS_NvM_00536] [SWS_NvM_00537].

تجري المعالجة بصورة تسلسلية وفقًا للأولوية [SWS_NvM_00162]. وإذا كان NvMJobPrioritization نشطًا، يستخدم NvM قائمتي انتظار، إحداهما لطلبات الكتابة الفورية (بيانات حوادث الاصطدام) [SWS_NvM_00564] [SWS_NvM_00378]. ويقوم طلب NvM_WriteBlock من هذا النوع بإلغاء مهمة معلقة بصورة مدمرة [SWS_NvM_00300]. ثم يُعيد NvM_MainFunction بعد ذلك تشغيل المهمة المُلغاة [SWS_NvM_00258]. ودون تحديد الأولويات، يعمل NvM وفق ترتيب الوصول، دون مهام فورية [SWS_NvM_00379]. أما الطلبات التي ترد أثناء تنفيذ طلب متعدد الكتل، فتُدرج في قائمة الانتظار وتُنفّذ لاحقًا [SWS_NvM_00568] [SWS_NvM_00569].

يُودع كل طلب غير متزامن نتيجته في حقل الخطأ/الحالة [SWS_NvM_00175]. ويقرأ NvM_GetErrorStatus هذا الحقل [SWS_NvM_00015]. علاوة على ذلك، هناك مساران اختياريان لتقديم الإفادة:

مهمة غير متزامنة لكتلة مفردة مع إشعارNvM-AnwenderNvMBswMBSW-TaskMemIfNvM_WriteBlock(BlockId, NvM_SrcPtr)einreihen, Blockergebnis:NVM_REQ_PENDINGoptNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, NVM_REQ_PENDING)E_OKloopحتى تكتمل مهمة الكتابةNvM_MainFunction()Schreibauftrag / Status abfragenJob-ErgebnisoptNvMSingleBlockCallback konfiguriertNvM_SingleBlockCallbackFunction(NVM_WRITE_BLOCK, JobResult)optNvMBswMBlockStatusInformation == TRUEBswM_NvM_CurrentBlockMode(BlockId, Ergebnis)NvM_GetErrorStatus(BlockId, RequestResultPtr)E_OK, Ergebnis

مخطط تسلسلي: طلب كتابة غير متزامن مع رسائل حالة BswM، ودالة رد نداء، واستعلام عن الحالة. المصادر: [SWS_NvM_00185] [SWS_NvM_00347] [SWS_NvM_00740] [SWS_NvM_00890] [SWS_NvM_00891]، SWS NvM ص. 160

مزامنة كتلة RAM وحالة الكتلة

يعرف NvM طريقتين لمزامنة البيانات مع كتلة RAM الخاصة بالتطبيق. في المزامنة الضمنية، يعمل مباشرةً على كتلة RAM هذه. يوفر التطبيق الكتلة ولا يصل إليها حتى نهاية الطلب [SWS_NvM_00698] [SWS_NvM_00699]. وإذا مرر NULL_PTR، يستخدم NvM كتلة RAM الدائمة [SWS_NvM_00898] [SWS_NvM_00900]. وتظل الكتلة المؤقتة عبر مؤشر ممكنة مع ذلك [SWS_NvM_00278]. وتعمل خدمات PRAM دائمًا على كتلة RAM الدائمة [SWS_NvM_00765] [SWS_NvM_00794]. وفي سيناريو RTE، تكون هذه الكتلة عبارة عن ذاكرة مخصصة لكل نسخة (Per-Instance-Memory) (NV Data Handling ص. 32).

في المزامنة الصريحة (NvMBlockUseSyncMechanism)، يجري التبادل عبر RAM-Mirror داخلي [SWS_NvM_00511]. ويوجد منه واحد فقط، يُحدد حجمه وفقًا لأكبر كتلة معنية [SWS_NvM_00513]. يستدعي NvM الدالة NvMWriteRamBlockToNvCallback أو NvMReadRamBlockFromNvCallback [SWS_NvM_00515] [SWS_NvM_00516]. وإذا أرجعت دالة رد نداء E_NOT_OK، فإنه يعيد الاستدعاء في الدورة التالية، حتى NvMRepeatMirrorOperations مرات [SWS_NvM_00579] [SWS_NvM_00840]. ويُسمح للتطبيق بتعديل كتلة RAM حتى استدعاء رد النداء [SWS_NvM_00705]. تستخدم الكتلة إما المزامنة الصريحة أو كتلة RAM دائمة، وليس كلاهما [SWS_NvM_00904]. تتيح هذه الآلية كتلًا مشتركة عبر NvBlockSwComponentType (NV Data Handling ص. 12).

الكتابة مع المزامنة الصريحةAnwendung (SW-C/RTE)NvMBSW-TaskMemIfملء كتلة RAM بالبياناتNvM_WriteBlock(BlockId, NULL_PTR)E_OKيُسمح بتعديل كتلة RAM حتىاستدعاء الرد (Callback)NvM_MainFunction()NvM_WriteRamBlockToNvm(NvMBuffer)(NvMWriteRamBlockToNvCallback)RAM-Block in RAM-Mirror kopierenaltإرجاع E_OKE_OKMirror-Inhalt in NV-Block schreibenإرجاع E_NOT_OKE_NOT_OKاستدعاء الرد في NvM_MainFunction التاليerneut aufrufen (max. NvMRepeatMirrorOperations)

مخطط تسلسلي: طلب كتابة مع مزامنة صريحة عبر RAM-Mirror، بما في ذلك إعادة المحاولة عند E_NOT_OK. المصادر: [SWS_NvM_00515] [SWS_NvM_00705] [SWS_NvM_00579] [SWS_NvM_00840]، NV Data Handling ص. 27

يحتفظ NvM بحالة «valid»/«invalid» لكتل RAM الدائمة أو للمرآة (Mirror) [SWS_NvM_00128] [SWS_NvM_00132]. الانتقالات بالتفصيل:

  • يُبطل NvM_ReadBlock صلاحية كتلة RAM الدائمة بمجرد إدراجها في قائمة الانتظار [SWS_NvM_00198].
  • بعد القراءة الناجحة تصبح «valid/unchanged» [SWS_NvM_00200].
  • بعد تحميل البيانات الافتراضية تصبح «valid/changed» [SWS_NvM_00366].
  • يُميّزها NvM_SetRamBlockStatus(…, TRUE) بأنها معدلة ويُطلق إعادة حساب CRC في الخلفية [SWS_NvM_00406] [SWS_NvM_00121].
  • بعد الكتابة الناجحة تُعد «valid/unmodified» [SWS_NvM_00472].
blockzustand invalid INVALID unchanged VALID / UNCHANGED invalid->unchanged NV-Daten erfolgreich gelesen changed VALID / CHANGED invalid->changed Defaultdaten geladen unchanged->invalid NvM_ReadBlock angenommen (permanenter RAM) unchanged->changed NvM_SetRamBlockStatus(TRUE) أو NvM_ValidateAll changed->invalid NvM_ReadBlock angenommen (permanenter RAM) changed->unchanged erfolgreich in NV geschrieben

مخطط الحالة: حالات كتلة RAM والأحداث المحفزة لها. المصادر: [SWS_NvM_00198] [SWS_NvM_00200] [SWS_NvM_00366] [SWS_NvM_00406] [SWS_NvM_00472] [SWS_NvM_00856]

التكوين، وآليات الحماية، والارتباط بالأقسام (Partitions)

تتوفر ثلاث فئات لتكوين API للموارد المحدودة [SWS_NvM_00149]. لا تدعم الفئة 1 كتل Dataset [SWS_NvM_00365]. ويجري توليد جداول الواصفات [SWS_NvM_00143]. يُصرح المستخدمون عن متطلبات الذاكرة في وقت التكوين [SWS_NvM_00030]. وتقوم وحدات BSW بذلك عبر NvBlockNeeds (BSWMD Template ص. 241). ويشتق مكامل ECU تكوين NvM من ذلك (Methodology ص. 444).

تتوفر عدة آليات حماية للكتل الفردية:

  • يدير حقل سمات الحماية من الكتابة [SWS_NvM_00054]؛ ويُفعّلها NvMBlockWriteProt كإعداد افتراضي [SWS_NvM_00326].
  • تُكتب الكتل ذات NvMWriteBlockOnce مرة واحدة فقط [SWS_NvM_00397]. ويرفض NvM طلبات الكتابة قبل القراءة الأولى [SWS_NvM_00952].
  • بالنسبة للكتل المقفلة (NvM_SetBlockLockStatus)، يُرجع NvM_WriteBlock القيمة E_NOT_OK [SWS_NvM_00749]. ولا يغير هذا القفل أي من NvM_SetRamBlockStatus أو NvM_SetBlockProtection [SWS_NvM_00754].
  • اختياريًا، تتوفر أيضًا ترويسة ID الكتلة الثابت (Static-Block-ID-Header) [SWS_NvM_00522]، ومقارنة CRC لتجنب الكتابة غير الضرورية [SWS_NvM_00849]، والتشفير عبر CSM [SWS_NvM_00976].

عند التقسيم (Partitioning)، يستدعي NvM الواجهات في سياق القسم المخصص لكل منها. وتعمل الوظائف العامة في القسم الرئيسي (Master Partition) [SWS_NvM_00969]. ولا يقدم سوى القسم الرئيسي NvM_ReadAll وNvM_WriteAll [SWS_NvM_00970] [SWS_NvM_00971] [SWS_NvM_CONSTR00974]. وتصل وحدات SW-C إلى NvM عبر منافذ مخصصة للكتل:

التصرف في حالة الخطأ

عند القراءة، يقيّم NvM رسائل MemIf بصور مختلفة:

بعد ذلك تُطبّق عدة مراحل استعادة:

  1. عند حدوث أخطاء CRC، تتبع ذلك إعادات القراءة المُكوَّنة [SWS_NvM_00526].
  2. في الكتل المتكررة (redundant)، يقرأ NvM النسخة الثانية ويحاول استعادة التكرار [SWS_NvM_00199] [SWS_NvM_00531]. وإذا فشل ذلك، فإنه يُبلّغ بـ NVM_E_LOSS_OF_REDUNDANCY [SWS_NvM_00546].
  3. أخيرًا، يُحمّل NvM البيانات الافتراضية مع النتيجة NVM_REQ_RESTORED_DEFAULTS [SWS_NvM_00202]. ويبقى محتوى NV دون تغيير في أثناء ذلك [SWS_NvM_00172].

إذا كانت البيانات الافتراضية مفقودة، تظل كتلة RAM غير صالحة [SWS_NvM_00658] [SWS_NvM_00204]. Interpretation: يُرجّح أن يتبع ترتيب المراحل التسلسل الوارد في Error Description (Error Description ص. 62). يختلف هذا المصدر عن المتطلبات (Requirements) في نقطتين؛ إذ يذكر NVM_REQ_RESTORED_FROM_ROM بدلاً من NVM_REQ_RESTORED_DEFAULTS. علاوة على ذلك، يدمج الفشل النهائي إجمالاً كـ NVM_E_REQ_FAILED. وتُعد المتطلبات المذكورة أعلاه معيارية (normativ). سؤال (مفتوح)

lesefehler lesen قراءة كتلة NV عبر MemIf pruef نتيجة فحص MemIf وCRC؟ lesen->pruef erfolg NVM_REQ_OK RAM-Block VALID / UNCHANGED pruef->erfolg in Ordnung inv NVM_REQ_NV_INVALIDATED لا توجد رسالة Dem pruef->inv MEMIF_BLOCK_INVALID retry Lesewiederholung (NVM_MAX_NUM_OF_READ_RETRIES) pruef->retry خطأ، تبقى محاولات إعادة red NVM_BLOCK_REDUNDANT? pruef->red خطأ، استُنفدت محاولات الإعادة retry->lesen zweit zweiten NV-Block lesen red->zweit نعم def Defaultdaten vorhanden? (ROM-Block / Init-Callback) red->def لا zweitok zweite Kopie in Ordnung? zweit->zweitok wieder استعادة التكرار الزائد؛ وفي حال الفشل NVM_E_LOSS_OF_REDUNDANCY zweitok->wieder نعم zweitok->def لا wieder->erfolg restore Defaults in RAM laden NVM_REQ_RESTORED_DEFAULTS def->restore نعم fail تظل كتلة RAM غير صالحة NVM_REQ_INTEGRITY_FAILED / NVM_REQ_NOT_OK إبلاغ إلى Dem def->fail لا

مخطط النشاط: معالجة أخطاء القراءة بدءًا من إعادة المحاولة مرورًا بالنسخة المتكررة وحتى البيانات الافتراضية. Interpretation: يتبع الترتيب التسلسل الوارد في Error Description. المصادر: [SWS_NvM_00526] [SWS_NvM_00199] [SWS_NvM_00202] [SWS_NvM_00341] [SWS_NvM_00658]، Error Description ص. 62

عند الكتابة، يعد NvM الإفادات السلبية حتى NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00213] [SWS_NvM_00216]. وإذا جرى تجاوز الحد، فإنه يضبط NVM_REQ_NOT_OK ويُبلّغ بـ NVM_E_REQ_FAILED [SWS_NvM_00683] [SWS_NvM_00684] (Error Description ص. 43). حالتان إضافيتان للأخطاء:

  • إذا فشل التحقق من الكتابة، يُبلّغ NvM بـ NVM_E_VERIFY_FAILED ويعيد محاولة الكتابة [SWS_NvM_00528] [SWS_NvM_00529].
  • تُعد الكتلة المتكررة مكتوبة بمجرد نجاح كتابة نسخة واحدة [SWS_NvM_00284].

يُبلِّغ NvM عن الاستخدام الخاطئ إلى DET عند تفعيل خاصية اكتشاف أخطاء التطوير. من الأمثلة على ذلك NVM_E_UNINIT وNVM_E_BLOCK_PENDING [SWS_NvM_00614] [SWS_NvM_00615] وكذلك NVM_E_WRITE_PROTECTED [SWS_NvM_00962]. ينتهي طلب الكتل المتعددة بـ NVM_REQ_NOT_OK بمجرد فشل كتلة فردية [SWS_NvM_00318]. يتحقق المستخدمون من حالة كتلهم بأنفسهم [SWS_NvM_00694]. وبعد فشل القراءة، يُقدّمون بيانات صالحة قبل عملية الكتابة التالية [SWS_NvM_00696].

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

دليل مُنشأ بواسطة الذكاء الاصطناعي استناداً إلى متطلبات R20-11 ومواضع المستندات المرتبطة بها. تُعد مواضع المستندات من الإصدارات الأخرى مكمّلة لها. وتبقى نصوص المواصفات المرتبطة هي المرجع المعتمد.

NVRAM Manager (NvM)

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

Funktionen — Übersicht

Typen — Übersicht

Funktionen & Typen — Detailansicht

دالة NvM_Init [SWS_NvM_00447] 📄 PDF

void NvM_Init (const NvM_ConfigType* ConfigPtr);

Service for resetting all internal variables.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d241ed15a825 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام وسياق الاستدعاء

تُستخدَم الدالة NvM_Init لإعادة التعيين المتزامن لجميع المتغيرات الداخلية لـ NVRAM Manager [SWS_NvM_00447]. وتتوقع كمعلمة تمرير ConfigPtr مؤشراً إلى سجل التهيئة المحدد وليس لها قيمة إرجاع [SWS_NvM_00447]. وباعتبارها API من النوع 4، فهي جزء من فئتي التهيئة 2 و3 [SWS_NvM_00560]، [SWS_NvM_00561]. الدالة غير قابلة لإعادة الدخول ولا يجوز استدعاؤها إلا بواسطة BSW Mode Manager [SWS_NvM_00447]، [SWS_NvM_00693].

مهام التهيئة

أثناء الاستدعاء، تنفذ الدالة الإجراءات التالية:

  • إعادة تعيين جميع المتغيرات الداخلية، بما في ذلك آلات الحالة، وقوائم انتظار الطلبات، وأعلام الطلبات، إلى قيمها الأولية [SWS_NvM_00399].
  • تعيين فهرس سجل البيانات لجميع كتل NVRAM من النوع NVM_BLOCK_DATASET إلى الصفر [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_SetBlockProtection [SWS_NvM_00450] 📄 PDF

Std_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);

Service for setting/ resetting the write protection for a NV block. Availabl e via Nv M.h

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f3fd900b11e8 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

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

تُستخدَم الدالة المتزامنة والقابلة لإعادة الدخول NvM_SetBlockProtection لتعيين الحماية من الكتابة لكتلة NVRAM أو إلغاء تعيينها عبر السمة المقابلة في الكتلة الإدارية [SWS_NvM_00450]، [SWS_NvM_00016]. وهي مخصصة لفئة تهيئة API رقم 3 [SWS_NvM_00560]. يمكن لبيئة وحدة NvM تفعيل الحماية من الكتابة أو تعطيلها بشكل هادف عبر المعلمة ProtectionEnabled [SWS_NvM_00578]. تُرجع الدالة E_OK عند التنفيذ الناجح وE_NOT_OK في حالة الخطأ [SWS_NvM_00450].

القيود والتزامن

لا يُسمح بتغيير الحماية من الكتابة إلا للكتل التي تم تكوين 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].

تستند ملاحظة الاستخدام هذه إلى مواصفة NVRAM Manager في AUTOSAR Classic R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_GetErrorStatus [SWS_NvM_00451] 📄 PDF

Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);

Service to read the block dependent error/ status information.

دالة NvM_SetRamBlockStatus [SWS_NvM_00453] 📄 PDF

Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);

Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f2f026a0e790 المصدر
مترجم من الدليل الألمانيمُولَّد بالذكاء الاصطناعيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدَم الدالة المتزامنة والقابلة لإعادة الدخول NvM_SetRamBlockStatus لتعيين حالة كتلة RAM لكتل RAM الدائمة أو للكتل ذات المزامنة الصريحة [SWS_NvM_00453]. وهي متاحة في فئات تهيئة API رقم 2 و3 [SWS_NvM_00561]، [SWS_NvM_00560]، بشرط تفعيلها عبر معلمة التهيئة NvMSetRamBlockStatusApi [SWS_NvM_00408].

عبر المعلمة BlockChanged، يتم التحكم فيما إذا كان سيتم تمييز الكتلة بأنها صالحة ومعدلة (TRUE) أو غير صالحة وغير معدلة (FALSE) [SWS_NvM_00453]، [SWS_NvM_00406]. عند تمرير TRUE تفترض الوحدة صلاحية البيانات [SWS_NvM_00241]. تُرجع الدالة E_OK عند تغيير الحالة بنجاح وE_NOT_OK في حالة الخطأ [SWS_NvM_00453].

إذا تم تعيين BlockChanged إلى TRUE، فإن الدالة تطلب في الخلفية إعادة حساب المجموع التدقيقي في NvM_MainFunction، في حال تم تكوين NvMCalcRamBlockCrc [SWS_NvM_00121]. بالنسبة للكتل التي ليس لها RAM دائمة والمزودة بمزامنة صريحة، تستخدم هذه المهمة رد نداء الكتابة للحصول على البيانات [SWS_NvM_00906]. وإذا فشل ذلك، يتم إجراء عمليات إعادة المحاولة المكونة لكل استدعاء لـ NvM_MainFunction [SWS_NvM_00907]، [SWS_NvM_00908]. وإذا ظلت جميع المحاولات غير ناجحة، فإن المهمة تُعتبر منتهية مع ذلك وتظل الكتلة مميزة بأنها معدلة [SWS_NvM_00909].

قبل الاستدعاء، يجب أن تكون وحدة NvM مهيأة [SWS_NvM_00711]. وعندما يكون اكتشاف أخطاء التطوير نشطاً، تُبلّغ الدالة عن NVM_E_UNINIT في حالة عدم تهيئة الوحدة [SWS_NvM_00643]، وNVM_E_PARAM_BLOCK_ID عند وجود BlockId غير صالحة [SWS_NvM_00645]، وNVM_E_BLOCK_PENDING في حالة وجود طلبات قيد التشغيل بالفعل أو مدرجة في قائمة الانتظار [SWS_NvM_00644]. وطالما أن طلب الكتلة الفردية نشط، فلا يجوز استدعاء الدالة لهذه الكتلة [SWS_NvM_00704]. ولا يمكن تعديل قفل الكتلة المعين عبر NvM_SetBlockLockStatus من خلال هذا الإجراء [SWS_NvM_00754].

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

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_SetBlockLockStatus [SWS_NvM_00548] 📄 PDF

void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);

Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 9c1d841bb0f7 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام وسياق الاستدعاء

تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول NvM_SetBlockLockStatus لقفل (BlockLocked = TRUE) أو إلغاء قفل (BlockLocked = FALSE) كتلة RAM مكوّنة بشكل دائم أو للمزامنة الصريحة لكتلة NVRAM [SWS_NvM_00548]. وتنتمي إلى نطاق وظائف فئات تكوين API رقم 2 و3 [SWS_NvM_00561]، [SWS_NvM_00560]. لا تتضمن واجهة ServicePort هذه الدالة، ويتم استدعاؤها في المقام الأول بواسطة DCM وكذلك بواسطة برامج تشغيل الأجهزة المعقدة (CDD) [SWS_NvM_00732].

القيود والتفاعل

يؤثر الاستدعاء حصريًا على كتل NVRAM ذات كتلة RAM الدائمة أو المزامنة الصريحة المكوّنة؛ ويبقى دون تأثير مع جميع الكتل الأخرى [SWS_NvM_00732]. وإذا تم قفل كتلة (BlockLocked = TRUE)، تضمن NvM عدم تعديل بيانات NV المرتبطة بها: حيث يتم تخطي الكتلة عند NvM_WriteAll، وتُرفض الخدمات NvM_WriteBlock وNvM_WritePRAMBlock وNvM_InvalidateNvBlock وNvM_EraseNvBlock [SWS_NvM_00751]. وعند بدء التشغيل التالي، تضمن NvM تحميل الكتلة من ذاكرة NV عند NvM_ReadBlock أو NvM_ReadPRAMBlock [SWS_NvM_00752]. ولا يمكن تعديل حالة القفل المضبوطة عبر NvM_SetRamBlockStatus ولا عبر NvM_SetBlockProtection [SWS_NvM_00754]. ويعيد تمرير BlockLocked = FALSE المعالجة المنتظمة [SWS_NvM_00753].

معالجة الأخطاء

عند تفعيل ميزة اكتشاف أخطاء التطوير (DET)، تبلغ الدالة عن أخطاء تطوير محددة:

  • NVM_E_UNINIT، إذا كانت وحدة NvM لم تتم تهيئتها بعد في وقت الاستدعاء [SWS_NvM_00728].
  • NVM_E_PARAM_BLOCK_ID، عندما تكون المعلمة BlockId خارج النطاق المسموح به [SWS_NvM_00731].
  • NVM_E_BLOCK_CONFIG، إذا تم تكوين كتلة NVRAM المشار إليها باستخدام المعلمة NvMWriteBlockOnce = TRUE [SWS_NvM_00730].

تستند ملاحظة الاستخدام هذه إلى مواصفة AUTOSAR Classic رقم R20-11 وتلخص متطلبات الاستدعاء والتأثير الوقائي ومعالجة الأخطاء الخاصة بـ API.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_CancelJobs [SWS_NvM_00535] 📄 PDF

Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);

Service to cancel all jobs pending for a NV block.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 692d02b963f0 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

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

تُستخدم الدالة NvM_CancelJobs المتوفرة عبر NvM.h لإلغاء جميع الوظائف المعلقة في قائمة الانتظار لكتلة 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]. والهدف من هذا التنظيف هو إفراغ قائمة الانتظار، على سبيل المثال عند إنهاء قسم (Partition) أو إعادة تشغيله، وبالتالي منع الإخطارات اللاحقة عن الوظائف المكتملة [SWS_NvM_00225].

معالجة الأخطاء والتوصيف

عند تفعيل ميزة اكتشاف أخطاء التطوير (DET)، تتحقق الدالة من الشروط المسبقة: إذا كانت الوحدة لا تزال غير مهيأة، يتم الإبلاغ عن الخطأ NVM_E_UNINIT [SWS_NvM_00648]. وإذا كانت قيمة BlockId الممررة خارج النطاق الصالح، يصدر بلاغ DET رقم NVM_E_PARAM_BLOCK_ID [SWS_NvM_00649]. تُصنف NvM_CancelJobs كـ API من النوع 2 وهي متاحة في فئات تكوين API رقم 2 و3 [SWS_NvM_00561]، [SWS_NvM_00560].

تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفات AUTOSAR.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_ReadBlock [SWS_NvM_00454] 📄 PDF

Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 423f54bb75f5 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

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

تُستخدم الدالة NvM_ReadBlock للنسخ غير التزامني لبيانات المستخدم من ذاكرة NV إلى كتلة RAM المقترنة [SWS_NvM_00010]، [SWS_NvM_00454]. الاستدعاء قابل لإعادة الدخول [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].

أُنشئ هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى مواصفات الإصدار R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_WriteBlock [SWS_NvM_00455] 📄 PDF

Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);

Service to copy the data of the RAM block to its corresponding NV block. Available vi a Nv M.h

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d2775f30ff1b المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدَم الدالة NvM_WriteBlock لنسخ بيانات كتلة RAM إلى كتلة NV المخصصة لها [SWS_NvM_00455]، [SWS_NvM_00410]. يتم تنفيذ الاستدعاء بشكل متكرر الدخول وغير متزامن: تقبل الدالة المعلمات الممررة BlockId وكذلك NvM_SrcPtr، وتدرج طلب الكتابة في قائمة انتظار المهام الداخلية وتعود على الفور [SWS_NvM_00208]. تشير قيمة الإرجاع بـ E_OK إلى القبول الناجح للطلب أو بـ E_NOT_OK إلى رفضه [SWS_NvM_00455].

فيما يتعلق بضبط المعلمات ومصدر البيانات، تسري المتطلبات التالية:

  • إذا تم تمرير عنوان RAM صالح عبر NvM_SrcPtr، فإن طلب الكتابة يستخدم هذا المخزن المؤقت [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].
  • لا يُسمح بطلبات الكتابة لمعرف الكتلة المحجوز 1 إلا عند تفعيل NvMDynamicConfiguration [SWS_NvM_00311].

معالجة الأخطاء والتزامن:

  • إذا كان اكتشاف التطوير نشطاً، تُبلّغ NvM_WriteBlock عن خطأ DET رقم NVM_E_UNINIT في حالة عدم تهيئة الوحدة [SWS_NvM_00619]، وكذلك عن NVM_E_BLOCK_PENDING إذا كانت الكتلة نفسها قيد المعالجة بالفعل أو مدرجة في قائمة الانتظار [SWS_NvM_00620]. ويؤدي عدم وجود مؤشر مصدر للمخازن المؤقتة المؤقتة إلى حدوث خطأ DET في المعلمة [SWS_NvM_00280].
  • تزيد الردود السلبية من واجهة الذاكرة من عداد إعادة المحاولة؛ وبعد تجاوز NVM_MAX_NUM_OF_WRITE_RETRIES تنتهي المهمة بـ NVM_REQ_NOT_OK [SWS_NvM_00213]، [SWS_NvM_00216].
  • إذا تم تكوين الكتلة بأولوية فورية، تُلغي NvM_WriteBlock المهمة الجارية حالياً بشكل تدميري، حتى تتم معالجة طلب الكتابة في الخطوة التالية [SWS_NvM_00300].

تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_RestoreBlockDefaults [SWS_NvM_00456] 📄 PDF

Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 01efa016ebb0 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

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

تستعيد الدالة NvM_RestoreBlockDefaults البيانات الافتراضية في كتلة RAM المخصصة ([SWS_NvM_00456]، [SWS_NvM_00012]). وهي تعمل بشكل غير تزامني: بعد الاستدعاء، تتولى استلام المعلمات، وإدراج الطلب في قائمة انتظار المهام الداخلية، وتعود فورًا بـ E_OK عند القبول الناجح أو بـ E_NOT_OK عند الرفض ([SWS_NvM_00456]، [SWS_NvM_00224]). إذا تم تمرير عنوان RAM صالح عبر معامل الإخراج NvM_DestPtr، فسيتم استخدامه كعنوان وجهة ([SWS_NvM_00435]). ولنسخ بيانات ROM إلى كتلة RAM مؤقتة، على الرغم من تهيئة كتلة RAM دائمة أو دوال استرجاع للمزامنة، يجب على جهة الاستدعاء تمرير مؤشر لا يساوي NULL بشكل إلزامي ([SWS_NvM_00436]).

معالجة الأخطاء والشروط الحدية

الدالة غير قابلة لإعادة الدخول ([SWS_NvM_00456]) وهي جزء من فئتي تهيئة API رقم 2 و3 ([SWS_NvM_00561]، [SWS_NvM_00560]). إذا كان اكتشاف أخطاء التطوير (DET) نشطًا، فإنها تبلغ عن NVM_E_UNINIT إذا كانت الوحدة غير مهيأة بعد ([SWS_NvM_00625])، وNVM_E_PARAM_BLOCK_ID في حال عدم صلاحية BlockId ([SWS_NvM_00630])، بالإضافة إلى خطأ في المعلمات إذا لم يتم تمرير مؤشر وجهة صالح للكتل المهيأة ككتل دائمة لأغراض النسخ المؤقت ([SWS_NvM_00436]). وتفشل الدالة تزامنيًا بـ E_NOT_OK إذا كانت الكتلة من النوع NVM_BLOCK_DATASET، وكان هناك كتلة ROM واحدة على الأقل، ويشير فهرس البيانات الحالي إلى كتلة NV ([SWS_NvM_00353]).

معالجة المهام والتفاعل

في إطار معالجة المهام غير التزامنية، تقوم الخدمة بتحميل القيم الافتراضية من كتلة ROM مهيأة ([SWS_NvM_00267]). وإذا طُلبت كتلة RAM دائمة أو تم استخدام دالة استرجاع صريحة للمزامنة (NvMReadRamBlockFromNvCallback)، يتم إبطال كتلة RAM قبل عملية النسخ أو قبل استدعاء دالة الاسترجاع ([SWS_NvM_00227]). بعد نجاح عملية النسخ أو بعد عودة دالة استرجاع المزامنة بـ E_OK، يتم التحقق من صحة كتلة RAM وتمييزها بأنها معدلة ([SWS_NvM_00228]). وإذا تم تهيئة مجموع اختباري للكتلة، تطلب المهمة أخيرًا إعادة حساب CRC ([SWS_NvM_00229]). وتستخدم الدالتان NvM_ReadBlock وNvM_ReadAll منطق الاستعادة نفسه كآلية بديلة عند حدوث وصول خاطئ لقراءة الذاكرة أو عند وجود أخطاء CRC ([SWS_NvM_00202]، [SWS_NvM_00293]، [SWS_NvM_00657]).

تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR Classic R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_EraseNvBlock [SWS_NvM_00457] 📄 PDF

Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);

Service to erase a NV block.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: e5129c2997d6 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم الدالة غير التزامنية القابلة لإعادة الدخول NvM_EraseNvBlock ([SWS_NvM_00457]) من فئة تهيئة API رقم 3 ([SWS_NvM_00560]) لمحو كتلة ذاكرة غير متطايرة استنادًا إلى BlockId الممررة. ما لم تكن الحماية من الكتابة نشطة، تتولى الدالة استلام المعلمات، وإدراج مهمة المحو في قائمة انتظار المهام الداخلية، وتعود فورًا ([SWS_NvM_00231]، [SWS_NvM_00418]). وتشير القيمة المرجعة E_OK إلى القبول الناجح للمهمة، بينما يشير E_NOT_OK إلى الرفض ([SWS_NvM_00457]).

قبل الاستدعاء، يجب أن تكون وحدة NvM مهيأة بالكامل ([SWS_NvM_00715]). بعد الإدراج في قائمة الانتظار، لا يتم فحص الحماية من الكتابة مجددًا قبل سحب المهمة من قائمة الانتظار ([SWS_NvM_00662]). بالنسبة للكتل المكررة من النوع NVM_BLOCK_REDUNDANT، لا تُعتبر عملية المحو ناجحة إلا بعد محو كلتا كتلتي NV المكررتين ([SWS_NvM_00269]). يظل محتوى البيانات لكتلة RAM المخصصة دون تغيير دائمًا طوال تنفيذ المهمة ([SWS_NvM_00416]).

يتم رفض الاستدعاء إذا تمت عنونة كتلة ROM خاصة بكتلة مجموعة بيانات ([SWS_NvM_00661]) أو إذا كانت الكتلة مقفلة بواسطة NvM_SetBlockLockStatus ([SWS_NvM_00751]). وعند تفعيل ميزة اكتشاف أخطاء التطوير (DET)، تبلغ الدالة عن NVM_E_UNINIT عند عدم تهيئة الوحدة ([SWS_NvM_00631])، وعن NVM_E_PARAM_BLOCK_ID عند وجود BlockId غير صالحة ([SWS_NvM_00635])، بالإضافة إلى NVM_E_BLOCK_LOCKED عند حظر الكتلة ([SWS_NvM_00757]). وإذا لم تكن للكتلة أولوية فورية ("immediate priority") أو تم تكوينها بأولوية قياسية، فسيتم الإبلاغ عن الخطأ NVM_E_BLOCK_CONFIG وإرجاع E_NOT_OK عند تنشيط DET ([SWS_NvM_00357]، [SWS_NvM_00636]). وإذا فشل التنفيذ غير المتزامن اللاحق، تُضبط حالة الطلب على NVM_REQ_NOT_OK ([SWS_NvM_00271]) ويتم إبلاغ DEM بالخطأ NVM_E_REQ_FAILED ([SWS_NvM_00663]).

تم توليد ملاحظة الاستخدام هذه تلقائياً بناءً على المواصفة.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_InvalidateNvBlock [SWS_NvM_00459] 📄 PDF

Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);

Service to invalidate a NV block.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a20887273850 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الدالة NvM_InvalidateNvBlock هي خدمة غير متزامنة وقابلة لإعادة الدخول تتبع فئة تكوين API رقم 3 لإبطال صلاحية كتلة NV‏ [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].

يتم رفض الاستدعاء بشكل متزامن مع E_NOT_OK إذا تم تحديد كتلة ROM لكتلة مجموعة بيانات (Dataset) عبر BlockId [SWS_NvM_00664]. وإذا كانت الكتلة قد أُقفلت سابقًا عبر NvM_SetBlockLockStatus، ترفض NvM الوظيفة [SWS_NvM_00751] وتبلغ عن خطأ DET رقم NVM_E_BLOCK_LOCKED عند تفعيل واجهة التطوير [SWS_NvM_00756]. وإذا كانت الكتلة مدرجة بالفعل في قائمة الانتظار أو قيد التنفيذ، يتم إصدار رسالة DET رقم NVM_E_BLOCK_PENDING [SWS_NvM_00639].

تبطل الوظيفة الفعلية غير المتزامنة صلاحية كتلة NV المشار إليها [SWS_NvM_00421] مع مراعاة الشروط المحددة التالية:

  • بالنسبة للكتل المكررة (NVM_BLOCK_REDUNDANT)، لا يتم ضبط نتيجة الوظيفة على NVM_REQ_OK إلا بعد إبطال صلاحية كلتا كتلتي NV المكررتين بنجاح [SWS_NvM_00274]؛ وتُطبق الآلية نفسها أيضًا مع NvM_FirstInitAll [SWS_NvM_00919]، [SWS_NvM_00920].
  • بالنسبة للكتل ذات NVM_WRITE_BLOCK_ONCE، تُبقي الوظيفة الحماية من الكتابة دون تغيير [SWS_NvM_00960]. وإذا لم تكن هناك عملية قراءة سابقة، تبلغ الوظيفة عن خطأ DET رقم NVM_E_WRITE_ONCE_STATUS_UNKNOWN [SWS_NvM_00958].
  • إذا حدث خطأ أثناء المعالجة غير المتزامنة، تُضبط نتيجة الطلب على NVM_REQ_NOT_OK [SWS_NvM_00275] ويتم إرسال خطأ الإنتاج NVM_E_REQ_FAILED إلى DEM [SWS_NvM_00666].

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

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_ReadPRAMBlock [SWS_NvM_00764] 📄 PDF

Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 657ec2501bdc المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

تُستخدم الدالة غير المتزامنة والقابلة لإعادة الدخول [SWS_NvM_00764] لنسخ بيانات كتلة NV إلى كتلة RAM الدائمة المخصصة لها. يستلم الاستدعاء BlockId، ويدرج طلب القراءة في قائمة انتظار الوظائف الداخلية، ويعود على الفور [SWS_NvM_00766]. تؤكد قيمة الإرجاع E_OK قبول الوظيفة، بينما تشير E_NOT_OK إلى الرفض [SWS_NvM_00764]. تنتمي الدالة إلى نطاق وظائف فئات تكوين API رقم 2 و3 [SWS_NvM_00560]، [SWS_NvM_00561].

التسلسل والمزامنة

بمجرد إدراج الوظيفة بنجاح في قائمة الانتظار أو بدء المعالجة، يتم إبطال صلاحية كتلة RAM الدائمة على الفور [SWS_NvM_00767]. وإذا تم إعداد مزامنة صريحة للكتلة، يجوز للتطبيق تعديل كتلة RAM حتى وصول روتين المزامنة؛ وفي هذه الحالة، يتم إبطال الصلاحية مباشرة قبل استدعاء NvMReadRamBlockFromNvCallback [SWS_NvM_00706]، [SWS_NvM_00767]. وإذا تم نقل بيانات NV إلى RAM دون أخطاء، تكتمل الوظيفة بالحالة NVM_REQ_OK [SWS_NvM_00765]، [SWS_NvM_00775].

معالجة الأخطاء والتكرار

بالنسبة للكتل من النوع NVM_BLOCK_REDUNDANT، تبدأ الوظيفة تلقائيًا محاولة قراءة على الكتلة الثانية إذا فشلت محاولة القراءة الأولى [SWS_NvM_00768]. وبالنسبة لمجموعات البيانات (NVM_BLOCK_DATASET)، يتم منع النسخ إذا كانت كتلة NV المحددة عبر الفهرس غير متسقة [SWS_NvM_00771]؛ وإذا أشار الفهرس إلى بيانات ROM، فسيتم تحميلها وضبط النتيجة على NVM_REQ_OK [SWS_NvM_00772]. وإذا تم تكوين بيانات افتراضية وتعذرت قراءة كتلة NV عند وجود حالة RAM غير صالحة، تتم استعادة ضمنية [SWS_NvM_00575] تُصنف كتلة RAM بأنها صالحة ومعدلة [SWS_NvM_00774]؛ وبدون قيم افتراضية مكوّنة، يتم الاستغناء عن الاستعادة [SWS_NvM_00572]. وإذا كانت NvM_SetBlockLockStatus نشطة سابقًا، فسيتم فرض إعادة التحميل من ذاكرة NV‏ [SWS_NvM_00752].

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

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_WritePRAMBlock [SWS_NvM_00793] 📄 PDF

Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 5a26959f15b3 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تبدأ الدالة القابلة لإعادة الدخول وغير المتزامنة NvM_WritePRAMBlock كتابة بيانات كتلة RAM دائمة إلى كتلة NV المقابلة لها [SWS_NvM_00793]، [SWS_NvM_00794]. تتوفر الدالة في فئات تكوين API رقم 2 و3 [SWS_NvM_00561]، [SWS_NvM_00560]. ولا يجوز تمرير معرّف الكتلة المحجوز ID 1 إلا إذا تم تعيين NvMDynamicConfiguration على TRUE [SWS_NvM_00311].

عند التمرير، تُرجع الدالة E_OK عند القبول الناجح أو E_NOT_OK [SWS_NvM_00793]. وإذا كانت الكتلة المشار إليها مقفلة، يفشل الاستدعاء مع E_NOT_OK وتبلغ الوحدة عن خطأ DET‏ [SWS_NvM_00797]. ويتم التحقق من حماية الكتلة بالفعل عند الإدراج في قائمة انتظار الوظائف ولا تتم إعادة التحقق من صحتها قبل تنفيذ الوظيفة [SWS_NvM_00799]. وإذا كانت لكتلة NVRAM أولوية فورية (immediate priority)، فسيتم إلغاء الوظيفة الجارية على الفور بشكل تدميري وتتم معالجة وظيفة الكتابة هذه كالتالية [SWS_NvM_00800].

قبل النقل الفعلي إلى ذاكرة NV، تطلب الوظيفة إعادة حساب CRC إذا تم تكوين الكتلة مع CRC‏ [SWS_NvM_00801]. وتتحقق تلقائيًا من صحة كتلة RAM دائمة لا تزال غير صالحة [SWS_NvM_00803]. وفي الكتل المكررة (NVM_BLOCK_REDUNDANT)، تتم الكتابة إلى كلتا كتلتي NV، بدءًا من الكتلة التي لم تتم قراءتها في وظائف القراءة السابقة [SWS_NvM_00807]، [SWS_NvM_00808]. وفي حالة حدوث أخطاء في الكتابة، يتم تحديد عدد مرات إعادة المحاولة بواسطة NVM_MAX_NUM_OF_WRITE_RETRIES [SWS_NvM_00806]؛ وعند حدوث تجاوز، يضبط NvM نتيجة الوظيفة على NVM_REQ_NOT_OK [SWS_NvM_00804] ويبلغ DEM بالخطأ NVM_E_REQ_FAILED [SWS_NvM_00805].

فيما يتعلق بالتزامن: في المزامنة الضمنية، لا يجوز للتطبيق تعديل بيانات المخزن المؤقت بعد الاستدعاء حتى نهاية الوظيفة، بينما يظل وصول القراءة مسموحًا به [SWS_NvM_00698]. وفي المزامنة الصريحة، يجوز تعديل المخزن المؤقت حتى يتم استدعاء روتين رد النداء NvMWriteRamBlockToNvCallback [SWS_NvM_00705].

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

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_RestorePRAMBlockDefaults [SWS_NvM_00813] 📄 PDF

Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: ffad126a6872 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

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

تستعيد الدالة NvM_RestorePRAMBlockDefaults البيانات الافتراضية في كتلة RAM الدائمة المقترنة بها ([SWS_NvM_00813]، [SWS_NvM_00814]). تعمل الخدمة بشكل غير متزامن وتستقبل معرّف واصف كتلة NVRAM عبر المعلمة BlockId ([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: يوجد بالفعل طلب مدرج في قائمة الانتظار أو قيد المعالجة لمعرّف الكتلة (Block-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 الإصدار R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_ReadAll [SWS_NvM_00460] 📄 PDF

void NvM_ReadAll (void);

Initiates a multi block read request.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: d6aaa62b8e91 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تطلق الدالة NvM_ReadAll بشكل غير متزامن طلب قراءة متعدد الكتل لتهيئة كتل بيانات RAM [SWS_NvM_00460]، [SWS_NvM_00158]. وليس لها معلمات، ولا تُرجع أي قيمة، وهي غير قابلة لإعادة الدخول [SWS_NvM_00460]. يشير الاستدعاء إلى الطلب إلى وحدة NvM ويعود على الفور؛ ومع ذلك يتم تأخير التنفيذ الفعلي حتى تصبح جميع قوائم انتظار طلبات الكتل الفردية فارغة [SWS_NvM_00243].

في البداية، يتحقق الطلب أثناء بدء تشغيل النظام من معرف التهيئة عن طريق مقارنة القيمة المخزنة بالقيمة المترجمة [SWS_NvM_00073]، [SWS_NvM_00246]:

  • في حالة التطابق، يتم إجراء التحضير العادي لجميع الكتل المهيأة [SWS_NvM_00247].
  • يتم تجاهل اختلاف التهيئة إذا تم تعيين NvMDynamicConfiguration == FALSE [SWS_NvM_00248].
  • إذا كان NvMDynamicConfiguration == TRUE وNvMResistantToChangedSw == FALSE، يتم إجراء تحضير موسع في حالة عدم التطابق [SWS_NvM_00249].

بعد ذلك، يكرر الطلب عبر جميع كتل المستخدمين، بدءاً من أدنى معرف كتلة (باستثناء المعرفين المحجوزين 0 و1) [SWS_NvM_00244]. وتُؤخَذ في الاعتبار كتل RAM الدائمة أو الكتل ذات رد نداء المزامنة المهيأ NvM_ReadRamBlockFromNvm، بشرط تكوين NvmSelectBlockForReadall == TRUE [SWS_NvM_00118]. وتحصل الكتل المحددة ولكن غير المقروءة على النتيجة NVM_REQ_BLOCK_SKIPPED [SWS_NvM_00287].

في حالة الكتل المكررة (NVM_BLOCK_REDUNDANT)، يُقرأ تلقائيًا كتلة NV الثانية عند فشل محاولة القراءة الأولى [SWS_NvM_00288]. وبعد التحميل الناجح إلى RAM، تُضبط حالة الكتلة على «valid/unmodified» ونتيجة الطلب على NVM_REQ_OK [SWS_NvM_00251]، [SWS_NvM_00290]، [SWS_NvM_00291]. بالنسبة للكتل المزودة بـ NvMCalRamBlockCrC == TRUE، يطلب الطلب إعادة حساب CRC [SWS_NvM_00292]. وإذا كان مهيأً، يتم استدعاء NvMSingleBlockCallback لكل كتلة وMultiBlockCallback بعد الكتلة الأخيرة [SWS_NvM_00281].

تستند ملاحظة الاستخدام هذه إلى متطلبات المواصفة الخاصة بـ AUTOSAR Classic R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_WriteAll [SWS_NvM_00461] 📄 PDF

void NvM_WriteAll (void);

Initiates a multi block write request.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a7a2e73b7711 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام وسياق الاستدعاء

تبدأ الدالة NvM_WriteAll بشكل غير متزامن طلب كتابة متعدد الكتل ولا تحتوي على معلمات أو قيم إرجاع [SWS_NvM_00461]. بعد الاستدعاء، ترسل الدالة إشارة بالطلب إلى وحدة NvM وتعود فورًا [SWS_NvM_00254]. وتؤجل المعالجة الفعلية حتى تتم معالجة جميع قوائم الانتظار الخاصة بطلبات الكتل الفردية بالكامل [SWS_NvM_00254]. ويتم الاستدعاء عادةً في إطار عملية إيقاف التشغيل الأساسية (Shutdown) بواسطة BSW Mode Manager [SWS_NvM_00092].

التسلسل ومعالجة الكتل

أثناء إيقاف التشغيل (Shutdown)، يقوم الطلب بمزامنة كتل RAM الدائمة مع كتل NV المقترنة بها أو ينفّذ رد النداء للمزامنة الصريحة NvM_WriteRamBlockToNvm [SWS_NvM_00018]. وفي هذا السياق، لا تؤخذ في الاعتبار سوى الكتل التي تم ضبط معلمة التهيئة NvMSelectBlockForWriteAll لها على true [SWS_NvM_00252]، بالإضافة إلى الكتلة 1 في حالة وجود معرفات تهيئة مختلفة عند تفعيل التهيئة الديناميكية [SWS_NvM_00310]. وإذا تم تكوين CRC لكتلة NVRAM، يطلب الطلب إعادة الحساب قبل عملية الكتابة ويقوم بتحديث المجموع الاختباري [SWS_NvM_00253]. وبالنسبة للكتل المزودة بـ NvMWriteBlockOnce == TRUE، يقوم الطلب بعد الكتابة الناجحة بضبط راية الحماية من الكتابة فورًا في الكتلة الإدارية [SWS_NvM_00329].

التزامن ومعالجة الأخطاء

  • إعادة الدخول: الدالة غير قابلة لإعادة الدخول [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].

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_CancelWriteAll [SWS_NvM_00458] 📄 PDF

void NvM_CancelWriteAll (void);

Service to cancel a running Nv M_ Write All request.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 2a47a7f76a8b المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

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

تُستخدم الدالة NvM_CancelWriteAll لإلغاء عملية كتابة متعددة الكتل قيد التشغيل (NvM_WriteAll) قبل أوانها [SWS_NvM_00458]، [SWS_NvM_00019]. الاستدعاء غير متزامن وغير قابل لإعادة الدخول، ولا يقبل أي معلمات ولا يرجع أي قيمة [SWS_NvM_00458]. تشير الدالة إلى الرغبة في الإلغاء مباشرة إلى الوحدة وتعود على الفور [SWS_NvM_00232]. لا يتم إدراج الطلب في قائمة انتظار الوظائف؛ حيث لا يمكن أن يكون هناك سوى طلب واحد معلق من هذا النوع في أي وقت [SWS_NvM_00420]. وإذا لم تكن هناك أي عملية نشطة في وقت الاستدعاء، فلن يكون للاستدعاء أي تأثير [SWS_NvM_00233].

التسلسل واتساق البيانات

يتم تنفيذ الإلغاء بطريقة تضمن عدم الإخلال باتساق بيانات كتلة NVRAM التي تتم معالجتها في وقت الإلغاء [SWS_NvM_00019]. وتنهي الوحدة معالجة هذه الكتلة النشطة بشكل منتظم وتضبط سمة حالتها على NVM_REQ_OK أو NVM_REQ_NOT_OK بناءً على النجاح، بينما يتم ضبط جميع الكتل المتبقية المعلقة على NVM_REQ_CANCELED [SWS_NvM_00236]. تكون النتيجة الإجمالية محددة ضمنيًا بنتيجة العملية الملغاة [SWS_NvM_00235]، ويتم تخزينها في متغير منفصل [SWS_NvM_00393] ويمكن الاستعلام عنها عبر NvM_GetErrorStatus مع تحديد معرّف الكتلة المحجوز ID 0 [SWS_NvM_00394]. بالإضافة إلى ذلك، يمكن اختياريًا إخطار رد نداء ذي مستوى أعلى (NvMMultiBlockCallback) [SWS_NvM_00260]. وإذا تم تكوين ذلك عبر NvMDrvModeSwitch، تُحوّل الوظيفة أجهزة التخزين إلى وضع التشغيل البطيء ("slow-mode") بعد الإلغاء [SWS_NvM_00681].

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

يخضع استدعاء NvM_CancelWriteAll لقيود وظيفية ولا يجوز إجراؤه إلا بواسطة مدير وضع BSW‏ (BswM) [SWS_NvM_00703]. بالإضافة إلى ذلك، تنتمي الدالة إلى فئة تكوين API رقم 2 [SWS_NvM_00561]. ويجب أن تكون الوحدة قد خضعت للتهيئة قبل الاستدعاء [SWS_NvM_00716]؛ وعند تفعيل ميزة اكتشاف أخطاء التطوير (DET)، يؤدي الاستدعاء في حالة غير مهيأة إلى رسالة خطأ NVM_E_UNINIT [SWS_NvM_00637].

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_ValidateAll [SWS_NvM_00855] 📄 PDF

void NvM_ValidateAll (void);

Initiates a multi block validation request.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 234ca1eec615 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تبدأ الدالة NvM_ValidateAll التحقق غير المتزامن من صحة كتل NVRAM متعددة ([SWS_NvM_00855]) وتنتمي إلى فئة تكوين API رقم 3 ([SWS_NvM_00560]). وهي غير قابلة لإعادة الدخول، ولا تتوقع أي معلمات ولا ترجع أي قيمة ([SWS_NvM_00855]). ويجب تهيئة وحدة NvM قبل الاستدعاء ([SWS_NvM_00859]).

عند الاستدعاء، تشير الدالة بالطلب إلى الوحدة وتعود على الفور ([SWS_NvM_00858]). ومع ذلك، تتأخر المعالجة الفعلية حتى تكتمل معالجة جميع قوائم انتظار وظائف الكتل الفردية تمامًا ([SWS_NvM_00858]). بالنسبة لوظائف الكتل المتعددة، تتوفر مساحة واحدة فقط إجمالاً في قائمة انتظار الوظائف ([SWS_NvM_00380]). وتتم إدارة النتيجة الإجمالية للوظيفة غير المتزامنة في متغير حالة منفصل ([SWS_NvM_00393]).

كجزء من معالجة الوظيفة، يتم مسبقًا ضبط كل من نتيجة الكتل المتعددة ونتائج الكتل الفردية المعنية على NVM_REQ_PENDING ([SWS_NvM_00861]). وتراعي المعالجة حصريًا الكتل التي تم تكوين NvMBlockUseAutoValidation لها على TRUE ([SWS_NvM_00856]، [SWS_NvM_00860]):

  • تتم معالجة كتل RAM الدائمة أو تنفيذ المزامنة الصريحة عبر رد النداء NvM_WriteRamBlockToNvm ([SWS_NvM_00860]).
  • تُضبط حالة كتلة RAM على "VALID / CHANGED" ([SWS_NvM_00856]).
  • إذا تم بالإضافة إلى ذلك تكوين حساب CRC في RAM، تطلب الوظيفة إعادة الحساب في الخلفية، والتي تتم معالجتها عبر NvM_MainFunction ([SWS_NvM_00857]).
  • بعد التحقق الناجح من صحة كتلة RAM، تتغير النتيجة الخاصة بالكتلة إلى NVM_REQ_OK ([SWS_NvM_00862]).

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_FirstInitAll [SWS_NvM_91001] 📄 PDF

void NvM_FirstInitAll (void);

The function initiates a multi block first initialization request. The job of the function does not care if a block exists in the non - volatile memory or not OR if it is valid (i.e. not corrupted) or not, when processing it.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 97732570bd55 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تبدأ الدالة NvM_FirstInitAll التهيئة الأولية غير المتزامنة لكتل متعددة مكوّنة ([SWS_NvM_91001]). الخدمة غير قابلة لإعادة الدخول، ولا تتوقع أي معلمات ولا ترجع أي قيمة ([SWS_NvM_91001]). ولا يُراعى أثناء المعالجة ما إذا كانت الكتلة موجودة بالفعل في الذاكرة غير المتطايرة أو صالحة أو تالفة ([SWS_NvM_91001]). يبلغ طول قائمة انتظار وظائف الكتل المتعددة (بما في ذلك من NvM_FirstInitAll) واحدًا، بحيث لا يمكن إدراج سوى وظيفة واحدة متعددة الكتل في نفس الوقت ([SWS_NvM_00380]).

تختلف المعالجة وفقًا لنوع إدارة الكتلة:

  • NATIVE: إذا كانت هناك بيانات افتراضية، تتم كتابة كتلة NV بها ([SWS_NvM_00913]). وإذا كانت الكتلة تمتلك ذاكرة RAM دائمة أو مزامنة صريحة، فسيتم تحديث RAM بالبيانات الافتراضية (ROM أو رد نداء التهيئة) كما في NvM_RestoreBlockDefaults ([SWS_NvM_00915])؛ وبدون RAM دائمة وبدون مزامنة صريحة، يعمل المخزن المؤقت الداخلي لـ NvM كذاكرة RAM، مع بقاء حالة RAM دون تغيير ([SWS_NvM_00914]). وإذا كانت البيانات الافتراضية مفقودة ([SWS_NvM_00919]) أو فشل رد نداء التهيئة المكوّن بقيمة إرجاع لا تساوي E_OK ([SWS_NvM_00921])، يتم إبطال صلاحية الكتلة.
  • REDUNDANT: في حال توفر بيانات افتراضية، تتم كتابة كلا مثيلي الكتلة بها ([SWS_NvM_00916]) وتحديث RAM في حال وجود RAM دائمة أو مزامنة صريحة ([SWS_NvM_00918])؛ وإلا يتم استخدام المخزن المؤقت الداخلي ([SWS_NvM_00917]). وإذا لم يُرجع رد نداء التهيئة 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.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_JobEndNotification [SWS_NvM_00462] 📄 PDF

void NvM_JobEndNotification (void);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 44e91f5e39db المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

يتم استدعاء دالة رد النداء المتزامنة NvM_JobEndNotification بواسطة تجريد التخزين الأدنى للإشارة إلى النهاية الخالية من الأخطاء لوظيفة ما إلى مدير NVRAM [SWS_NvM_00462]. لا تحتوي الدالة على معلمات أو قيمة إرجاع وتتوفر عبر ملف الرأس NvM_MemIf.h مع معرّف الخدمة Service-ID 0x11 [SWS_NvM_00462]. يشمل الإخطار الناجح لتجريد التخزين عمليات القراءة أو الكتابة أو المسح المكتملة بنجاح [SWS_NvM_00111].

التزامن والقيود

تم تحديد الواجهة على أنها غير قابلة لإعادة الدخول [SWS_NvM_00462]. واعتمادًا على الدالة المستدعية داخل تجريد التخزين، يمكن تنفيذ هذا الروتين في سياق المقاطعة (Interrupt) [SWS_NvM_00111]. ينبغي تكوين جميع وحدات تجريد التخزين لاستخدام الوضع نفسه بشكل موحد — إما رد النداء أو الاستقصاء (Polling) [SWS_NvM_00111].

التكوين والتفاعل

توفر وحدة NvM دالة رد النداء NvM_JobEndNotification فقط إذا تم تعطيل وضع الاستقصاء عبر معلمة التكوين NvMPollingMode [SWS_NvM_00440]. علاوة على ذلك، تتأثر الدالة بمعلمات تكوين NvM العامة [SWS_NvM_00440].

تستند ملاحظة الاستخدام هذه إلى مواصفات AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_JobErrorNotification [SWS_NvM_00463] 📄 PDF

void NvM_JobErrorNotification (void);

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: aca80117b4e4 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم دالة رد النداء NvM_JobErrorNotification ([SWS_NvM_00463]) بواسطة طبقة تجريد التخزين الأدنى للإشارة إلى النهاية الخاطئة لوظيفة غير متزامنة إلى وحدة مدير NVRAM‏ (NvM). يتم الاستدعاء بشكل متزامن وتم تحديده على أنه غير قابل لإعادة الدخول ([SWS_NvM_00463]).

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

  • الواجهة: يتم توفير إعلان الدالة عبر ملف الرأس NvM_MemIf.h ([SWS_NvM_00463]).
  • التوقيع: وفقًا لـ void NvM_JobErrorNotification(void)، لا تحتوي الدالة على معلمات إدخال أو إخراج أو إدخال/إخراج ولا تُرجع أي قيمة ([SWS_NvM_00463]).
  • معرّف الخدمة: يتم التعرف على الدالة عبر المعرّف الست عشري 0x12 ([SWS_NvM_00463]).

الاعتماد على التهيئة والتباين

توفر الوحدة NvM دالة رد النداء NvM_JobErrorNotification فقط إذا تم تعطيل وضع الاستقصاء عبر معلمة التكوين NvMPollingMode ([SWS_NvM_00441]). وإذا تم استخدام الاستقصاء، فسيتم الاستغناء عن آلية الإخطار هذه. بالإضافة إلى ذلك، تتأثر الدالة بمعلمات التكوين العامة وفقًا لـ [SWS_NvM_00028] لم يُستورد النص بعد ([SWS_NvM_00441]).

معالجة الأخطاء والتزامن

تُستخدم الدالة حصريًا للإبلاغ عن أخطاء الوظائف ولا تحدد رموز أخطاء خاصة بها ولا استجابات DET أو DEM ([SWS_NvM_00463]). ونظرًا لتصنيفها على أنها Non Reentrant، فمن المفترض أنه يقع على عاتق المستدعي في تجريد التخزين ضمان عدم حدوث استدعاءات متداخلة أو مقاطعة ([SWS_NvM_00463]). سؤال Q-5f72d9d605c25922 (مفتوح)

تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR Classic R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_MainFunction [SWS_NvM_00464] 📄 PDF

void NvM_MainFunction (void);

Service for performing the processing of the Nv M jobs.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: e37fc51f7baf المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

لا تمتلك الدالة NvM_MainFunction معلمات تمرير ولا قيمة إرجاع (void NvM_MainFunction(void)) ومُعلن عنها عبر SchM_NvM.h ([SWS_NvM_00464]). وتُستخدم لتنفيذ وظائف مدير NVRAM‏ ([SWS_NvM_00464]، [SWS_NvM_00256]). وبعد الانتهاء من خدمة غير متزامنة، تنفذ روتينات رد النداء المكوّنة لإخطار الطبقة العليا ([SWS_NvM_00347]). بالإضافة إلى ذلك، تتولى عمليات إعادة حساب CRC المطلوبة في الخلفية لكتل NVRAM‏ ([SWS_NvM_00333])، على سبيل المثال نتيجة لـ NvM_SetRamBlockStatus ([SWS_NvM_00121]) أو NvM_ValidateAll ([SWS_NvM_00857]).

التحكم في التسلسل وتحديد الأولويات

إذا تم تكوينها، تراقب الدالة قائمة انتظار الأولوية الفورية (Immediate-Priority-Queue) للبحث عن الطلبات ذات الأولوية الفورية ([SWS_NvM_00259]). وإذا تم إلغاء طلب عادي بشكل تدميري بواسطة وظيفة فورية، تُعيد NvM_MainFunction تشغيله بعد اكتمال تلك الوظيفة ([SWS_NvM_00258]). وعند تنشيط وضع الاستقصاء، فإنها تتحقق من حالة الوظائف التي تم تسليمها إلى الطبقة الأدنى ([SWS_NvM_00346]). وأثناء معالجة NvM_WriteAll، تستعلم دوريًا عن حالة تجريد برنامج تشغيل التخزين عبر MemIf_GetStatus لـ MEMIF_BROADCAST_ID وتؤخر ردود النداء إلى الطبقة العليا طالما يتم الإبلاغ عن MEMIF_BUSY_INTERNAL ([SWS_NvM_00350]).

معالجة الأخطاء وإعادة المحاولة

إذا فشلت ردود النداء الخاصة بالتطبيق، تتحكم NvM_MainFunction في محاولات إعادة المحاولة:

  • إذا أرجعت NvMReadRamBlockFromNvCallback القيمة E_NOT_OK، تُكرر الوحدة الاستدعاء في الدورة التالية لـ NvM_MainFunction ([SWS_NvM_00839]).
  • إذا أرجعت NvMWriteRamBlockToNvCallback القيمة E_NOT_OK، تتم إعادة المحاولة أيضًا في الاستدعاء التالي لـ NvM_MainFunction ([SWS_NvM_00840]).
  • إذا أرجع رد نداء المزامنة الصريحة القيمة E_NOT_OK عند NvM_SetRamBlockStatus، تُنفذ الوحدة عمليات إعادة المحاولة المكوّنة بمعدل محاولة واحدة لكل استدعاء لـ NvM_MainFunction ([SWS_NvM_00908]).

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

دليل المنفِّذ قيد الإعداد (التعقيد I2)

دالة NvM_SingleBlockCallbackFunction [SWS_NvM_00467] 📄 PDF

Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);

Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f9058239e263 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام

يخطر روتين رد النداء NvM_SingleBlockCallbackFunction الطبقة العليا بشكل متزامن باكتمال طلب كتلة أحادية غير متزامن تم بدؤه مسبقًا [SWS_NvM_00467].

تعالج الدالة معلمتي تمرير [SWS_NvM_00467]:

  • BlockRequest (من النوع NvM_BlockRequestType): يمرر نوع طلب الكتلة المنفذ سابقًا، مثل عمليات القراءة أو الكتابة [SWS_NvM_00467].
  • JobResult (من النوع NvM_RequestResultType): يبلغ عن النتيجة الإجمالية لوظيفة الكتلة المعالجة [SWS_NvM_00467].

تُرجع الدالة النوع Std_ReturnType كقيمة إرجاع [SWS_NvM_00467]. وتتم الإشارة إلى المعالجة الناجحة لرد النداء من خلال إرجاع E_OK؛ وتشير أي قيمة إرجاع أخرى إلى تنفيذ غير ناجح [SWS_NvM_00467].

معالجة الأخطاء والتزامن

لا تحدد الواجهة أي رسائل خطأ DET أو DEM خاصة بها [SWS_NvM_00467]. يتم نقل نتيجة الوظيفة السابقة عبر المعلمة JobResult، بينما يتم الإبلاغ عن الأخطاء داخل معالجة رد النداء نفسها عبر قيمة إرجاع الدالة [SWS_NvM_00467].

فيما يتعلق بالتزامن، تم الإعلان عن الروتين على أنه غير قابل لإعادة الدخول (Non Reentrant) [SWS_NvM_00467]. ويتم توفيره عبر ملف الرأس NvM_Externals.h [SWS_NvM_00467]. ويُرجح أن يتم الاستدعاء بواسطة وحدة NvM بشكل متزامن في سياق مهمة (Task Context) معالجة وظائف NvM الدورية (تفسير). سؤال Q-f50640211851274f (مفتوح)

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_MultiBlockCallbackFunction [SWS_NvM_00468] 📄 PDF

Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);

Common callback routine to notify the upper layer that an asynchronous multi block request has been finished. Available v ia Nv M_ Externals.h

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: a3c38e2b6191 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يخطر روتين رد النداء NvM_MultiBlockCallbackFunction الطبقة العليا باكتمال وظيفة متعددة الكتل غير متزامنة بدأت سابقًا [SWS_NvM_00468]. ويتم توفير إعلان الدالة عبر ملف الرأس NvM_Externals.h [SWS_NvM_00468].

سياق الاستدعاء والمعلمات

يتم الاستدعاء بواسطة مدير NVRAM بشكل متزامن مع المعالجة في تسلسل التنفيذ [SWS_NvM_00468]. وعند الاستدعاء، يتم تمرير معلمتين إلى الروتين:

  • MultiBlockRequest (من النوع NvM_MultiBlockRequestType): يحدد نوع الطلب الفعلي لوظيفة الكتل المتعددة المعالجة سابقًا، مثل عمليات الوصول للقراءة أو الكتابة [SWS_NvM_00468].
  • JobResult (من النوع NvM_RequestResultType): ينقل النتيجة النهائية لمعالجة وظيفة الكتل المتعددة السابقة إلى الطبقة العليا [SWS_NvM_00468].

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

يرجع الروتين قيمة من النوع Std_ReturnType إلى الوحدة المستدعية [SWS_NvM_00468]. وتشير قيمة الإرجاع E_OK إلى إمكانية معالجة دالة رد النداء بنجاح؛ بينما تشير أي قيمة إرجاع أخرى إلى فشل المعالجة [SWS_NvM_00468]. لا توجد رموز أخطاء محددة أو رسائل DET أو DEM معرفة في نطاق المواصفات لهذه الدالة. تفسير: يُرجح أن تكون النتائج المحددة لقيمة إرجاع لا تساوي E_OK معتمدة على التنفيذ الخاص، حيث لا يفرض المعيار معالجة أخطاء لاحقة. سؤال Q-462dea7f3074ae9c (مفتوح)

التزامن والقيود

تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_NvM_00468]. لذلك، يجب التأكد داخل النظام المستدعي من عدم حدوث استدعاءات متعددة متزامنة أو مقاطعة لواجهة رد النداء هذه.

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_InitBlockCallbackFunction [SWS_NvM_00469] 📄 PDF

Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);

Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M block is not configured. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_NVRAMManager

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 6fa779cf7b62 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الاستخدام وسياق الاستدعاء

تستدعي وحدة NvM روتين رد النداء الخاص بالمستخدم NvM_InitBlockCallbackFunction عندما يلزم استعادة البيانات الافتراضية لكتلة NVRAM في RAM ولا تكون كتلة ROM المقابلة مكوّنة [SWS_NvM_00469]. يتم الاستدعاء بشكل متزامن وتُعلن الواجهة عبر ملف الرأس NvM_Externals.h [SWS_NvM_00469].

تتلقى الدالة InitBlockRequest من النوع NvM_InitBlockRequestType كمعلمة تمرير [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 ينتظر متزامنًا عودة الدالة، فمن المرجح أن يؤدي التنفيذ الحاصر (Blocking) داخل الروتين إلى إيقاف المتابعة الفورية لمعالجة NvM (تفسير). سؤال Q-c0e43c9871c4f2d0 (مفتوح)

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_WriteRamBlockToNvm [SWS_NvM_00539] 📄 PDF

Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);

Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M module's mirror.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 5243b53cfd03 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

تُستخدم دالة رد النداء الخاصة بالكتلة NvM_WriteRamBlockToNvm للمزامنة الصريحة لنسخ بيانات التطبيق من كتلة RAM إلى مرآة RAM الداخلية لوحدة NvM [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]، بشرط تكوين المعلمة NvMSelectBlockForWriteAll لكتلة NVRAM على true [SWS_NvM_00252].
  • تتحقق وظائف الكتابة NvM_WriteBlock [SWS_NvM_00303] وNvM_WritePRAMBlock [SWS_NvM_00803] من صحة كتلة RAM دائمة غير صالحة بعد تلقائيًا بعد استدعاء NvM_WriteRamBlockToNvm.

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

دالة NvM_ReadRamBlockFromNvm [SWS_NvM_00540] 📄 PDF

Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);

Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to RAM block.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 1b2c937c4017 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

الدالة NvM_ReadRamBlockFromNvm هي روتين رد نداء خاص بالكتلة يتم الإعلان عنه عبر NvM_Externals.h [SWS_NvM_00540]. والغرض منها هو تمكين التطبيق من نسخ البيانات من المخزن المؤقت الداخلي للمرآة لوحدة NvM إلى كتلة RAM المرتبطة بها لإجراء مزامنة صريحة [SWS_NvM_00540]، [SWS_NvM_00118].

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

  • سياق الاستدعاء والتزامن: يتم الاستدعاء بشكل متزامن وتم تحديده على أنه غير قابل لإعادة الدخول (Non Reentrant) [SWS_NvM_00540].
  • المعلمات: يعمل المؤشر NvMBuffer (من النوع const void*) كمعلمة تمرير. وهو يمرر عنوان المخزن المؤقت الذي يمكن قراءة البيانات منه ونسخها إلى كتلة RAM [SWS_NvM_00540].
  • قيمة الإرجاع ومعالجة الأخطاء: تُرجع دالة رد النداء Std_ReturnType. وتشير قيمة الإرجاع E_OK إلى المعالجة الناجحة؛ بينما تشير أي قيمة إرجاع أخرى إلى معالجة غير ناجحة [SWS_NvM_00540].

تفاعل

كجزء من خدمة الكتل المتعددة NvM_ReadAll، يتم استدعاء NvM_ReadRamBlockFromNvm لكتل NVRAM المكوّنة وفقًا لذلك والتي ينطبق عليها NvmSelectBlockForReadall == TRUE لإجراء المزامنة الصريحة [SWS_NvM_00118]، [SWS_NvM_00356]. ويمثل هذا البديل لعملية النسخ المباشر إلى كتل RAM الدائمة، بينما تقوم NvM_ReadAll بتهيئة بيانات الإدارة للكتل [SWS_NvM_00356].

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

نوع NvM_MultiBlockRequestType [SWS_NvM_91003] 📄 PDF

Identifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw M

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: e84ff8330bcb المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يتم توفير نوع التعداد 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 (مفتوح)

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

دليل المنفِّذ قيد الإعداد (التعقيد I1)

نوع NvM_RequestResultType [SWS_NvM_00470] 📄 PDF

Type NvM_RequestResultType.

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 49d0056a8c31 المصدر
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يعتمد النوع NvM_RequestResultType على uint8، وهو متاح عبر Rte_NvM_Type.h ويمثل نتيجة الطلب غير المتزامن لطلبات القراءة والكتابة والتحكم الخاصة بمدير NVRAM [SWS_NvM_00470]. يتم الاستعلام عن النتيجة بشكل أساسي عبر خدمة API NvM_GetErrorStatus ويمكن إرسال إشارة بها بالإضافة إلى ذلك عبر دالة رد نداء مهيأة [SWS_NvM_00470].

يمثل نطاق القيم حالات تنفيذ وحالات خطأ مختلفة [SWS_NvM_00470]:

  • NVM_REQ_OK (0x00): تم إنهاء آخر طلب غير متزامن بنجاح؛ وهذه هي أيضًا القيمة الافتراضية بعد إعادة الضبط.
  • NVM_REQ_NOT_OK (0x01): لم ينتهِ طلب القراءة أو الكتابة أو التحكم غير المتزامن بنجاح.
  • NVM_REQ_PENDING (0x02): لا يزال هناك طلب غير متزامن قيد المعالجة حاليًا.
  • NVM_REQ_INTEGRITY_FAILED (0x03): خطأ في سلامة البيانات عند NvM_ReadBlock أو NvM_ReadAll. في حالة NvM_ReadBlock، تم تغيير محتوى كتلة RAM ولكنه أصبح غير صالح؛ ويقع على عاتق التطبيق مسؤولية تجديد المحتوى والتحقق من صحته.
  • NVM_REQ_BLOCK_SKIPPED (0x04): تم تخطي الكتلة المشار إليها أثناء NvM_ReadAll أو NvM_WriteAll (على سبيل المثال، كتل NVRAM من نوع Dataset عند NvM_ReadAll أو الكتل التي ليس لها كتلة RAM مهيأة بشكل دائم).
  • NVM_REQ_NV_INVALIDATED (0x05): كتلة NV المشار إليها غير صالحة.
  • NVM_REQ_CANCELED (0x06): إلغاء NvM_WriteAll بواسطة NvM_CancelWriteAll أو إلغاء طلب كتلة فردية (NvM_ReadBlock، NvM_WriteBlock، NvM_EraseNvBlock، NvM_InvalidateNvBlock، NvM_RestoreBlockDefaults) بواسطة NvM_CancelJobs.
  • NVM_REQ_RESTORED_DEFAULTS (0x08): تم نسخ القيم الافتراضية بنجاح إلى صورة RAM.

بالتفاعل مع الكتل المكررة (NVM_BLOCK_REDUNDANT)، لا تضبط الدالة NvM_InvalidateNvBlock نتيجة الطلب NvM_RequestResultType على NVM_REQ_OK إلا بعد جعل كلتا كتلتي NV غير صالحتين [SWS_NvM_00274].

تم إنشاء هذا النص تلقائيًا. تستند جميع المعلومات حصريًا إلى متطلبات مواصفات إصدار AUTOSAR R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

نوع NvM_BlockIdType [SWS_NvM_00471] 📄 PDF

Identification of a NVRAM block via a unique block identifier. Reserved NVRAM block IDs: 0 - > to derive multi block request results via Nv M_ Get Error Status 1 - > redundant NVRAM block which holds the configuration ID

نوع NvM_InitBlockRequestType [SWS_NvM_91123] 📄 PDF

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: f4f68ded6ba5 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يعتمد نوع البيانات NvM_InitBlockRequestType على uint8 ويتم توفيره عبر ملف الرأس Rte_NvM_Type.h [SWS_NvM_91123]. ويُستخدم لتحديد نوع الطلب المُنفَّذ على كتلة NVRAM عند الإشارة إليه عبر دالة رد نداء مقابلة [SWS_NvM_91123].

يشمل نطاق القيم المسموح به أربعة أنواع من الطلبات [SWS_NvM_91123]:

  • NVM_INIT_READ_BLOCK (0x00): تشير إلى أنه قد تم طلب NvM_ReadBlock أو NvM_ReadPRAMBlock للكتلة [SWS_NvM_91123].
  • NVM_INIT_RESTORE_BLOCK_DEFAULTS (0x01): تشير إلى أنه قد تم طلب NvM_RestoreBlockDefaults أو NvM_RestorePRAMBlockDefaults للكتلة [SWS_NvM_91123].
  • NVM_INIT_READ_ALL_BLOCK (0x02): تشير إلى أن معالجة الكتلة تتم في إطار NvM_ReadAll [SWS_NvM_91123].
  • NVM_INIT_FIRST_INIT_ALL (0x03): تميز معالجة الكتلة أثناء تشغيل NvM_FirstInitAll [SWS_NvM_91123].

استنادًا إلى قيمة هذا التعداد، يمكن لمنطق التطبيق المستدعى التمييز بين ما إذا كان الأمر يتعلق بطلب كتلة فردية صريح (قراءة أو استعادة القيم الافتراضية) أو عملية تجميعية شاملة أثناء بدء تشغيل النظام [SWS_NvM_91123]. تفسير: يُرجَّح تمرير هذا النوع كمعامل إلى ردود نداء التهيئة المرتبطة بالكتل، بحيث يمكن للتطبيق توفير البيانات الافتراضية المناسبة للحالة أو اتخاذ استعدادات محددة. سؤال Q-42d0d469e305728e (مفتوح)

تستند ملاحظة الاستخدام هذه إلى مواصفة AUTOSAR Classic الإصدار R20-11.

دليل المنفِّذ قيد الإعداد (التعقيد I1)

نوع NvM_BlockRequestType [SWS_NvM_91002] 📄 PDF

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

مُولَّد بالذكاء الاصطناعي غير مُراجَع النموذج: gemini-3.8-flash-medium · الجهد: medium · درجة الحرارة: غير قابل للتحكم · الموجّه: 68d31eddd2e0 المصدر أسئلة مفتوحة (1)
مترجم من الدليل الألمانيgemini-3.8-flash-low · 2026-10-13 · الأصل الألماني

يعتمد نوع التعداد 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].

في بنية التطبيق، يُرجّح تقييم القيمة كمعامل في روتينات رد النداء (Callback Routines) لإبلاغ مكونات البرمجيات ذات المستوى الأعلى بشكل تفصيلي بانتهاء عمليات كتل معينة [SWS_NvM_91002]. سؤال Q-467801b6b5e898a2 (مفتوح) ونظرًا لعدم وجود متطلبات إضافية في حمولة البيانات (Payload) بخصوص رموز الأخطاء أو التزامن، تقتصر تفاصيل المواصفة على تعريف النوع ونطاق القيم [SWS_NvM_91002].

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

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

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

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

void NvM_GetVersionInfo (Std_VersionInfoType* versioninfo);
NvM_Init دالة

Service for resetting all internal variables.

void NvM_Init (const NvM_ConfigType* ConfigPtr);

الخدمات · Read…

NvM_ReadAll دالة

Initiates a multi block read request.

void NvM_ReadAll (void);
NvM_ReadBlock دالة

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

Std_ReturnType NvM_ReadBlock (NvM_BlockIdType BlockId, void* NvM_DstPtr);

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

Std_ReturnType NvM_ReadPRAMBlock (NvM_BlockIdType BlockId);

Block specific callback routine which shall be called in order to let the application copy data from Nv M module's mirror to RAM block.

Std_ReturnType NvM_ReadRamBlockFromNvm (const void* NvMBuffer);

الخدمات · Set…

Service for setting the lock status of a permanent RAM block or of the explicit synchronization of a NVRAM block.

void NvM_SetBlockLockStatus (NvM_BlockIdType BlockId, boolean BlockLocked);

Service for setting/ resetting the write protection for a NV block. Availabl e via Nv M.h

Std_ReturnType NvM_SetBlockProtection (NvM_BlockIdType BlockId, boolean ProtectionEnabled);

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

Std_ReturnType NvM_SetDataIndex (NvM_BlockIdType BlockId, uint8 DataIndex);

Service for setting the RAM block status of a permanent RAM block or the status of the explicit synchronization of a NVRAM block.

Std_ReturnType NvM_SetRamBlockStatus (NvM_BlockIdType BlockId, boolean BlockChanged);

الخدمات · Write…

NvM_WriteAll دالة

Initiates a multi block write request.

void NvM_WriteAll (void);

Service to copy the data of the RAM block to its corresponding NV block. Available vi a Nv M.h

Std_ReturnType NvM_WriteBlock (NvM_BlockIdType BlockId, const void* NvM_SrcPtr);

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

Std_ReturnType NvM_WritePRAMBlock (NvM_BlockIdType BlockId);

Block specific callback routine which shall be called in order to let the application copy data from RAM block to Nv M module's mirror.

Std_ReturnType NvM_WriteRamBlockToNvm (void* NvMBuffer);

الخدمات · Cancel…

Service to cancel all jobs pending for a NV block.

Std_ReturnType NvM_CancelJobs (NvM_BlockIdType BlockId);

Service to cancel a running Nv M_ Write All request.

void NvM_CancelWriteAll (void);

الخدمات · Get…

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

Std_ReturnType NvM_GetDataIndex (NvM_BlockIdType BlockId, uint8* DataIndexPtr);

Service to read the block dependent error/ status information.

Std_ReturnType NvM_GetErrorStatus (NvM_BlockIdType BlockId, NvM_RequestResultType* RequestResultPtr);

الخدمات · Job…

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

void NvM_JobEndNotification (void);

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

void NvM_JobErrorNotification (void);

الخدمات · Restore…

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

Std_ReturnType NvM_RestoreBlockDefaults (NvM_BlockIdType BlockId, void* NvM_DestPtr);

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

Std_ReturnType NvM_RestorePRAMBlockDefaults (NvM_BlockIdType BlockId);

الخدمات · أخرى

Service to erase a NV block.

Std_ReturnType NvM_EraseNvBlock (NvM_BlockIdType BlockId);

The function initiates a multi block first initialization request. The job of the function does not care if a block exists in the non - volatile memory or not OR if it is valid (i.e. not corrupted) or not, when processing it.

void NvM_FirstInitAll (void);

Per block callback routine which shall be called by the Nv M module when default data needs to be restored in RAM, and a RO M block is not configured. AUTOSAR CP R20 - of Document ID : AUTOSAR_SWS_NVRAMManager

Std_ReturnType NvM_InitBlockCallbackFunction (NvM_InitBlockRequestType InitBlockRequest);

Service to invalidate a NV block.

Std_ReturnType NvM_InvalidateNvBlock (NvM_BlockIdType BlockId);

Common callback routine to notify the upper layer that an asynchronous multi block request has been finished. Available v ia Nv M_ Externals.h

Std_ReturnType NvM_MultiBlockCallbackFunction (NvM_MultiBlockRequestType MultiBlockRequest, NvM_RequestResultType JobResult);

Per block callback routine to notify the upper layer that an asynchronous single block request has been finished.

Std_ReturnType NvM_SingleBlockCallbackFunction (NvM_BlockRequestType BlockRequest, NvM_RequestResultType JobResult);

Initiates a multi block validation request.

void NvM_ValidateAll (void);

دورية

Service for performing the processing of the Nv M jobs.

void NvM_MainFunction (void);

الأنواع

Identification of a NVRAM block via a unique block identifier. Reserved NVRAM block IDs: 0 - > to derive multi block request results via Nv M_ Get Error Status 1 - > redundant NVRAM block which holds the configuration ID

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

Configuration data structure of the Nv M module.

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

Identifies the type of request performed on multi block when signaled via the callback function or when reporting to Bsw M

Type NvM_RequestResultType.