ECU State Manager (EcuM)
Controls ECU lifecycle states: Startup, Run, PostRun, Sleep, and Shutdown.
Funktionen — Übersicht
void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);Returns the version information of this module.Std_ReturnType EcuM_GoDownHaltPoll (EcuM_UserType UserID);Instructs the ECU State Manager module to go into a sleep mode, Reset or OFF depending on the previously selected shutdown target.void EcuM_Init (void);Initializes the ECU state manager and carries out the startup procedure.void EcuM_StartupTwo (void);This function implements the STARTUP II state.void EcuM_Shutdown (void);Typically called from the shutdown hook, this function takes over execution control and will carry out GO OFF II activities.void EcuM_SetState (EcuM_StateType state);Function called by BswM to notify about State Switch.Std_ReturnType EcuM_RequestRUN (EcuM_UserType user);Places a request for the RUN state.Std_ReturnType EcuM_ReleaseRUN (EcuM_UserType user);Releases a RUN request previously done with a call to EcuM_RequestRUN.Std_ReturnType EcuM_RequestPOST_RUN (EcuM_UserType user);Places a request for the POST RUN state.Std_ReturnType EcuM_ReleasePOST_RUN (EcuM_UserType user);Releases a POST RUN request previously done with a call to EcuM_RequestPOST_RUN.Std_ReturnType EcuM_SelectShutdownTarget (EcuM_ShutdownTargetType shutdownTarget, EcuM_ShutdownModeType shutdownMode);EcuM_SelectShutdownTarget selects the shutdown target.Std_ReturnType EcuM_GetShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);EcuM_GetShutdownTarget returns the currently selected shutdown target as set by EcuM_ SelectShutdownTarget.Std_ReturnType EcuM_GetLastShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);EcuM_GetLastShutdownTarget returns the shutdown target of the previous shutdown process.Std_ReturnType EcuM_SelectShutdownCause (EcuM_ShutdownCauseType target);EcuM_SelectShutdownCause elects the cause for a shutdown.Std_ReturnType EcuM_GetShutdownCause (EcuM_ShutdownCauseType* shutdownCause);EcuM_GetShutdownCause returns the selected shutdown cause as set by EcuM_Select ShutdownCause.EcuM_WakeupSourceType EcuM_GetPendingWakeupEvents (void);Gets pending wakeup events.void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);Clears wakeup events.EcuM_WakeupSourceType EcuM_GetValidatedWakeupEvents (void);Gets validated wakeup events.EcuM_WakeupSourceType EcuM_GetExpiredWakeupEvents (void);Gets expired wakeup events.Std_ReturnType EcuM_SetRelWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);EcuM_SetRelWakeupAlarm sets a user's wakeup alarm relative to the current point in time.Std_ReturnType EcuM_SetAbsWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);EcuM_SetAbsWakeupAlarm sets the user's wakeup alarm to an absolute point in time.Std_ReturnType EcuM_AbortWakeupAlarm (EcuM_UserType user);Ecum_AbortWakeupAlarm aborts the wakeup alarm previously set by this user.Std_ReturnType EcuM_GetCurrentTime (EcuM_TimeType* time);EcuM_GetCurrentTime returns the current value of the EcuM clock (i.Std_ReturnType EcuM_GetWakeupTime (EcuM_TimeType* time);EcuM_GetWakeupTime returns the current value of the master alarm clock (the minimum absolute time of all user alarm clocks).Std_ReturnType EcuM_SetClock (EcuM_UserType user, EcuM_TimeType time);EcuM_SetClock sets the EcuM clock time to the provided value.Std_ReturnType EcuM_SelectBootTarget (EcuM_BootTargetType target);EcuM_SelectBootTarget selects a boot target.Std_ReturnType EcuM_GetBootTarget (EcuM_BootTargetType* target);EcuM_GetBootTarget returns the current boot target - see EcuM_SelectBootTarget.void EcuM_SetWakeupEvent (EcuM_WakeupSourceType sources);Sets the wakeup event.void EcuM_ValidateWakeupEvent (EcuM_WakeupSourceType sources);After wakeup, the ECU State Manager will stop the process during the WAKEUP VALIDATION state/sequence to wait for validation...void EcuM_ErrorHook (uint16 reason);The ECU State Manager will call the error hook if the error codes "ECUM_E_RAM_CHECK_ FAILED" or...void EcuM_AL_SetProgrammableInterrupts (void);If the configuration parameter EcuMSetProgrammableInterrupts is set to true, this callout Ecu M_AL_SetProgrammableInterrupts...void EcuM_AL_DriverInitZero (void);This callout shall provide driver initialization and other hardware-related startup activities for loading the post-build...const EcuM_ConfigType* EcuM_DeterminePbConfiguration (void);This callout should evaluate some condition, like port pin or NVRAM value, to determine which post-build configuration shall...void EcuM_AL_DriverInitOne (void);This callout shall provide driver initialization and other hardware-related startup activities in case of a power on reset.void EcuM_LoopDetection (void);If the configuration parameter EcuMResetLoopDetection is set to true, this callout EcuM_Loop Detection is called on every startup.void EcuM_OnGoOffOne (void);This call allows the system designer to notify that the GO OFF I state is about to be entered.void EcuM_OnGoOffTwo (void);This call allows the system designer to notify that the GO OFF II state is about to be entered.void EcuM_AL_SwitchOff (void);This callout shall take the code for shutting off the power supply of the ECU.void EcuM_AL_Reset (EcuM_ResetType reset);This callout shall take the code for resetting the ECU.void EcuM_EnableWakeupSources (EcuM_WakeupSourceType wakeupSource);The ECU Manager Module calls EcuM_EnableWakeupSource to allow the system designer to notify wakeup sources defined in the...void EcuM_GenerateRamHash (void);see EcuM_CheckRamHashvoid EcuM_SleepActivity (void);This callout is invoked periodically in all reduced clock sleep modes.void EcuM_StartCheckWakeup (EcuM_WakeupSourceType WakeupSource);This API is called by the ECU Firmware to start the CheckWakeupTimer for the corresponding WakeupSource.void EcuM_CheckWakeup (EcuM_WakeupSourceType wakeupSource);This callout is called by the EcuM to poll a wakeup source.void EcuM_EndCheckWakeup (EcuM_WakeupSourceType WakeupSource);This API is called by any SW Module whose wakeup source is checked asynchronously (e.uint8 EcuM_CheckRamHash (void);This callout is intended to provide a RAM integrity test.void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource);The ECU Manager Module calls EcuM_DisableWakeupSources to set the wakeup source(s) defined in the wakeupSource bitfield so...void EcuM_AL_DriverRestart (void);This callout shall provide driver initialization and other hardware-related startup activities in the wakeup case.void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);The callout shall start the given wakeup source(s) so that they are ready to perform wakeup validation.void EcuM_CheckValidation (EcuM_WakeupSourceType wakeupSource);This callout is called by the EcuM to validate a wakeup source.void EcuM_StopWakeupSources (EcuM_WakeupSourceType wakeupSource);The callout shall stop the given wakeup source(s) after unsuccessful wakeup validation.void EcuM_MainFunction (void);The purpose of this service is to implement all activities of the ECU State Manager while the OS is up and running.
Typen — Übersicht
struct EcuM_ConfigTypeA pointer to such a structure shall be provided to the ECU State Manager initialization routine for configuration.enum EcuM_RunStatusTypeResult of the Run Request Protocol sent to BswMEcuM_WakeupSourceTypeEcuM_WakeupSourceType defines a bitfield with 5 pre-defined positions (see Range).enum EcuM_WakeupStatusTypeThe type describes the possible states of a wakeup source.EcuM_ResetTypeThis type describes the reset mechanisms supported by the ECU State Manager.enum EcuM_StateTypeECU State Manager states.EcuM_ModecurrentModeEcuM_UserTypeUnique value for each user.EcuM_TimeTypeThis data type represents the time of the ECU Manager module.EcuM_ShutdownCauseTypeThis type describes the cause for a shutdown by the ECU State Manager.enum EcuM_ShutdownModeTypeThis data type represents the modes of the ECU Manager module.EcuM_ShutdownTargetType
Funktionen & Typen — Detailansicht
دالة EcuM_GetVersionInfo [SWS_EcuM_02813] 📄 PDF
void EcuM_GetVersionInfo (Std_VersionInfoType* versioninfo);
Returns the version information of this module.
دالة EcuM_GoDownHaltPoll [SWS_EcuM_91002] 📄 PDF
Std_ReturnType EcuM_GoDownHaltPoll (EcuM_UserType UserID);
Instructs the ECU State Manager module to go into a sleep mode, Reset or OFF depending on the previously selected shutdown target.
توجّه الدالة المتزامنة والقابلة لإعادة الدخول EcuM_GoDownHaltPoll وحدة ECU State Manager للانتقال إلى وضع Sleep أو Reset أو الحالة OFF اعتماداً على هدف إيقاف التشغيل المحدد مسبقاً [SWS_EcuM_91002]. وهي متوفرة عبر ملف الرأس EcuM.h وتمتلك معرّف الخدمة 0x2c [SWS_EcuM_91002].
المعاملات وصلاحية الاستدعاء
كمعامل الدخل الوحيد، يتم تمرير UserID من النوع EcuM_UserType. يحدد هذا المعامل المستخدم المتصل. الاستدعاء منظم بدقة: يُسمح فقط للمستخدمين المهيئين مسبقاً بتنفيذ هذه الدالة [SWS_EcuM_91002].
القيم المرجعة وسلوك مسار التنفيذ
يعتمد سلوك الإرجاع بشكل حاسم على نوع هدف إيقاف التشغيل المعين [SWS_EcuM_91002]:
E_NOT_OK: لم يتم قبول الطلب [SWS_EcuM_91002].E_OK: إذا كان الهدف هوSLEEP، تعود الدالة بنجاح بهذه الحالة بعد مغادرة حالة النوم [SWS_EcuM_91002].- عدم العودة: إذا تم اختيار
RESETأوOFFكهدف لإيقاف التشغيل، فلن يعود استدعاء الدالة إلى المتصل بعد ذلك [SWS_EcuM_91002].
القيود ومعالجة الأخطاء
على الرغم من الإعلان رسمياً عن الدالة كقابلة لإعادة الدخول، فإن تنفيذها على النحو المنشود يتطلب التحديد المسبق لهدف إيقاف تشغيل صالح [SWS_EcuM_91002]. لم يتم إدراج رموز أخطاء DET أو DEM محددة في مواصفات الواجهة؛ وتتم الإشارة إلى الفشل أو رفض الطلب مباشرة عبر القيمة المرجعة E_NOT_OK [SWS_EcuM_91002].
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_Init [SWS_EcuM_02811] 📄 PDF
void EcuM_Init (void);
Initializes the ECU state manager and carries out the startup procedure. The function will never return (it calls StartOS)
تُهيئ دالة الخدمة المتزامنة EcuM_Init مدير حالة وحدة التحكم الإلكترونية (ECU State Manager) وتبدأ إجراءات البدء المنظمة لوحدة التحكم الإلكترونية ([SWS_EcuM_02811]). يتم التصريح عنها عبر الترويسة EcuM.h بمعرّف الخدمة 0x01، ولا تقبل معامِلات ولا تُرجع أي قيمة ([SWS_EcuM_02811]). على الرغم من تصنيفها رسمياً بأنها قابلة لإعادة الدخول، فإن EcuM_Init لا تعود أبداً إلى جهة الاستدعاء بعد استدعائها، نظراً لأنها تسلم التنفيذ إلى نظام التشغيل عن طريق استدعاء StartOS ([SWS_EcuM_02811]).
كجزء من تنفيذها، تعالج الدالة تسلسل StartPreOS المحدد وأنشطته بالترتيب المحدد بدقة ([SWS_EcuM_02411]، [SWS_EcuM_02684]). يُعد التحقق من اتساق التكوين جزءاً أساسياً من هذه المرحلة: تتحقق الوحدة داخل EcuM_Init مما إذا كان حقل البنية المقابل مطابقاً لقيمة ECUM_CONFIGCONSISTENCY_HASH ([SWS_EcuM_02798]).
علاوة على ذلك، تتحكم EcuM_Init في تهيئة برامج التشغيل في الأنظمة متعددة الأنوية ([SWS_EcuM_04145]). تستدعي الدالة على كل Core بمفرده عمليات الاستدعاء الخارجية Callouts EcuM_AL_DriverInitZero وكذلك EcuM_AL_DriverInitOne ([SWS_EcuM_04145]). بالنسبة لعمليات تنفيذ Callout، تسري التعليمات لضمان عدم تهيئة سوى وحدات MCAL التي يتم تنفيذها بالفعل على ذلك الـ Core على الـ Core النشط في كل حالة ([SWS_EcuM_04145]).
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة EcuM_StartupTwo [SWS_EcuM_02838] 📄 PDF
void EcuM_StartupTwo (void);
This function implements the STARTUP II state.
تطبق الدالة المتزامنة وغير القابلة لإعادة الدخول EcuM_StartupTwo الحالة STARTUP II لـ ECU State Manager [SWS_EcuM_02838]. يتم الإعلان عن الواجهة عبر ملف الترويسة EcuM.h ولها معرف الخدمة 0x1a [SWS_EcuM_02838]. وفقاً لتوقيع الدالة void EcuM_StartupTwo(void)، لا يقبل الاستدعاء معلمات إدخال أو إدخال/إخراج أو إخراج، ولا يُرجع أي قيمة إرجاع إلى المستدعي [SWS_EcuM_02838].
عند تنشيط وحدة ECU Manager بواسطة الدالة EcuM_StartupTwo، فإنها تنفذ إجراءات تسلسل StartPostOS [SWS_EcuM_02932].
بالنسبة للتكامل، توجد متطلبات أساسية تتعلق بسياق الاستدعاء والتزامن: يجب استدعاء الدالة إلزامياً من مهمة تبدأ مباشرةً كنتيجة لـ StartOS [SWS_EcuM_02806]. يتطلب هذا أن يتم استدعاء EcuM_StartupTwo إما من مهمة بدء تلقائي (Autostart Task) أو من مهمة يتم بدؤها صراحةً [SWS_EcuM_02806]. ونظراً لأن الدالة محددة على أنها غير قابلة لإعادة الدخول، فلا يجوز حدوث استدعاء متزامن أو متعدد [SWS_EcuM_02838].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_Shutdown [SWS_EcuM_02812] 📄 PDF
void EcuM_Shutdown (void);
Typically called from the shutdown hook, this function takes over execution control and will carry out GO OFF II activities.
يتم توفير دالة الخدمة المتزامنة EcuM_Shutdown (معرف الخدمة 0x02) عبر ملف الترويسة EcuM.h وتتولى التحكم في التنفيذ لإجراء أنشطة المرحلة «GO OFF II» [SWS_EcuM_02812]. وهي تُستخدم للإنهاء الختامي لعملية إيقاف التشغيل [SWS_EcuM_02953].
سياق الاستدعاء والدلالات البرمجية
عادةً ما يتم استدعاء الدالة من خطاف إيقاف التشغيل (Shutdown Hook) [SWS_EcuM_02812]. ووفقاً للمتطلبات، يلتزم هذا الخطاف صراحةً باستدعاء EcuM_Shutdown لإنهاء عملية إيقاف التشغيل [SWS_EcuM_02953].
- التوقيع:
void EcuM_Shutdown(void)مع معرف الخدمة0x02[SWS_EcuM_02812]. - المعلمات: لا توجد معلمات إدخال أو إخراج أو إدخال/إخراج [SWS_EcuM_02812].
- قيمة الإرجاع: لا تُرجع الواجهة أي قيمة إرجاع [SWS_EcuM_02812].
- التزامنية: يتم تنفيذ الاستدعاء بشكل متزامن [SWS_EcuM_02812].
التزامن وتدفق التحكم
في المواصفة، تم الإعلان عن EcuM_Shutdown على أنها قابلة لإعادة الدخول [SWS_EcuM_02812]. ومع ذلك، ينطبق شرط صارم على تسلسل البرنامج وهو أنه لا يجوز لـ EcuM_Shutdown العودة إلى المستدعي [SWS_EcuM_02953]. بعد الانتهاء من المعالجة، تقوم الدالة بإيقاف تشغيل وحدة التحكم الإلكترونية بشكل نهائي أو تطلق إعادة ضبط كبديل [SWS_EcuM_02953].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_SetState [SWS_EcuM_04122] 📄 PDF
void EcuM_SetState (EcuM_StateType state);
Function called by BswM to notify about State Switch.
الاستخدام وسياق الاستدعاء
تُستخدم الدالة المتزامنة EcuM_SetState لكي يقوم BswM بإبلاغ EcuM بتغيير في الحالة [SWS_EcuM_04122]. كمعامل دخل، يتم تمرير state من النوع EcuM_StateType، والذي يحدد الحالة المحددة مسبقاً بواسطة BswM [SWS_EcuM_04122]. لا تمتلك الدالة أي قيمة مرجعة [SWS_EcuM_04122].
آلية العمل والتفاعل
عند الاستدعاء، تضبط الدالة الحالة الداخلية لـ EcuM على قيمة المعامل state [SWS_EcuM_04123]. وإذا قام BswM بتعيين حالة لـ EcuM بهذه الطريقة، يُشير EcuM إلى الوضع المقابل لـ RTE [SWS_EcuM_04116].
معالجة الأخطاء
إذا كانت القيمة الممررة للمعامل state غير صالحة، فلن يغيّر EcuM_SetState حالة EcuM [SWS_EcuM_04123]. وإذا كان الإبلاغ عن أخطاء التطوير (Development Error Reporting) مفعّلاً، تُبلّغ الدالة بالإضافة إلى ذلك في حالة الخطأ هذه عن الخطأ ECUM_E_STATE_PAR_OUT_OF_RANGE إلى وحدة DET [SWS_EcuM_04123].
التزامن والواجهة
التنفيذ متزامن وقابل لإعادة الدخول [SWS_EcuM_04122]. ويتم التصريح عن الخدمة عبر ملف الرأس EcuM.h [SWS_EcuM_04122].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_RequestRUN [SWS_EcuM_04124] 📄 PDF
Std_ReturnType EcuM_RequestRUN (EcuM_UserType user);
Places a request for the RUN state. Requests can be placed by every user made known to the state manager at configuration time.
الاستخدام
تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول EcuM_RequestRUN لطلب حالة RUN من ECU State Manager [SWS_EcuM_04124]. كمعامل، يتم تمرير معرّف الكيان الطالب عبر user من النوع EcuM_UserType؛ ويكون المستخدمون المخولون فقط هم الذين تم تعريفهم بالفعل لمدير الحالة في وقت التكوين [SWS_EcuM_04124]. تُعيد الدالة E_OK إذا قبل EcuM الطلب، وإلا فإنها تُعيد E_NOT_OK [SWS_EcuM_04124]. تم التصريح عن الخدمة عبر ملف الرأس EcuM.h [SWS_EcuM_04124].
معالجة الأخطاء والقيود
يجب عدم تداخل الطلبات: يمكن لمستخدم واحد الاحتفاظ بطلب RUN نشط واحد على الأكثر في نفس الوقت [SWS_EcuM_04125]. إذا اكتشف EcuM_RequestRUN استدعاءات متكررة أو مزدوجة من قبل المستخدم نفسه، فسيتم الإبلاغ عن رمز الخطأ ECUM_E_MULTIPLE_RUN_REQUESTS إلى DET إذا كان اكتشاف أخطاء التطوير مفعّلاً [SWS_EcuM_03024]، [SWS_EcuM_04125].
تفاعل
يجب تحرير كل طلب حالة تم تعيينه بنجاح باستخدام EcuM_RequestRUN بعد انتهاء النشاط. ولهذا الغرض، تتوفر الخدمة التكميلية المتزامنة والقابلة لإعادة الدخول أيضاً EcuM_ReleaseRUN، والتي يُمرر إليها معرّف المستخدم نفسه [SWS_EcuM_04127].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة EcuM_ReleaseRUN [SWS_EcuM_04127] 📄 PDF
Std_ReturnType EcuM_ReleaseRUN (EcuM_UserType user);
Releases a RUN request previously done with a call to EcuM_RequestRUN. The service is intended for implementing AUTOSAR ports.
الاستخدام
تُستخدم الدالة المتزامنة EcuM_ReleaseRUN (معرّف الخدمة 0x04) لتحرير طلب حالة RUN تم تسجيله مسبقاً عبر EcuM_RequestRUN [SWS_EcuM_04127]. تتوفر الواجهة عبر ملف الرأس EcuM.h وهي مخصصة بشكل أساسي لتنفيذ منافذ AUTOSAR [SWS_EcuM_04127]. وتتوقع الدالة كمعلمة إدخال معرّف المستخدم user من النوع EcuM_UserType، والذي يحدد الكيان المُحرِّر بشكل فريد داخل الوحدة [SWS_EcuM_04127].
تشير قيمة الإرجاع من النوع Std_ReturnType بواسطة E_OK إلى أن طلب التحرير قد تم قبوله بنجاح بواسطة الوحدة [SWS_EcuM_04127]. وإذا تعذر معالجة التحرير، ترجع الخدمة قيمة الخطأ E_NOT_OK [SWS_EcuM_04127].
معالجة الأخطاء والتزامن
لا يتم سرد رموز خطأ محددة أو أخطاء تطوير (DET) أو أخطاء إنتاج (DEM) في المواصفات؛ ويتجلى رفض الطلب حصرياً عبر إرجاع E_NOT_OK [SWS_EcuM_04127]. من المفترض (تفسير:) أن إرجاع E_NOT_OK يحدث على الأرجح عند عدم وجود طلب نشط لمعرّف المستخدم المحدد، أو عند تمرير قيمة معلمة غير صالحة. سؤال Q-cbe9031cffe1be81 (مفتوح)
تم الإعلان عن الدالة على أنها قابلة لإعادة الدخول، وبالتالي يجوز استدعاؤها في سياقات تنفيذ متزامنة [SWS_EcuM_04127]. كشرط للترتيب الوظيفي، يتطلب الاستدعاء إلزامياً أن يكون المستخدم المعني قد طلب الحالة مسبقاً عبر EcuM_RequestRUN [SWS_EcuM_04127].
تفاعل
توفر الوحدة EcuM هذه الخدمة لإنهاء الإبقاء على حالة RUN عبر منافذ محددة [SWS_EcuM_04127]. بالنسبة لتكوين RTE والتفاعل مع سلوك وقت تشغيل RTE المحلي، تحدد المواصفات السلوك الداخلي لـ EcuStateManager مع العديد من Runnable Entities القابلة للتنفيذ بالتوازي [SWS_EcuM_03018].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_RequestPOST_RUN [SWS_EcuM_04128] 📄 PDF
Std_ReturnType EcuM_RequestPOST_RUN (EcuM_UserType user);
Places a request for the POST RUN state. Requests can be placed by every user made known to the state manager at configuration time. Requests for RUN and POST RUN must be tracked independently (in other words: two independent variables). The service is intended for implementing AUTOSAR ports.
الاستخدام
تُستخدم الدالة المتزامنة EcuM_RequestPOST_RUN لطلب الحالة POST RUN من ECU State Manager ([SWS_EcuM_04128]). يعرّف المتصل نفسه عبر المعامل user، حيث يجب أن يكون كل كيان طالب قد تم تعريفه بالفعل لمدير الحالة في وقت التكوين ([SWS_EcuM_04128]). تم التصريح عن الخدمة في ملف الرأس EcuM.h، وهي مخصصة لتنفيذ منافذ AUTOSAR، وتقرّ بالقبول الناجح عبر E_OK أو بالرفض عبر E_NOT_OK ([SWS_EcuM_04128]).
معالجة الأخطاء
إذا كان اكتشاف أخطاء التطوير مفعّلاً، فإن إجراء استدعاء متكرر من قبل المستخدم نفسه يؤدي إلى قيام EcuM_RequestPOST_RUN بالإبلاغ عن الخطأ ECUM_E_MULTIPLE_RUN_REQUESTS إلى DET ([SWS_EcuM_03025]). تفسير: في حالة مثل هذه الطلبات المتعددة أو في حالة معرّفات المستخدمين غير الصالحة، فمن المرجح أن ترد الخدمة بـ E_NOT_OK ([SWS_EcuM_04128]). سؤال Q-b5bbd7d5b53e76ba (مفتوح)
التزامن والتفاعل
تم تصميم الدالة لتكون قابلة لإعادة الدخول ([SWS_EcuM_04128]). في الوحدة، يجب تتبع طلبات RUN وPOST RUN بشكل مستقل تماماً عن بعضها البعض عبر متغيرين منفصلين ([SWS_EcuM_04128]). يحافظ كل طلب مسجل عبر هذه الخدمة على حالة POST RUN نشطة حتى يتم التراجع عنه صراحةً من خلال الاستدعاء التكميلي لـ EcuM_ReleasePOST_RUN ([SWS_EcuM_04129]).
تم إنشاء هذا النص تلقائياً. تستند جميع المحتويات الفنية إلى مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة EcuM_ReleasePOST_RUN [SWS_EcuM_04129] 📄 PDF
Std_ReturnType EcuM_ReleasePOST_RUN (EcuM_UserType user);
Releases a POST RUN request previously done with a call to EcuM_RequestPOST_RUN. The service is intended for implementing AUTOSAR ports.
الاستخدام والدلالات
تُستخدم الدالة المتزامنة وقابلة لإعادة الدخول EcuM_ReleasePOST_RUN ([SWS_EcuM_04129]) لتحرير طلب POST-RUN تم تعيينه مسبقاً بواسطة EcuM_RequestPOST_RUN. وعبر معلمة الإدخال user من النوع EcuM_UserType، يتم تمرير معرّف الكيان الذي يقوم بتحرير حالة POST-RUN مجدداً. الواجهة متاحة عبر ملف الرأس EcuM.h ومصممة بشكل أساسي لتحقيق منافذ AUTOSAR ([SWS_EcuM_04129]).
قيم الإرجاع ومعالجة الأخطاء
ترجع الدالة الحالة Std_ReturnType ([SWS_EcuM_04129]):
E_OK: تم قبول طلب التحرير بنجاح بواسطة ECU State Manager.E_NOT_OK: تم رفض طلب التحرير. تفسير: يُرجح حدوث الرفض بواسطةE_NOT_OKإذا لم يكن هناك طلب نشط مسجل للمستخدم المحدد، أو إذا تم تمرير معرّف مستخدم غير صالح. سؤال Q-67bd8594612defca (مفتوح)
التزامن والتفاعل
تم تحديد الخدمة على أنها قابلة لإعادة الدخول ([SWS_EcuM_04129])، بحيث يُسمح بالاستدعاءات المتزامنة بواسطة عدة كيانات. الدالة جزء من السلوك الداخلي للوحدة EcuM ([SWS_EcuM_03018]). يتطلب الاستدعاء منطقياً أن يكون الكيان قد طلب مسبقاً المرحلة POST RUN ([SWS_EcuM_04129]). تفسير: نموذجياً، يُرجح أن يتم الاستدعاء من مكونات البرمجيات عبر منافذ RTE بمجرد اكتمال أنشطة التشغيل اللاحق الخاصة بها قبل إيقاف التشغيل. سؤال Q-81f71656d4debb4a (مفتوح)
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس حالة مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_SelectShutdownTarget [SWS_EcuM_02822] 📄 PDF
Std_ReturnType EcuM_SelectShutdownTarget (EcuM_ShutdownTargetType shutdownTarget, EcuM_ShutdownModeType shutdownMode);
EcuM_SelectShutdownTarget selects the shutdown target. EcuM_SelectShutdownTarget is part of the ECU Manager Module port interface.
تُستخدم دالة الخدمة المتزامنة EcuM_SelectShutdownTarget لتحديد وجهة إيقاف التشغيل (Shutdown) لوحدة التحكم الإلكترونية وتتوفر عبر ملف الرأس EcuM.h وكذلك كجزء من واجهة المنفذ لوحدة مدير ECU [SWS_EcuM_02822]. من خلال الاستدعاء، يتم تعيين وجهة إيقاف التشغيل الداخلية على قيمة المعلمة الممررة shutdownTarget [SWS_EcuM_00624].
تتوقع الدالة معلمتي إدخال [SWS_EcuM_02822]:
shutdownTarget: تحدد الوجهة المختارة لإيقاف التشغيل [SWS_EcuM_02822].shutdownMode: يحتوي على معرّف وضع سكون (إذا كانت الوجهةECUM_SHUTDOWN_TARGET_SLEEP) أو آلية إعادة تعيين (إذا كانت الوجهةECUM_SHUTDOWN_TARGET_RESET) وفقاً للتكوين [SWS_EcuM_02822].
لا يُطلق الاستدعاء أي أنشطة إعداد أو تنفيذ فورية (Setup)، بل يكتفي بحفظ القيم للاستخدام اللاحق في المرحلة SHUTDOWN أو SLEEP [SWS_EcuM_02585].
فيما يتعلق بالتزامن، تم تحديد الدالة على أنها قابلة لإعادة الدخول (reentrant) [SWS_EcuM_02822]. وفي السلوك الداخلي لـ RTE لـ ECU State Manager، تم الإعلان عن Runnable Entity المقابلة SelectShutdownTarget مع canbeInvokedConcurrently = TRUE [SWS_EcuM_03018]، مما يجعل الاستدعاءات المتوازية مسموحاً بها.
تشير قيمة الإرجاع من النوع Std_ReturnType بواسطة E_OK إلى أنه تم تعيين وجهة إيقاف التشغيل الجديدة بنجاح، وبواسطة E_NOT_OK إلى أن التطبيق قد فشل [SWS_EcuM_02822]. لا تذكر المواصفات في هذا الموضع أسباباً محددة للخطأ لـ E_NOT_OK أو رسائل DET؛ يُفترض أن المجموعات غير المسموح بها أو غير المهيأة من الوجهة والوضع تؤدي إلى الرفض. سؤال Q-e916f3a6ac0bf47e (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة EcuM_GetShutdownTarget [SWS_EcuM_02824] 📄 PDF
Std_ReturnType EcuM_GetShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);
EcuM_GetShutdownTarget returns the currently selected shutdown target as set by EcuM_ SelectShutdownTarget. EcuM_GetShutdownTarget is part of the ECU Manager Module port interface.
دالة EcuM_GetLastShutdownTarget [SWS_EcuM_02825] 📄 PDF
Std_ReturnType EcuM_GetLastShutdownTarget (EcuM_ShutdownTargetType* shutdownTarget, EcuM_ShutdownModeType* shutdownMode);
EcuM_GetLastShutdownTarget returns the shutdown target of the previous shutdown process. EcuM_GetLastShutdownTarget is part of the ECU Manager Module port interface.
دالة EcuM_SelectShutdownCause [SWS_EcuM_04050] 📄 PDF
Std_ReturnType EcuM_SelectShutdownCause (EcuM_ShutdownCauseType target);
EcuM_SelectShutdownCause elects the cause for a shutdown. EcuM_SelectShutdownCause is part of the ECU Manager Module port interface.
تُستخدم الدالة المتزامنة EcuM_SelectShutdownCause لتحديد سبب إيقاف تشغيل وحدة التحكم الإلكترونية (ECU)، وتتوفر عبر ملف الرأس EcuM.h [SWS_EcuM_04050].
الاستخدام والدلالات:
- المعاملات: يمرر معامل الدخل
targetمن النوعEcuM_ShutdownCauseTypeسبب إيقاف التشغيل المحدد [SWS_EcuM_04050]. - القيمة المرجعة: تشير القيمة المرجعة من النوع
Std_ReturnTypeباستخدامE_OKإلى أنه تم تعيين السبب الجديد بنجاح، وباستخدامE_NOT_OKإلى فشل التعيين [SWS_EcuM_04050]. - التنفيذ: تعمل الخدمة بشكل متزامن تحت معرّف الخدمة
0x1bوهي محددة كقابلة لإعادة الدخول [SWS_EcuM_04050].
التزامن والتكامل:
الدالة جزء من واجهة المنفذ (Port-Interface) لوحدة ECU Manager [SWS_EcuM_04050]. لتكوين RTE المحلي، تم تعريف الـ Runnable Entity SelectShutdownCause بالرمز EcuM_SelectShutdownCause في السلوك الداخلي EcuStateManager، مع تعيين الخاصية canbeInvokedConcurrently = TRUE [SWS_EcuM_03018].
معالجة الأخطاء:
لم يتم تحديد أي رسائل DET أو DEM معينة في نطاق المواصفة؛ وتتم الإشارة إلى حالات الخطأ عند تعيين السبب حصرياً عبر القيمة المرجعة E_NOT_OK [SWS_EcuM_04050].
تم إنشاء ملاحظة الاستخدام هذه آلياً وتستند إلى متطلبات المواصفة الخاصة بإصدار AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_GetShutdownCause [SWS_EcuM_04051] 📄 PDF
Std_ReturnType EcuM_GetShutdownCause (EcuM_ShutdownCauseType* shutdownCause);
EcuM_GetShutdownCause returns the selected shutdown cause as set by EcuM_Select ShutdownCause. EcuM_GetShutdownCause is part of the ECU Manager Module port interface.
دالة EcuM_GetPendingWakeupEvents [SWS_EcuM_02827] 📄 PDF
EcuM_WakeupSourceType EcuM_GetPendingWakeupEvents (void);
Gets pending wakeup events.
دالة EcuM_ClearWakeupEvent [SWS_EcuM_02828] 📄 PDF
void EcuM_ClearWakeupEvent (EcuM_WakeupSourceType sources);
Clears wakeup events.
تُستخدم دالة الخدمة المتزامنة EcuM_ClearWakeupEvent (معرّف الخدمة 0x16) لإعادة تعيين أحداث الاستيقاظ وهي متوفرة عبر ملف الترويسة EcuM.h [SWS_EcuM_02828]. تقبل كمعامِل قناع البتات sources من النوع EcuM_WakeupSourceType ولا تمتلك قيمة معادة [SWS_EcuM_02828].
عند الاستدعاء، يتم مسح جميع الأحداث المعلقة المحددة كبت في sources من ثلاثة متغيرات داخلية للوحدة [SWS_EcuM_02683]:
- من المتغير الداخلي لأحداث الاستيقاظ المعلقة (pending wakeup events)،
- من المتغير الداخلي لأحداث الاستيقاظ المصدق عليها (validated events)، وكذلك
- من المتغير الداخلي لأحداث الاستيقاظ منتهية الصلاحية (expired events) [SWS_EcuM_02683].
فيما يتعلق بسياق الاستدعاء، يجوز استدعاء EcuM_ClearWakeupEvent بمرونة من سياق المقاطعة، ومن سياق OS العادي، وكذلك من سياق خالٍ من OS [SWS_EcuM_02807]. ومع ذلك، في الوقت نفسه، يتم تحديد الدالة بشكل إلزامي على أنها غير قابلة لإعادة الدخول (Non-Reentrant) وغير قابلة للمقاطعة (Non-Interruptible) [SWS_EcuM_02828]. تفسير: نظراً لأن الدالة مسموح بها في سياقات مختلفة ولكنها غير قابلة للمقاطعة، فمن المرجح أن يتعين على مسؤول التكامل أو جهة الاستدعاء التأكد تنظيمياً من عدم حدوث استدعاءات متزامنة أو مقاطعة لبعضها البعض. سؤال Q-71a4b1b218505a1c (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دالة EcuM_GetValidatedWakeupEvents [SWS_EcuM_02830] 📄 PDF
EcuM_WakeupSourceType EcuM_GetValidatedWakeupEvents (void);
Gets validated wakeup events.
دالة EcuM_GetExpiredWakeupEvents [SWS_EcuM_02831] 📄 PDF
EcuM_WakeupSourceType EcuM_GetExpiredWakeupEvents (void);
Gets expired wakeup events.
دالة EcuM_SetRelWakeupAlarm [SWS_EcuM_04054] 📄 PDF
Std_ReturnType EcuM_SetRelWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);
EcuM_SetRelWakeupAlarm sets a user's wakeup alarm relative to the current point in time. EcuM_SetRelWakeupAlarm is part of the ECU Manager Module port interface.
دالة EcuM_SetAbsWakeupAlarm [SWS_EcuM_04057] 📄 PDF
Std_ReturnType EcuM_SetAbsWakeupAlarm (EcuM_UserType user, EcuM_TimeType time);
EcuM_SetAbsWakeupAlarm sets the user's wakeup alarm to an absolute point in time. EcuM_ SetAbsWakeupAlarm is part of the ECU Manager Module port interface.
دالة EcuM_AbortWakeupAlarm [SWS_EcuM_04061] 📄 PDF
Std_ReturnType EcuM_AbortWakeupAlarm (EcuM_UserType user);
Ecum_AbortWakeupAlarm aborts the wakeup alarm previously set by this user. EcuM_Abort WakeupAlarm is part of the ECU Manager Module port interface.
تُستخدم الدالة المتزامنة EcuM_AbortWakeupAlarm لإلغاء تنبيه استيقاظ تم ضبطه سابقًا بواسطة مستخدم [SWS_EcuM_04061]. وتتوفر الواجهة عبر ملف الرأس EcuM.h وتشكّل جزءًا من واجهة المنفذ لوحدة ECU Manager [SWS_EcuM_04061].
المعلمات وقيم الإرجاع
user(دخل): معرّف المستخدم من النوعEcuM_UserType، الذي يرغب في إلغاء تنبيه الاستيقاظ [SWS_EcuM_04061]. ولا توجد معاملات دخل/خرج أو معاملات خرج فقط [SWS_EcuM_04061].E_OK: تم تنفيذ الخدمة بنجاح وإلغاء التنبيه [SWS_EcuM_04061].ECUM_E_NOT_ACTIVE: لم يتم العثور على أي تنبيه نشط يخص المستخدم الممرر [SWS_EcuM_04061].E_NOT_OK: فشل تنفيذ الخدمة [SWS_EcuM_04061].
التزامن والتفاعل
تمتلك الدالة معرّف الخدمة (Service ID) 0x24 ومحددة بأنها قابلة لإعادة الدخول [SWS_EcuM_04061]. وبالتالي يمكن إجراء الاستدعاءات بشكل متزامن لمستخدمين مختلفين. يحدد السلوك الداخلي لـ ECU Manager الوحدات القابلة للتنفيذ لتهيئة RTE المحلية [SWS_EcuM_03018]؛ وكجزء من واجهة منفذ الوحدة، فمن المرجح أن يتم بدء الاستدعاء عادةً بواسطة مكونات البرمجيات عبر RTE. سؤال Q-2c8f004d9f00bbd3 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_GetCurrentTime [SWS_EcuM_04062] 📄 PDF
Std_ReturnType EcuM_GetCurrentTime (EcuM_TimeType* time);
EcuM_GetCurrentTime returns the current value of the EcuM clock (i.e. the time since battery connect). EcuM_GetCurrentTime is part of the ECU Manager Module port interface.
دالة EcuM_GetWakeupTime [SWS_EcuM_04063] 📄 PDF
Std_ReturnType EcuM_GetWakeupTime (EcuM_TimeType* time);
EcuM_GetWakeupTime returns the current value of the master alarm clock (the minimum absolute time of all user alarm clocks). EcuM_GetWakeupTime is part of the ECU Manager Module port interface.
دالة EcuM_SetClock [SWS_EcuM_04064] 📄 PDF
Std_ReturnType EcuM_SetClock (EcuM_UserType user, EcuM_TimeType time);
EcuM_SetClock sets the EcuM clock time to the provided value. This API is useful for testing the alarm services; Alarms that take days to expire can be tested. EcuM_SetClock is part of the ECU Manager Module port interface.
تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول EcuM_SetClock وفقاً لـ [SWS_EcuM_04064] لضبط الوقت الداخلي لـ ECU State Manager على قيمة محددة مسبقاً. كجزء من واجهة المنفذ لـ ECU Manager، يمكن تضمين الدالة واستدعاؤها عبر ملف الرأس EcuM.h [SWS_EcuM_04064].
الغرض الأساسي من استخدام الواجهة هو اختبار خدمات الإنذار: فالإنذارات التي قد يستغرق انقضاؤها العادي أياماً يمكن التحقق منها من خلال الضبط المستهدف للوقت في وضع الاختبار [SWS_EcuM_04064]. ويتم هنا تمرير معاملي دخل:
user(النوعEcuM_UserType): معرّف المتصل أو المستخدم الذي يرغب في ضبط الوقت.time(النوعEcuM_TimeType): بيان الوقت المطلق بالثواني منذ توصيل البطارية (Battery Connect).
كقيمة مرجعة، تُعيد الخدمة الحالة Std_ReturnType مع E_OK في حالة التنفيذ الناجح أو E_NOT_OK في حالة حدوث خطأ [SWS_EcuM_04064]. لم يتم تحديد أسباب خطأ ملموسة أو رسائل DET في الواجهة؛ ومن المفترض أن يؤدي تمرير معرّفات مستخدمين غير مصرح لهم أو قيم وقت غير صالحة إلى إرجاع E_NOT_OK. سؤال Q-248768580c0309e8 (مفتوح)
فيما يتعلق بسلوك الوحدة الداخلي وتكوين RTE، تندمج الدالة في بنية الـ Runnable Entities الخاصة بـ EcuStateManager [SWS_EcuM_03018].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وهو مخصص للتوجيه الفني.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_SelectBootTarget [SWS_EcuM_02835] 📄 PDF
Std_ReturnType EcuM_SelectBootTarget (EcuM_BootTargetType target);
EcuM_SelectBootTarget selects a boot target. EcuM_SelectBootTarget is part of the ECU Manager Module port interface.
تُستخدم الدالة المتزامنة EcuM_SelectBootTarget لاختيار هدف إقلاع لوحدة التحكم الإلكترونية وتُعد جزءاً من واجهة المنفذ لـ ECU Manager كما تتوفر عبر ملف الترويسة EcuM.h [SWS_EcuM_02835]. يتم تمرير الهدف المطلوب عبر معامِل الإدخال target من النوع EcuM_BootTargetType [SWS_EcuM_02835].
كقيمة معادة، تشير الدالة E_OK إذا تم قبول هدف الإقلاع الجديد بواسطة EcuM، وإلا E_NOT_OK [SWS_EcuM_02835]. يجب على التنفيذ حفظ الهدف المحدد بطريقة متوافقة مع Bootloader [SWS_EcuM_02247]. يمكن الاستعلام عن القيمة المضبوطة حالياً عبر الخدمة المكملة EcuM_GetBootTarget [SWS_EcuM_02836].
تم تحديد الدالة على أنها قابلة لإعادة الدخول [SWS_EcuM_02835]؛ وفي إطار السلوك الداخلي لتكوين RTE، تم التصريح عن Runnable Entity SelectBootTarget باستخدام canbeInvokedConcurrently = TRUE [SWS_EcuM_03018]. وعلى سبيل التقييد، فإن هذه الخدمة مخصصة حصرياً لمكونات البرمجيات (SW-Cs) ذات الصلة بالتشخيص أو إدارة الإقلاع، وقد تعتمد على الـ Bootloader المستخدم فعلياً [SWS_EcuM_03000].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى متطلبات مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_GetBootTarget [SWS_EcuM_02836] 📄 PDF
Std_ReturnType EcuM_GetBootTarget (EcuM_BootTargetType* target);
EcuM_GetBootTarget returns the current boot target - see EcuM_SelectBootTarget. EcuM_Get BootTarget is part of the ECU Manager Module port interface.
دالة EcuM_SetWakeupEvent [SWS_EcuM_02826] 📄 PDF
void EcuM_SetWakeupEvent (EcuM_WakeupSourceType sources);
Sets the wakeup event.
دالة EcuM_ValidateWakeupEvent [SWS_EcuM_02829] 📄 PDF
void EcuM_ValidateWakeupEvent (EcuM_WakeupSourceType sources);
After wakeup, the ECU State Manager will stop the process during the WAKEUP VALIDATION state/sequence to wait for validation of the wakeup event.This API service is used to indicate to the ECU Manager module that the wakeup events indicated in the sources parameter have been validated.
EcuM_ValidateWakeupEvent هي خدمة متزامنة (معرّف الخدمة 0x14) تشير إلى ECU Manager بأن مصادر الاستيقاظ الممررة في المعامِل sources قد تم التحقق من صحتها بنجاح ([SWS_EcuM_02829]). بعد الاستيقاظ، ينتظر ECU State Manager في تسلسل التحقق من الصحة هذا التأكيد. عند الاستدعاء، توقف الدالة مؤقت انتهاء مهلة التحقق الجاري ([SWS_EcuM_02710]) وتدرج الأحداث الممررة عبر عملية OR المنطقية لقناع البتات في المتغير الداخلي لأحداث الاستيقاظ المصدق عليها ([SWS_EcuM_04078]).
الدالة قابلة لإعادة الدخول ([SWS_EcuM_02829]) ويجوز استدعاؤها من سياق المهمة وكذلك من سياق المقاطعة ([SWS_EcuM_02345]). إذا كان ECU Manager في الحالة RUN، يظل الاستدعاء دون تأثير لجميع مصادر الاستيقاظ ما لم تكن قنوات اتصال ([SWS_EcuM_02790]). في المقابل، بالنسبة للمصادر المخصصة لقناة اتصال، فإن الخدمة تُحدث تأثيراً غير مقيد في كل مرحلة من مراحل ECU ([SWS_EcuM_02791]).
في المسار العام، تتفاعل الخدمة بشكل وثيق مع التحقق من صحة الاستيقاظ وإدارة الاتصال:
- فحص التحقق من الصحة: يستدعي ECU Manager للتحقق دالة Callout
EcuM_CheckValidation؛ وفي حال اكتشاف حدث استيقاظ صالح، يتم تقديم الإشعار الراجع عبرEcuM_ValidateWakeupEvent([SWS_EcuM_02925]). - التكوين: إذا لم يتم تكوين بروتوكول تحقق لمصدر استيقاظ (
EcuMValidationTimeout)، فإنEcuM_SetWakeupEventيشمل بالفعل استدعاءEcuM_ValidateWakeupEvent([SWS_EcuM_02566]). - الإشعار: إذا تم تكوين
EcuMComMChannelRefلمصدر الاستيقاظ، تستدعي الخدمةComM_EcuM_WakeUpIndication([SWS_EcuM_02645]). عند تكوينEcuMComMPNCRef، يتم بالإضافة إلى ذلك إطلاقComM_EcuM_PNCWakeUpIndicationلكل PNC مشار إليه ([SWS_EcuM_04140]).
تم توليد إشعار الاستخدام هذا بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة EcuM_ErrorHook [SWS_EcuM_02904] 📄 PDF
void EcuM_ErrorHook (uint16 reason);
The ECU State Manager will call the error hook if the error codes "ECUM_E_RAM_CHECK_ FAILED" or "ECUM_E_CONFIGURATION_DATA_INCONSISTENT" occur. In this situation it is not possible to continue processing and the ECU must be stopped. The integrator may choose the modality how the ECU is stopped, i.e. reset, halt, restart, safe state etc.
يتم استدعاء دالة رد النداء المتزامنة وغير القابلة لإعادة الدخول EcuM_ErrorHook (المتوفرة عبر EcuM_Externals.h) بواسطة ECU State Manager بمجرد حدوث أخطاء جسيمة تجعل مواصلة المعالجة المنتظمة مستحيلة وتتطلب إيقاف وحدة التحكم الإلكترونية [SWS_EcuM_02904]. يتم إرسال سبب الخطأ المحدد عبر معامِل التمرير reason [SWS_EcuM_02904].
تشمل أسباب الأخطاء المحددة ECUM_E_RAM_CHECK_FAILED و ECUM_E_CONFIGURATION_DATA_INCONSISTENT [SWS_EcuM_02904]. إذا فشل فحص RAM عند الاستيقاظ، فإن ECU Manager ملزم بإطلاق EcuM_ErrorHook مع السبب ECUM_E_RAM_CHECK_FAILED [SWS_EcuM_02987]. بالإضافة إلى ذلك، تتم معالجة الأخطاء عبر هذا الـ Hook إذا فشل استدعاء دالة نظام التشغيل ولم يتم تحديد أي رد فعل خطأ آخر؛ ويظل EcuM في هذه الحالة في حالته السابقة [SWS_EcuM_04139].
بالنسبة لمسؤول تكامل النظام، تسري الشروط العامة التالية عند التنفيذ:
- طريقة إيقاف وحدة التحكم الإلكترونية: يختار مسؤول التكامل الطريقة التي يتم بها إيقاف ECU (مثل إعادة التعيين أو التوقف التام أو إعادة التشغيل أو الحالة الآمنة) [SWS_EcuM_02904]. تفسير: في الإجراءات الصارمة مثل إعادة التعيين أو التوقف التام، فمن المرجح ألا تعود الدالة عادةً إلى التحكم المنتظم في المسار. سؤال Q-59c23e3a2569f670 (مفتوح)
- الإبلاغ عن الخطأ إلى DEM: يرجع التقدير إلى مسؤول التكامل فيما إذا كان سيتم توجيه الخطأ إلى DEM، بشرط التأكد من أن DEM لا يكتب في أي كتل NVRAM تالفة [SWS_EcuM_02987].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_AL_SetProgrammableInterrupts [SWS_EcuM_04085] 📄 PDF
void EcuM_AL_SetProgrammableInterrupts (void);
If the configuration parameter EcuMSetProgrammableInterrupts is set to true, this callout Ecu M_AL_SetProgrammableInterrupts is executed and shall set the interrupts on ECUs with programmable interrupts.
الاستخدام وشروط الاستدعاء
يتم استدعاء دالة رد النداء EcuM_AL_SetProgrammableInterrupts بواسطة وحدة ECU State Manager لتكوين وضبط المقاطعات المقابلة على وحدات التحكم الإلكترونية المزودة بوحدات تحكم مقاطعات قابلة للبرمجة [SWS_EcuM_04085]. ومع ذلك، لا يتم تنفيذ رد النداء هذا إلا إذا تم تعيين معلمة التكوين EcuMSetProgrammableInterrupts على القيمة true [SWS_EcuM_04085]. وإذا لم تكن هذه المعلمة مفعلة، فلن يتم الاستدعاء [SWS_EcuM_04085]. بالنسبة لمسؤولي التكامل ومحركات تشغيل المنصة، يتم توفير الإعلان عن الواجهة عبر ملف الترويسة EcuM_Externals.h [SWS_EcuM_04085].
تمتلك الواجهة الصيغة void EcuM_AL_SetProgrammableInterrupts (void) وتتبع لمعرف الخدمة 0x4A [SWS_EcuM_04085]. ويتم الاستدعاء بدون أي معلمات على الإطلاق: حيث لا يتم تمرير معلمات إدخال أو إدخال/إخراج أو إخراج، ولا تُرجع الدالة أي قيمة إرجاع إلى الوحدة المستدعية [SWS_EcuM_04085].
التزامن والقيود
تم تحديد سلوك تنفيذ غير متزامن (Asynchronous) لـ EcuM_AL_SetProgrammableInterrupts في المواصفة [SWS_EcuM_04085]. وفيما يتعلق بالتزامن، تم تصنيف الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_04085]. ويعني هذا لعملية التكامل أن الاستدعاءات المتوازية أو المتداخلة للواجهة غير مسموح بها، ويجب أن يتم التكوين المتعلق بالمقاطعات دون عمليات إعادة دخول متزامنة [SWS_EcuM_04085].
تم إنشاء ملاحظة الاستخدام هذه تلقائياً بناءً على مواصفة AUTOSAR.
دالة EcuM_AL_DriverInitZero [SWS_EcuM_02905] 📄 PDF
void EcuM_AL_DriverInitZero (void);
This callout shall provide driver initialization and other hardware-related startup activities for loading the post-build configuration data. Beware: Here only pre-compile and link-time configurable modules may be used.
الاستخدام
يتم استدعاء دالة Callout EcuM_AL_DriverInitZero (معرّف الخدمة 0x31) بشكل متزامن، ولا تمتلك معامِلات ولا قيمة معادة وليست قابلة لإعادة الدخول [SWS_EcuM_02905]. يتم التصريح عنها عبر الترويسة EcuM_Externals.h [SWS_EcuM_02905]. تُستخدم الدالة لتوفير عمليات التهيئة المبكرة لبرامج التشغيل وأنشطة البدء الأساسية المتعلقة بالعتاد، والتي تُعد ضرورية للغاية للتمكن لاحقاً من تحميل بيانات تكوين Post-Build [SWS_EcuM_02905].
القيود والتشغيل متعدد الأنوية
تسري تعليمات وقيود محددة على التنفيذ والتشغيل:
- فئات التكوين: في هذا الوقت المبكر، لا يجوز استخدام سوى الوحدات القابلة للتكوين كـ Pre-Compile أو Link-Time [SWS_EcuM_02905]. لا تتوفر برامج التشغيل القابلة للتكوين كـ Post-Build هنا بعد.
- سياق الاستدعاء: يتم استدعاء الدالة بواسطة
EcuM_Initعلى كل Core في النظام [SWS_EcuM_04145]. - التهيئة الخاصة بكل Core: يجب أن يضمن تنفيذ دالة callout تهيئة وحدات MCAL التي يتم تنفيذها بالفعل على هذا الـ Core المحدد فقط، وذلك على الـ Core النشط حاليًا [SWS_EcuM_04145].
لم يتم تعريف قيم إرجاع أو رموز أخطاء محددة أو إشعارات عبر DET أو DEM لدالة callout هذه [SWS_EcuM_02905].
تم إنشاء إشعار الاستخدام هذا آليًا بناءً على مواصفات إطلاق AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_DeterminePbConfiguration [SWS_EcuM_02906] 📄 PDF
const EcuM_ConfigType* EcuM_DeterminePbConfiguration (void);
This callout should evaluate some condition, like port pin or NVRAM value, to determine which post-build configuration shall be used in the remainder of the startup process. It shall load this configuration data into a piece of memory that is accessible by all BSW modules and shall return a pointer to the EcuM post-build configuration as a base for all BSW module post-build configrations.
الدالة EcuM_DeterminePbConfiguration ([SWS_EcuM_02906]) هي نداء استدعاء (Callout) متزامن لـ ECU State Manager، وتُوفَّر عبر ملف الرأس EcuM_Externals.h وتمتلك معرّف الخدمة 0x32. لا تمتلك الواجهة أي معاملات دخل أو خرج أو دخل/خرج ([SWS_EcuM_02906]). يتمثل غرضها المركزي في تحديد مجموعة بيانات تكوين Post-Build التي يجب استخدامها لمسار بدء تشغيل النظام الإضافي استناداً إلى ظروف العتاد أو الذاكرة أثناء عملية بدء التشغيل ([SWS_EcuM_02906]).
لتحديد التكوين، يجب على نداء الاستدعاء تقييم معايير خارجية أو مقيمة مثل حالة أحد منافذ التوصيل (Port-Pin) أو قيمة في NVRAM ([SWS_EcuM_02906]). بعد ذلك، يجب على الدالة تحميل بيانات التكوين هذه إلى مقطع ذاكرة يمكن لجميع وحدات BSW الوصول إليه ([SWS_EcuM_02906]). وكقيمة مرجعة، تُعيد مؤشراً من النوع const EcuM_ConfigType* إلى تكوين Post-Build الخاص بـ EcuM ([SWS_EcuM_02906]). يشكل هذا المؤشر الأساس المشترك لـ BSW بأكملها، نظراً لأن الهيكل يحتوي على مؤشرات إلى تكوينات Post-Build الخاصة بجميع وحدات BSW الأخرى ([SWS_EcuM_02906]).
فيما يتعلق بسلوك الاستدعاء، فإن الدالة محددة على أنها متزامنة وغير قابلة لإعادة الدخول (Non Reentrant) ([SWS_EcuM_02906]). لم يتم تعريف رموز أخطاء محددة أو قيم مرجعة خاصة للأخطاء أو واجهات لـ DET أو DEM لنداء الاستدعاء هذا ([SWS_EcuM_02906]). بالتالي، قد يُعتبر كتفسير للمحددات أن تنفيذ نداء الاستدعاء الخاص بالتطبيق يجب أن يعالج حالات الخطأ بشكل مستقل، نظراً لأن غياب مؤشر تكوين صالح سيمنع على الأرجح بدء التشغيل المنظم لوحدات BSW المعتمدة. سؤال Q-b9487647fb39a2e2 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_AL_DriverInitOne [SWS_EcuM_02907] 📄 PDF
void EcuM_AL_DriverInitOne (void);
This callout shall provide driver initialization and other hardware-related startup activities in case of a power on reset.
الاستخدام والدلالات
الدالة EcuM_AL_DriverInitOne هي دالة callout تابعة لـ ECU State Manager (EcuM)، ويتم توفيرها عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_02907]. تتمثل مهمتها الأساسية في تنفيذ تهيئة برامج التشغيل بالإضافة إلى أنشطة بدء التشغيل الأخرى المرتبطة بالعتاد لوحدة التحكم في حالة حدوث إعادة ضبط التشغيل (Power-on-Reset) [SWS_EcuM_02907]. ونظرًا لأنها دالة callout، فمن المرجح أن يتم التنفيذ الفعلي لتهيئة العتاد وبرامج التشغيل بواسطة مكامل النظام المعني. سؤال Q-e22baf2fa31cf075 (مفتوح)
تمتلك الواجهة توقيع C void EcuM_AL_DriverInitOne (void) ومخصصة لـ Service-ID 0x33 [SWS_EcuM_02907]. وهي لا تقبل أي معلمات إدخال ولا تُرجع أي قيمة إرجاع إلى المستدعي [SWS_EcuM_02907].
التزامن والقيود
تنطبق الشروط الحدية التالية على الاستدعاء وسلوك وقت التشغيل وفقًا لـ [SWS_EcuM_02907]:
- التزامن: يتم التنفيذ بشكل متزامن (
Synchronous)، بحيث ينتظر المستدعي اكتمال أنشطة بدء التشغيل. - إمكانية إعادة الدخول: تم تعريف الدالة على أنها غير قابلة لإعادة الدخول (
Non Reentrant)؛ ولا يُسمح بالاستدعاء المتعدد المتزامن أو المقاطع. - سياق الاستدعاء: تم تحديد التنشيط حصريًا لمرحلة التهيئة بعد إعادة ضبط التشغيل (Power-on-Reset) مباشرةً.
معالجة الأخطاء
نظرًا لأن EcuM_AL_DriverInitOne يحتوي على نوع الإرجاع void، فلا يوجد إشعار مباشر على مستوى الواجهة بنجاح التهيئة أو فشلها [SWS_EcuM_02907]. لم يتم تعريف رموز أخطاء محددة أو رسائل DET أو DEM في نطاق المواصفات الحالي لدالة callout هذه.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_LoopDetection [SWS_EcuM_04137] 📄 PDF
void EcuM_LoopDetection (void);
If the configuration parameter EcuMResetLoopDetection is set to true, this callout EcuM_Loop Detection is called on every startup.
الدالة EcuM_LoopDetection هي دالة نداء خارجي لـ ECU State Manager بمعرّف الخدمة 0x4B، وتتوفر عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_04137].
الاستخدام وسياق الاستدعاء
شريطة ضبط معامل التهيئة EcuMResetLoopDetection على true، يتم استدعاء دالة النداء الخارجي هذه بشكل متزامن عند كل بدء تشغيل (Startup) [SWS_EcuM_04137]. ولا تحتوي الدالة على معاملات دخل، أو دخل/خرج، أو خرج، ولا تُرجع أي قيمة (التوقيع: void EcuM_LoopDetection (void)) [SWS_EcuM_04137].
التزامن والقيود
تم تحديد تنفيذ EcuM_LoopDetection بأنه متزامن وغير قابل لإعادة الدخول (Non Reentrant) [SWS_EcuM_04137]. ونظرًا لكونها دالة نداء خارجي، فإن التنفيذ الفعلي لاكتشاف الحلقات يقع عادةً على عاتق مسؤول التكامل أو المستخدم لرصد حلقات إعادة الضبط المتكررة عند بدء تشغيل النظام.
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_OnGoOffOne [SWS_EcuM_02916] 📄 PDF
void EcuM_OnGoOffOne (void);
This call allows the system designer to notify that the GO OFF I state is about to be entered.
الاستخدام
تُستخدم الدالة EcuM_OnGoOffOne للإعلان عن الوصول إلى حالة النظام GO OFF I ولمنح مصمم النظام إمكانية اتخاذ الإجراءات المناسبة مباشرةً قبل الانتقال [SWS_EcuM_02916]. تُنفذ الدالة بشكل متزامن، ولا تتوقع أي معلمات تمرير (لا in ولا inout)، ولا تُرجع أي قيمة إرجاع (void) [SWS_EcuM_02916]. وبما أنه يتم الإعلان عن الواجهة عبر ملف الترويسة EcuM_Externals.h، فمن المفهوم منطقياً أنها دالة رد نداء (callout) خاصة بالمستخدم ويتم تنفيذها في كود التكامل [SWS_EcuM_02916]. سؤال Q-93de53c47a5a6142 (مفتوح)
معالجة الأخطاء
في مواصفة EcuM_OnGoOffOne، لم يتم إدراج أخطاء تطوير (DET) ولا أخطاء إنتاج (DEM) ولا قيم إرجاع محددة للأخطاء [SWS_EcuM_02916]. ويُستنتج من ذلك أن المستدعي لا يتوقع إدارة أخطاء قياسية، ويجب معالجة أي حالات استثنائية بشكل مستقل داخل التنفيذ المخصص للمستخدم [SWS_EcuM_02916].
التزامن والقيود
تم تحديد الخصائص التالية لسياق الاستدعاء وسلوك وقت التشغيل [SWS_EcuM_02916]:
- قابلية إعادة الدخول: تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) ولا يجوز بأي حال استدعاؤها بشكل متوازٍ أو متداخل [SWS_EcuM_02916].
- التزامنية: الدلالة متزامنة تماماً (Synchronous)، بحيث ينتظر المستدعي العودة الكاملة للدالة [SWS_EcuM_02916].
- معرف الخدمة: يتم تمثيل الخدمة داخلياً بواسطة المعرف السداسي عشري
0x3C[SWS_EcuM_02916].
نظراً للسلوك المتزامن والانتقال الوشيك إلى الحالة GO OFF I، يُفترض أنه ينبغي تجنب العمليات الحاجبة لتفادي تأخير عملية إيقاف التشغيل أو الانتقال دون مبرر [SWS_EcuM_02916]. سؤال Q-93f5e23c581f0c38 (مفتوح)
تم توليد ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_OnGoOffTwo [SWS_EcuM_02917] 📄 PDF
void EcuM_OnGoOffTwo (void);
This call allows the system designer to notify that the GO OFF II state is about to be entered.
تُستخدم الدالة المتزامنة EcuM_OnGoOffTwo وفقًا للمواصفات لتمكين مصمم النظام من تلقي إشعار بأن الحالة GO OFF II باتت وشيكة [SWS_EcuM_02917]. ويتم الاستدعاء بدون معلمات، دون معلمات إدخال (In) أو إدخال/إخراج (Inout) أو إخراج (Out)، ولا يُرجع أي قيمة إرجاع إلى المستدعي [SWS_EcuM_02917].
فيما يتعلق بسياق التنفيذ والتزامن، فإن الواجهة مزودة بـ Service-ID 0x3D ومحددة بأنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02917]. ويتم توفيرها عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_02917]. التفسير: نظرًا لأن التصريح موجود في EcuM_Externals.h ويخدم إشعار مصمم النظام، فمن المرجح أن تكون الدالة مصممة كدالة callout متزامنة لإدارة وحدة التحكم (ECU)، ويتم استدعاؤها قبل الانتقال إلى الحالة GO OFF II. سؤال Q-bb0ae6e4632de827 (مفتوح)
بسبب خاصيتها كواجهة غير قابلة لإعادة الدخول، لا يجوز تكرار الاستدعاء بشكل متوازٍ أو مقاطع [SWS_EcuM_02917]. لم يتم تعريف رموز أخطاء محددة أو إشعارات إلى DET أو DEM أو آليات خاصة لمعالجة الأخطاء في نطاق المواصفات [SWS_EcuM_02917].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفة R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_AL_SwitchOff [SWS_EcuM_02920] 📄 PDF
void EcuM_AL_SwitchOff (void);
This callout shall take the code for shutting off the power supply of the ECU. If the ECU cannot unpower itself, a reset may be an adequate reaction.
الاستخدام
تعد دالة callout EcuM_AL_SwitchOff جزءًا من وحدة ECU State Manager (EcuM) وتُستخدم لاحتواء الكود المخصص للمستخدم لفصل مصدر إمداد الطاقة عن وحدة التحكم [SWS_EcuM_02920]. تم تعريف الواجهة بشكل متزامن، وتمتلك Service-ID 0x3E، ويتم توفيرها عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_02920].
وفقًا للمواصفات، لا تقبل الدالة معلمات إدخال أو إدخال/إخراج أو إخراج، وليس لها قيمة إرجاع (void) [SWS_EcuM_02920]. إذا تعذر على عتاد وحدة التحكم فصل التيار ذاتيًا، فإن المواصفات تنص على أن إطلاق إعادة ضبط يمكن أن يمثل استجابة مناسبة بدلاً من ذلك [SWS_EcuM_02920].
التفاعل والتزامن
يتم استدعاء EcuM_AL_SwitchOff إلزاميًا بواسطة وحدة ECU Manager بمجرد أن تكون وجهة إيقاف التشغيل المحددة هي OFF [SWS_EcuM_04075]. فيما يتعلق بسلوك التزامن، تم تحديد دالة callout بأنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02920]. التفسير: نظرًا لأن هدف الدالة هو الفصل الكامل للتيار الكهربائي أو إجراء إعادة ضبط كحل بديل، فمن المرجح أن تمثل دالة callout هذه الخطوة الختامية لتسلسل إيقاف التشغيل، والتي لا يحدث بعدها أي تنفيذ منتظم إضافي للبرنامج. سؤال Q-e8a1aaa1413bbea9 (مفتوح)
معالجة الأخطاء
لم تنص المواصفات على رموز أخطاء محددة أو آليات لمعالجة الأخطاء أو رسائل إلى DET أو DEM لدالة callout [SWS_EcuM_02920].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفات AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_AL_Reset [SWS_EcuM_04065] 📄 PDF
void EcuM_AL_Reset (EcuM_ResetType reset);
This callout shall take the code for resetting the ECU.
تُستخدم دالة النداء الخارجي EcuM_AL_Reset لاستقبال الشيفرة البرمجية المخصصة للتكامل، والمسؤولة عن إعادة ضبط وحدة التحكم الإلكترونية ([SWS_EcuM_04065]). يتم الإعلان عن الواجهة عبر ملف الرأس EcuM_Externals.h وتمتلك معرّف الخدمة 0x4C ([SWS_EcuM_04065]).
يتم استدعاء الدالة بشكل متزامن وتُعرَّف بأنها غير قابلة لإعادة الدخول (Non Reentrant) ([SWS_EcuM_04065]). ويتم تمرير reset من النوع EcuM_ResetType كمعامل دخل وحيد، والذي يحدد النوع الدقيق لإعادة الضبط المراد تنفيذها ([SWS_EcuM_04065]). ولا تمتلك الدالة قيمة إرجاع (void) ولا تحتوي على أي معاملات للخرج أو الدخل/الخرج ([SWS_EcuM_04065]).
ضمن تفاعل مرحلة إيقاف التشغيل، تم تحديد أنه يجب على وحدة ECU Manager استدعاء دالة النداء الخارجي EcuM_AL_Reset إلزاميًا إذا كانت وجهة إيقاف التشغيل مضبوطة على RESET ([SWS_EcuM_04074]). ولا تنص المواصفات على وجود رموز أخطاء أو إشعارات إلى DET أو DEM لدالة النداء الخارجي هذه ([SWS_EcuM_04065]). تفسير: من المرجح أن تنفذ دالة النداء الخارجي أوامر تحكم قريبة من العتاد تؤدي مباشرةً إلى إعادة ضبط MCU. سؤال Q-1e318404843faabd (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_EnableWakeupSources [SWS_EcuM_02918] 📄 PDF
void EcuM_EnableWakeupSources (EcuM_WakeupSourceType wakeupSource);
The ECU Manager Module calls EcuM_EnableWakeupSource to allow the system designer to notify wakeup sources defined in the wakeupSource bitfield that SLEEP will be entered and to adjust their source accordingly.
الدالة EcuM_EnableWakeupSources هي دالة callout متزامنة لـ ECU-Manager تحمل Service-ID 0x3F، ويتم التصريح عنها عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_02918]. تُستخدم لإعلام مطور النظام بأن الحالة SLEEP وشيكة، حتى يمكن تجهيز مصادر الاستيقاظ المحددة في حقل البتات wakeupSource (النوع EcuM_WakeupSourceType) وضبطها وفقًا لذلك [SWS_EcuM_02918].
الاستخدام والتكامل
يقوم ECU-Manager بتنفيذ EcuM_EnableWakeupSources لتكوين مصادر الاستيقاظ لوضع Sleep التالي؛ ويحدث هذا لكل مصدر استيقاظ تم تكوينه في EcuMWakeupSourceMask لوضع Sleep المستهدف [SWS_EcuM_02389]. ليس للدالة قيمة إرجاع (void) وتتوقع حقل البتات wakeupSource كمعلمة إدخال [SWS_EcuM_02918].
التزامن والقيود
- إعادة الدخول: تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (
Non Reentrant) [SWS_EcuM_02918]. - التزامن: تتم المعالجة بشكل متزامن [SWS_EcuM_02918].
- معالجة الأخطاء: لم يتم تعريف رسائل أخطاء محددة لـ DET أو DEM في نطاق مواصفات الواجهة [SWS_EcuM_02918].
تم إنشاء ملاحظة الاستخدام هذه تلقائياً استناداً إلى إصدار مواصفات AUTOSAR R20-11.
دالة EcuM_GenerateRamHash [SWS_EcuM_02919] 📄 PDF
void EcuM_GenerateRamHash (void);
see EcuM_CheckRamHash
تُستخدم الدالة EcuM_GenerateRamHash لتوليد قيمة تحقق لـ RAM في سياق ECU State Manager، حيث تشير المواصفات إلى EcuM_CheckRamHash فيما يتعلق بطريقة العمل [SWS_EcuM_02919]. وتُستخدم قيمة التحقق المُولَّدة على الأرجح للتحقق اللاحق من تكامل الذاكرة الرئيسية فيما يتعلق بحالات السكون أو الخمول. سؤال Q-7f316b389e1609c0 (مفتوح)
الاستخدام والواجهة
تمتلك الخدمة Service-ID 0x40 والتوقيع void EcuM_GenerateRamHash(void) [SWS_EcuM_02919]. ولا تمتلك الدالة معلمات إدخال أو إخراج أو إدخال/إخراج، ولا تُرجع أي قيمة إرجاع. ويتم التنفيذ بشكل متزامن.
التزامن والقيود
تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02919]. وبالتالي لا يجوز استدعاؤها بشكل مقاطع أو متوازٍ من سياقات متعددة. ويتم توفير التصريح عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_02919]. التفسير: من خلال التعريف في EcuM_Externals.h، من المرجح أن تكون دالة callout يجب تنفيذها بشكل مخصص للتطبيق، ويستدعيها ECU State Manager في وقت مناسب ضمن تسلسل الحالات. سؤال Q-2f53f1a19cee079c (مفتوح)
معالجة الأخطاء
لم يتم تعريف رموز أخطاء محددة ولا رسائل DET أو DEM لـ EcuM_GenerateRamHash في [SWS_EcuM_02919].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفات الوحدة EcuM.
دالة EcuM_SleepActivity [SWS_EcuM_02928] 📄 PDF
void EcuM_SleepActivity (void);
This callout is invoked periodically in all reduced clock sleep modes. It is explicitely allowed to poll wakeup sources from this callout and to call wakeup notification functions to indicate the end of the sleep state to the ECU State Manager.
الاستخدام وسياق الاستدعاء
تمثل الدالة EcuM_SleepActivity رد نداء (callout) لـ ECU State Manager، ويتم توفيرها في ملف الترويسة EcuM_Externals.h مع معرف الخدمة 0x41 [SWS_EcuM_02928]. يتم الاستدعاء دورياً في جميع أوضاع النوم ذات تردد المعالج المنخفض (reduced clock sleep modes) [SWS_EcuM_02928]. تمتلك الدالة التوقيع void EcuM_SleepActivity(void)، وتعمل بشكل متزامن ولا تقبل معلمات إدخال أو إخراج أو إدخال/إخراج [SWS_EcuM_02928].
المهام الوظيفية والتفاعل
الغرض من رد النداء هذا هو تنفيذ الأنشطة أثناء النوم: من المنصوص عليه والمسموح به صراحةً الاستعلام الدوري عن مصادر الاستيقاظ (Polling) داخل EcuM_SleepActivity [SWS_EcuM_02928]. بالإضافة إلى ذلك، يُسمح باستدعاء دوال إخطار الاستيقاظ مباشرةً من رد النداء لإبلاغ ECU State Manager بإنهاء حالة النوم [SWS_EcuM_02928].
التزامن والقيود
تم تحديد الواجهة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02928]. وبما أن رد النداء لا يُرجع أي قيمة إرجاع ولم يتم تحديد معلمات خطأ، فلا تتم معالجة مباشرة للأخطاء عبر واجهة الدالة باستخدام رموز أخطاء أو مبلّغات أخطاء مثل DET أو DEM [SWS_EcuM_02928].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_StartCheckWakeup [SWS_EcuM_04096] 📄 PDF
void EcuM_StartCheckWakeup (EcuM_WakeupSourceType WakeupSource);
This API is called by the ECU Firmware to start the CheckWakeupTimer for the corresponding WakeupSource. If EcuMCheckWakeupTimeout > 0 the CheckWakeupTimer for the Wakeup Source is started. If EcuMCheckWakeupTimeout <= 0 the API call is ignored by the EcuM.
الاستخدام وسياق الاستدعاء
وفقًا لـ [SWS_EcuM_04096]، يتم استدعاء الواجهة المتزامنة EcuM_StartCheckWakeup بواسطة البرنامج الثابت لوحدة التحكم الإلكترونية (ECU firmware) لبدء المؤقت CheckWakeupTimer لمصدر استيقاظ معين. ويتم تمرير المعامل WakeupSource من النوع EcuM_WakeupSourceType إلى الدالة لهذا الغرض. لا تمتلك الدالة قيمة إرجاع (void) وتتوفر عبر ملف الرأس EcuM_Externals.h.
مسار التنفيذ والشروط
يعتمد تنفيذ الدالة على تهيئة مصدر الاستيقاظ [SWS_EcuM_04096]:
- إذا كانت القيمة
EcuMCheckWakeupTimeout > 0مهيأة لمصدر الاستيقاظ المعني، فسيتم بدءCheckWakeupTimerالمرتبط به. - إذا انطبق
EcuMCheckWakeupTimeout <= 0، فإن EcuM يتجاهل استدعاء الدالة تمامًا.
التزامن ومعالجة الأخطاء
تم تحديد الدالة بأنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_04096]. وبالتالي، يجب على الجهة المستدعية ضمان عدم حدوث استدعاءات متزامنة لنفس مصدر الاستيقاظ أو لمصادر استيقاظ أخرى. لم يتم تحديد رموز أخطاء معينة أو إشعارات إلى DET أو DEM لهذا الاستدعاء؛ ووفقًا للمواصفات، يظل الاستدعاء دون أي تأثير في حالة المهلة الزمنية غير الموجبة، وهو ما يمكن تفسيره على الأرجح باعتراض متسامح لفحوصات المؤقت غير ذات الصلة [SWS_EcuM_04096]. سؤال Q-19d98b03d3ee7504 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_CheckWakeup [SWS_EcuM_02929] 📄 PDF
void EcuM_CheckWakeup (EcuM_WakeupSourceType wakeupSource);
This callout is called by the EcuM to poll a wakeup source. It shall also be called by the ISR of a wakeup source to set up the PLL and check other wakeup sources that may be connected to the same interrupt.
تُستخدم دالة callout EcuM_CheckWakeup لفحص مصادر الاستيقاظ والاستقصاء الدوري (Polling) لها، بالإضافة إلى تكوين الـ PLL بعد حدث استيقاظ [SWS_EcuM_02929]. يتم توفير الدالة عبر ملف الرأس EcuM_Externals.h وتمتلك Service-ID 0x42 [SWS_EcuM_02929].
سياق الاستدعاء والدلالات البرمجية
- التوقيع والمعلمات: تُنفذ الدالة بشكل متزامن (
Synchronous)، وليس لها قيمة إرجاع، وتتوقعwakeupSourceمن النوعEcuM_WakeupSourceTypeكمعلمة إدخال [SWS_EcuM_02929]. - المستدعي: يتم استدعاء دالة callout بواسطة
EcuMللاستعلام الدوري عن مصدر استيقاظ. بالإضافة إلى ذلك، يجب استدعاؤها إلزاميًا من روتين خدمة المقاطعة (ISR) لمصدر استيقاظ، وذلك لتهيئة الـ PLL وفحص مصادر استيقاظ إضافية متصلة بنفس المقاطعة [SWS_EcuM_02929]. - حلقة الاستقصاء الدوري (Polling): في تسلسل الاستقصاء الدوري، يستدعي EcuM دالتي callout
EcuM_SleepActivityوEcuM_CheckWakeupبشكل متكرر في حلقة حاصرة (Blocking Loop)، حتى يتم الإبلاغ عن حدث استيقاظ كمعلق أو تم التحقق من صحته [SWS_EcuM_03020].
القيود ومعالجة الأخطاء
تم تحديد الدالة بأنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02929]. ونظرًا لأن الاستدعاءات تتم من مسار التنفيذ الحاجب لتسلسل الاستطلاع (Polling Sequence) وكذلك من سياقات ISR، فمن المرجح أن يتعين على عملية التكامل ضمان عدم حدوث استدعاءات متزامنة غير منسقة. سؤال Q-8bc8f164670a0911 (مفتوح) ولم يتم تحديد رموز أخطاء معينة أو إشعارات أخطاء إلى DET أو DEM لدالة النداء الخارجي (Callout) هذه.
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_EndCheckWakeup [SWS_EcuM_02927] 📄 PDF
void EcuM_EndCheckWakeup (EcuM_WakeupSourceType WakeupSource);
This API is called by any SW Module whose wakeup source is checked asynchronously (e.g. asynchronous Can Trcv Driver) and the Check of the Wakeup returns a negative Result (no Wakeup by this Source). The API cancels the CheckWakeupTimer for the WakeupSource. If the correponding CheckWakeupTimer is canceled the check of this wakeup source is finished.
تستدعي وحدات البرمجيات الدالة المتزامنة EcuM_EndCheckWakeup عندما يُسفر الفحص غير المتزامن لمصدر استيقاظ (مثل برنامج تشغيل جهاز إرسال واستقبال CAN غير متزامن) عن نتيجة سلبية، أي عدم وجود حدث استيقاظ بواسطة هذا المصدر [SWS_EcuM_02927].
الاستخدام والمعلمات
عبر معامل الدخل WakeupSource من النوع EcuM_WakeupSourceType، يتم تمرير مصدر الاستيقاظ المراد إلغاء مؤقت المراقبة المرتبط به [SWS_EcuM_02927]. لا تُعيد الدالة أي قيمة مرجعة (void) ولا تملك أي معاملات دخل/خرج أو معاملات خرج [SWS_EcuM_02927].
آلية العمل والتزامن
- تلغي الدالة المؤقت
CheckWakeupTimerلمصدر الاستيقاظ المحدد؛ ومع إلغاء هذا المؤقت، يُعتبر فحص مصدر الاستيقاظ مكتملاً [SWS_EcuM_02927]. - تم تعريف الواجهة على أنها متزامنة وغير قابلة لإعادة الدخول (
Non Reentrant) [SWS_EcuM_02927]. - يُتاح التصريح عبر ملف الرأس
EcuM_Externals.h[SWS_EcuM_02927].
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR R20-11.
دالة EcuM_CheckRamHash [SWS_EcuM_02921] 📄 PDF
uint8 EcuM_CheckRamHash (void);
This callout is intended to provide a RAM integrity test. The goal of this test is to ensure that after a long SLEEP duration, RAM contents is still consistent. The check does not need to be exhaustive since this would consume quite some processing time during wakeups. A well designed check will execute quickly and detect RAM integrity defects with a sufficient probability. This specification does not make any assumption about the algorithm chosen for a particular ECU. The areas of RAM which will be checked have to be chosen carefully. It depends on the check algorithm itself and the task structure. Stack contents of the task executing the RAM check e.g. very likely cannot be checked. It is good practice to have the hash generation and checking in the same task and that this task is not preemptible and that there is only little activity between hash generation and hash check. The RAM check itself is provided by the system designer. In case of applied multi core and existence of Satellite-Ecu M(s): this API will be called by the Master-EcuM only.
الدالة EcuM_CheckRamHash هي دالة callout متزامنة وغير قابلة لإعادة الدخول (مُصرَّح عنها في EcuM_Externals.h)، توفر اختبار تكامل لذاكرة RAM [SWS_EcuM_02921]. لا تحتوي الدالة على معلمات وتُرجع قيمة حالة من النوع uint8: تشير القيمة 0 إلى فشل الاختبار، بينما تشير أي قيمة أخرى إلى اجتيازه بنجاح [SWS_EcuM_02921].
وفقًا لـ [SWS_EcuM_02863]، تستدعي الوحدة EcuM أولاً [SWS_EcuM_02919] قبل إيقاف المتحكم الدقيق، وتنفذ EcuM_CheckRamHash بعد العودة من حالة التوقف (Halt). والهدف هو التحقق من أن محتوى RAM ظل متسقًا حتى بعد مرحلة SLEEP طويلة [SWS_EcuM_02921].
تنطبق الشروط الحدية التالية على التنفيذ وسير العمل:
- الخوارزمية ونطاق الفحص: يتم توفير دالة الفحص بواسطة مصمم النظام؛ وليس بالضرورة أن تكون شاملة، ولكن ينبغي أن تُنفذ بسرعة وأن تكتشف الأخطاء بدرجة كافية من الموثوقية [SWS_EcuM_02921]. ويجب اختيار النطاقات المراد فحصها بعناية؛ إذ لا يمكن فحص محتويات مكدس (Stack) المهمة المنفذة في العادة [SWS_EcuM_02921].
- بنية المهام: يُعتبر من أفضل الممارسات تنفيذ توليد التجزئة والتحقق منها في نفس المهمة غير القابلة للمقاطعة مع أدنى حد من النشاط البيني [SWS_EcuM_02921].
- الأنظمة متعددة الأنوية (Multi-Core): في حالة وجود عدة نوى معالجات مع وحدات EcuM تابعة (Satellites)، يتم استدعاء دالة callout حصريًا بواسطة EcuM الرئيسي ولا تفحص سوى البيانات الواقعة ضمن نطاقه [SWS_EcuM_02863]، [SWS_EcuM_02921].
لم يتم تعريف رسائل DET أو DEM محددة لدالة callout هذه؛ ومن المرجح أن يخضع رد الفعل على الخطأ عند قيمة الإرجاع 0 لتقدير تصميم النظام الأعلى [SWS_EcuM_02921]. سؤال Q-473ef8617db29fe3 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفة AUTOSAR Classic R20-11.
دالة EcuM_DisableWakeupSources [SWS_EcuM_02922] 📄 PDF
void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource);
The ECU Manager Module calls EcuM_DisableWakeupSources to set the wakeup source(s) defined in the wakeupSource bitfield so that they are not able to wake the ECU up.
تُستخدم الواجهة المتزامنة EcuM_DisableWakeupSources ذات معرّف الخدمة 0x44 لتهيئة مصادر الاستيقاظ المعرّفة في معامل حقل البتات wakeupSource من النوع EcuM_WakeupSourceType بحيث لا تعود قادرة على إيقاظ وحدة التحكم الإلكترونية (ECU) [SWS_EcuM_02922]. توقيع الدالة هو void EcuM_DisableWakeupSources (EcuM_WakeupSourceType wakeupSource) [SWS_EcuM_02922].
وفقاً للمواصفة، تنطبق الخصائص التالية على سياق الاستدعاء والتكامل:
- المتصل وملف الرأس: يتم استدعاء الدالة بواسطة وحدة ECU Manager وتُوفَّر عبر ملف الرأس
EcuM_Externals.h[SWS_EcuM_02922]. - المعاملات والقيم المرجعة: يتم تمرير حقل البتات
wakeupSourceكمعامل الدخل الوحيد. لا تمتلك الدالة معاملات دخل/خرج أو معاملات خرج، ولا تُعيد قيمة مرجعة (void) [SWS_EcuM_02922]. - دلالات التنفيذ والتزامن: تتم المعالجة بشكل متزامن. بالإضافة إلى ذلك، تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (
Non Reentrant)، بحيث يجب تجنب الاستدعاءات المتزامنة أو المتداخلة [SWS_EcuM_02922].
فيما يتعلق بمعالجة الأخطاء، لا تحتوي المواصفة الخاصة باستدعاء هذه الدالة على رموز أخطاء محددة أو إشعارات إلى DET أو DEM [SWS_EcuM_02922].
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دالة EcuM_AL_DriverRestart [SWS_EcuM_02923] 📄 PDF
void EcuM_AL_DriverRestart (void);
This callout shall provide driver initialization and other hardware-related startup activities in the wakeup case.
يتم التصريح عن دالة callout EcuM_AL_DriverRestart عبر ملف الرأس EcuM_Externals.h وتحمل Service-ID 0x45 [SWS_EcuM_02923]. تمتلك الدالة التوقيع void EcuM_AL_DriverRestart (void)، ولا تتطلب معلمات تمرير ولا تُرجع أي قيمة إرجاع [SWS_EcuM_02923]. الغرض من هذه الواجهة هو توفير تهيئة برامج التشغيل بالإضافة إلى أنشطة أخرى مرتبطة بالعتاد أثناء مرحلة بدء التشغيل في حالة الاستيقاظ (Wakeup Case) [SWS_EcuM_02923].
تنطبق متطلبات إلزامية على التكامل والتفاعل مع الوحدة EcuM:
- لإعادة التهيئة أثناء المرحلة
WakeupRestart، يجب على المكامل تضمين كتلة إعادة تشغيل في كود التكامل لـEcuM_AL_DriverRestart، والتي تستخدم القائمة المكونةEcuMDriverRestartList[SWS_EcuM_02947] [SWS_EcuM_02923]. - يمكن أن تحتوي القائمة
EcuMDriverRestartListعلى برامج تشغيل تعمل كمصادر استيقاظ (Wakeup Sources) [SWS_EcuM_02562]. في هذه الحالة، يجب علىEcuM_AL_DriverRestartإعادة تجهيز (re-arm) آلية إطلاق رد النداء لاكتشاف الاستيقاظ (”wakeup detected“) لبرامج التشغيل هذه [SWS_EcuM_02562].
فيما يتعلق بسلوك وقت التشغيل، تم تعريف الدالة على أنها متزامنة وغير قابلة لإعادة الدخول [SWS_EcuM_02923]. ونظرًا لأنها كود تكامل خاص بالتطبيق، فإن المواصفات لا تحدد رموز أخطاء خاصة بها عند هذه الواجهة، ولا تحدد رسائل قياسية إلى DET أو DEM.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي. قد تكون المعلومات غير كاملة ولا تحل محل مواصفات AUTOSAR الرسمية.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة EcuM_StartWakeupSources [SWS_EcuM_02924] 📄 PDF
void EcuM_StartWakeupSources (EcuM_WakeupSourceType wakeupSource);
The callout shall start the given wakeup source(s) so that they are ready to perform wakeup validation.
تُستخدم دالة callout EcuM_StartWakeupSources لبدء مصدر (مصادر) الاستيقاظ المُمَرَّر وتشغيله بحيث يكون جاهزًا للتنفيذ اللاحق للتحقق من صحة الاستيقاظ (Wakeup Validation) [SWS_EcuM_02924].
الاستخدام وسياق الاستدعاء
تم تحديد الدالة كاستدعاء متزامن مع Service-ID 0x46، وليس لها قيمة إرجاع (void)، وتتوفر عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_02924].
- المعلمة
wakeupSource(in): تُمرر مصدر الاستيقاظ المراد بدؤه أو قناع بتات لعدة مصادر استيقاظ من النوعEcuM_WakeupSourceTypeإلى دالة callout [SWS_EcuM_02924]. ولا توجد معلمات إدخال/إخراج أو إخراج إضافية (inout/out) [SWS_EcuM_02924].
التزامن والقيود
فيما يتعلق ببيئة التنفيذ، تم تصنيف EcuM_StartWakeupSources على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02924]. لذلك يجب على المستدعين التأكد من عدم تنفيذ الدالة في الوقت نفسه من روتين خدمة المقاطعة (ISR) المقاطع أو المهام المتوازية.
التفاعل ومعالجة الأخطاء
نظرًا لأن EcuM_StartWakeupSources مُصرَّح عنها كدالة callout، فإن التنشيط القريب من العتاد للمصادر المعنية يقع على عاتق التنفيذ المخصص للتطبيق من قِبل مكامل النظام [SWS_EcuM_02924]. لا تنص المواصفات على رسائل خطأ إلى DET أو DEM ولا على قيم إرجاع أخطاء محددة لهذه الواجهة [SWS_EcuM_02924]؛ ولذلك يُفترض على الأرجح معالجة حالات الأخطاء المحتملة عند بدء المصادر بشكل خاص بالتكامل داخل دالة callout. سؤال Q-b595e7175c34a831 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة EcuM_CheckValidation [SWS_EcuM_02925] 📄 PDF
void EcuM_CheckValidation (EcuM_WakeupSourceType wakeupSource);
This callout is called by the EcuM to validate a wakeup source. If a valid wakeup has been detected, it shall be reported to EcuM via EcuM_ValidateWakeupEvent().
تُستخدم الدالة EcuM_CheckValidation كواجهة استدعاء خارجي (Callout) لـ ECU State Manager للتحقق من مصدر الإيقاظ [SWS_EcuM_02925]. يستدعي EcuM هذه الدالة لتحديد ما إذا كان حدث الإيقاظ المكتشف صالحاً [SWS_EcuM_02925].
الاستخدام
يمتلك الاستدعاء الخارجي معرّف الخدمة 0x47 ويتم توفيره عبر ملف الرأس EcuM_Externals.h [SWS_EcuM_02925]. وتُستخدم wakeupSource من النوع EcuM_WakeupSourceType كمعلمة تمرير، والتي يتم من خلالها تحديد مصدر الإيقاظ المراد التحقق من صحته [SWS_EcuM_02925]. لا ترجع الدالة أي قيمة (void) ولا تمتلك معلمات إخراج أو إدخال/إخراج [SWS_EcuM_02925]. ويتم التنفيذ بشكل متزامن [SWS_EcuM_02925].
معالجة الأخطاء
لم يتم تعريف رموز خطأ محددة أو قيم إرجاع في حالة الخطأ أو رسائل إلى DET أو DEM لهذا الاستدعاء الخارجي في المواصفات.
التزامن والقيود
فيما يتعلق بالتزامن، تم تحديد EcuM_CheckValidation على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02925]. ويجب أن يضمن سياق الاستدعاء لـ EcuM عدم حدوث استدعاءات متوازية أو متداخلة لمصدر الإيقاظ نفسه أو لمصادر إيقاظ مختلفة.
تفاعل
إذا تم اكتشاف حدث إيقاظ صالح أثناء التنفيذ، فيجب إبلاغ EcuM به إلزامياً عبر استدعاء الدالة EcuM_ValidateWakeupEvent() [SWS_EcuM_02925]. تفسير: يُرجح أن يتم تنفيذ المنطق الخاص بالجهاز للتحقق من العتاد وكذلك قرار الصلاحية بالكامل في كود الدمج (Integration Code). سؤال Q-08061e09b474728d (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه تلقائياً استناداً إلى مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_StopWakeupSources [SWS_EcuM_02926] 📄 PDF
void EcuM_StopWakeupSources (EcuM_WakeupSourceType wakeupSource);
The callout shall stop the given wakeup source(s) after unsuccessful wakeup validation.
تُستخدم دالة callout EcuM_StopWakeupSources للوحدة EcuM (Classic Platform) لإيقاف مصدر (مصادر) الاستيقاظ المُمَرَّر بشكل مستهدف بعد التحقق غير الناجح من صحة الاستيقاظ [SWS_EcuM_02926]. يتوفر التصريح عن هذه الواجهة المتزامنة عبر ملف الرأس EcuM_Externals.h ويحمل Service-ID 0x48 [SWS_EcuM_02926].
الاستخدام ومعلمات الواجهة:
- معلمة الإدخال: كمعلمة وحيدة، يتم تمرير
wakeupSourceمن النوعEcuM_WakeupSourceType، والتي تحدد مصدر (مصادر) الاستيقاظ المراد إيقافه [SWS_EcuM_02926]. - قيمة الإرجاع والإدخال/الإخراج: لا توجد معلمات إدخال/إخراج (
inout) ولا معلمات إخراج (out) [SWS_EcuM_02926]. ولا تُرجع الدالة أي قيمة إرجاع (void) إلى المستدعي [SWS_EcuM_02926]. - سلوك التنفيذ: تم تحديد سير عمل الدالة على أنه متزامن (
Synchronous) [SWS_EcuM_02926].
التزامن ومعالجة الأخطاء:
تم تحديد الواجهة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_EcuM_02926]. وبالتالي لا يُسمح بالاستدعاءات المتوازية ويجب على المستدعي تجنبها. لا تحدد المواصفات رموز أخطاء محددة ولا قيم إرجاع أو إشعارات لوحدة Default Error Tracer (DET) أو وحدة Diagnostic Event Manager (DEM) لدالة callout هذه [SWS_EcuM_02926]. التفسير: نظرًا لأن الدالة يتم توفيرها كدالة callout خارجية عبر EcuM_Externals.h، فإن التعطيل المرتبط بالعتاد لعتاد الاستيقاظ المعني وكذلك معالجة الأخطاء الداخلية يقعان على عاتق التنفيذ المخصص للمستخدم. سؤال Q-b537c805bed751ab (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفة R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EcuM_MainFunction [SWS_EcuM_02837] 📄 PDF
void EcuM_MainFunction (void);
The purpose of this service is to implement all activities of the ECU State Manager while the OS is up and running.
الاستخدام وسياق الاستدعاء
تمتلك الدالة EcuM_MainFunction التوقيع void EcuM_MainFunction(void) مع معرف الخدمة 0x18 وتتوفر عبر ملف الترويسة SchM_EcuM.h [SWS_EcuM_02837]. ولا تقبل أي معلمات ولا تُرجع أي قيمة إرجاع [SWS_EcuM_02837]. وتتمثل مهمتها في معالجة جميع أنشطة ECU State Manager أثناء تشغيل نظام التشغيل («OS is up and running») [SWS_EcuM_02837]. وفي هذا السياق، يُرجح أن يتم استدعاء الدالة دورياً بواسطة المجدول (تفسير: الدمج عبر SchM_EcuM.h). سؤال Q-ca471f22bdb1f11d (مفتوح)
التفاعل والمهام
أثناء التشغيل، يتولى EcuM_MainFunction مهام التنسيق المركزية:
- التحقق من مصادر الاستيقاظ: إذا توفرت قائمة بالمرشحين لمصادر الاستيقاظ بعد اكتمال تسلسل WakeupRestart، فإن وحدة EcuM تتحقق من هؤلاء المرشحين داخل
EcuM_MainFunction[SWS_EcuM_02539]. - انتهاء مهلة التحقق: إذا انتهت مهلة التحقق لحدث استيقاظ معلق، تقوم الدالة عبر عملية OR منطقية بضبط البت المقابل في المتغير الداخلي لأحداث الاستيقاظ المنتهية مهلتها [SWS_EcuM_04081]. بالإضافة إلى ذلك، تقوم بإخطار BSW Management عبر
BswM_EcuM_Current_Wakeupباستخدام قناع بتEcuM_WakeupSourceTypeالخاص بالحدث والحالةECUM_WKSTATUS_EXPIRED[SWS_EcuM_04082]. - خدمة Alarm Clock: إذا كانت الخدمة متوفرة عبر
EcuMAlarmClockPresent، تقومEcuM_MainFunctionبتحديث مؤقت Alarm Clock Timer [SWS_EcuM_04002].
القيود ومثيلات التشغيل
كشرط أساسي للبنى متعددة الأنوية أو متعددة المثيلات، يجب تنفيذ EcuM_MainFunction في جميع مثيلات EcuM [SWS_EcuM_04011].
أُنشئت ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفة R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع EcuM_ConfigType [SWS_EcuM_04038] 📄 PDF
A pointer to such a structure shall be provided to the ECU State Manager initialization routine for configuration.
نوع EcuM_RunStatusType [SWS_EcuM_04120] 📄 PDF
Result of the Run Request Protocol sent to BswM
نوع البيانات EcuM_RunStatusType مُعرَّف كـ uint8 ويتم توفيره عبر ملف الرأس EcuM.h ([SWS_EcuM_04120]). وهو يخدم التمثيل الرسمي للحالة الحالية لبروتوكول Run-Request في مدير ECU ويُنقل كنتيجة إلى Basic Software Mode Manager (BswM) ([SWS_EcuM_04120]).
يشمل نطاق القيم المسموح به ثلاث حالات منفصلة ([SWS_EcuM_04120]):
ECUM_RUNSTATUS_UNKNOWN(القيمة 0): يمثل حالة غير معروفة ويعمل في الوقت نفسه كقيمة تهيئة أولية محددة (Init Value).ECUM_RUNSTATUS_REQUESTED(القيمة 1): يميز الحالة التي تم فيها طلب حالة RUN بنشاط من قِبل مدير ECU.ECUM_RUNSTATUS_RELEASED(القيمة 2): يشير إلى أن حالة RUN قد تم تحريرها مجددًا بواسطة مدير ECU.
فيما يتعلق بالتفاعل، يلزم المتطلب [SWS_EcuM_04121] وحدة مدير ECU بإبلاغ BswM بصورة ملزمة بالحالة الحالية لبروتوكول Run-Request استنادًا إلى قيم الحالة المدرجة في EcuM_RunStatusType. تفسير: بما أن المتطلب لا يذكر توقيع دالة محددًا أو اصطلاح استدعاء لتدفق الرسائل، فمن المحتمل أن تُمرر معلومات الحالة عادةً عبر دالة إخطار داخلية أو واجهة استدعاء رد (Callback) إلى وحدة BswM. سؤال Q-e136b90c2edbc29c (مفتوح) لم يتم النص في المتطلبات الحالية على رموز خطأ محددة، أو رسائل DET أو DEM، أو شروط خاصة لعودية الدخول (Reentrancy) لنوع البيانات الأولي هذا.
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع EcuM_WakeupSourceType [SWS_EcuM_04040] 📄 PDF
EcuM_WakeupSourceType defines a bitfield with 5 pre-defined positions (see Range). The bitfield provides one bit for each wakeup source. In WAKEUP, all bits cleared indicates that no wakeup source is known. In STARTUP, all bits cleared indicates that no reason for restart or reset is known. In this case, ECUM_WKSOURCE_RESET shall be assumed.
نوع EcuM_WakeupStatusType [SWS_EcuM_04041] 📄 PDF
The type describes the possible states of a wakeup source.
يصف نوع البيانات EcuM_WakeupStatusType وفقًا لـ [SWS_EcuM_04041] الحالات الممكنة لمصدر الاستيقاظ (Wakeup Source) في ECU State Manager. ويُشتق النوع من النوع الأساسي uint8 ويتم توفيره عبر ملف الرأس EcuM.h [SWS_EcuM_04041].
يمثل نطاق القيم دورة حياة حدث الاستيقاظ عبر أربع حالات [SWS_EcuM_04041]:
ECUM_WKSTATUS_NONE(القيمة 0): لم يتم اكتشاف أي حدث استيقاظ معلق [SWS_EcuM_04041].ECUM_WKSTATUS_PENDING(القيمة 1): تم اكتشاف حدث استيقاظ، ولكنه لم يتم التحقق من صلاحيته بعد [SWS_EcuM_04041].ECUM_WKSTATUS_VALIDATED(القيمة 2): حدث الاستيقاظ صالح وتم تأكيده بنجاح [SWS_EcuM_04041].ECUM_WKSTATUS_EXPIRED(القيمة 3): لم يتم التحقق من صلاحية حدث الاستيقاظ في الوقت المناسب، وبالتالي انتهت صلاحيته [SWS_EcuM_04041].
الاستخدام والتفاعل: يعمل النوع كتمثيل مركزي لحالة مصادر الاستيقاظ. تفسير: من المرجح أن تقوم الجهات المستدعية بتقييم هذه الحالة ضمن استعلامات الحالة، وذلك لتحديد ما إذا كان يجري التحقق من صلاحية مصدر الاستيقاظ بنشاط، أو أنه أشار بالفعل إلى استيقاظ صالح، أو تم تجاوز النافذة الزمنية للتحقق من الصلاحية. سؤال Q-a3f721e8f1753eb1 (مفتوح)
تم إنشاء هذا النص تلقائيًا. تستند جميع المعلومات حصريًا إلى متطلبات مواصفات الإصدار المعني.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع EcuM_ResetType [SWS_EcuM_04044] 📄 PDF
This type describes the reset mechanisms supported by the ECU State Manager. It can be extended by configuration.
نوع EcuM_StateType [SWS_EcuM_91005] 📄 PDF
ECU State Manager states.
النوع EcuM_StateType هو نوع بيانات مشتق من uint8، يُوفَّر عبر ملف الرأس EcuM.h ويمثل حالات تشغيل ECU State Manager [SWS_EcuM_91005]. تلتزم وحدة EcuM بتعريف جميع الحالات المدرجة في EcuM_StateType [SWS_EcuM_02664]. يشمل نطاق القيم قناع الحالة الفرعية ECUM_SUBSTATE_MASK (0x0f) بالإضافة إلى الحالات الرئيسية ECUM_STATE_STARTUP (0x10)، وECUM_STATE_RUN (0x32)، وECUM_STATE_POST_RUN (0x33)، وECUM_STATE_SHUTDOWN (0x40)، وECUM_STATE_SLEEP (0x50) [SWS_EcuM_91005].
الاستخدام والتكامل
يعمل نوع البيانات كمعامل محوري لاتصال الحالة بين BswM وEcuM:
- تغيير الحالة إلى EcuM: عبر استدعاء الدالة المتزامن والقابل لإعادة الدخول
EcuM_SetState(EcuM_StateType state)بمعرّف الخدمة0x2b، يُخطر BswM وحدة EcuM بتغيير في الحالة [SWS_EcuM_04122]. - الإبلاغ عن الحالة إلى BswM: يبلّغ EcuM الحالة الحالية إلى BswM من خلال استدعاء الواجهة
BswM_EcuM_CurrentState(EcuM_StateType State)[SWS_EcuM_04143].
التزامن، الترتيب ومعالجة الأخطاء
فيما يتعلق بالترتيب الزمني، يُشترط عدم السماح بتعيين حالة جديدة بواسطة EcuM إلا بعد أن تقدّم RTE استجابتها عبر منفذ الإقرار (Acknowledgement) المقابل [SWS_EcuM_04143]. لم يتم النص على رموز أخطاء أو قيم مرجعة أو رسائل DET/DEM محددة لنوع البيانات هذا في المصادر الحالية.
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استناداً إلى متطلبات المواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع EcuM_Mode [SWS_EcuM_04107] 📄 PDF
تم تعريف النوع EcuM_Mode كـ ModeDeclarationGroup وفقًا لـ [SWS_EcuM_04107] ويمثل الحالات المركزية لـ ECU State Manager. وتم تحديد STARTUP كوضع أولي. بالإضافة إلى ذلك، تتضمن المجموعة الأوضاع المحددة POST_RUN، وRUN، وSHUTDOWN، وكذلك SLEEP [SWS_EcuM_04107].
ضمن ترابط النظام، يعمل EcuM_Mode كأساس نوع لمجموعة الأوضاع currentMode داخل واجهة الخدمة EcuM_CurrentMode [SWS_EcuM_04108]. ومن خلال هذه الواجهة، يمكن الاستعلام عن وضع ECU الحالي أو إرسال إشارة به إلى مكونات البرمجيات الأخرى عبر آلية وضع RTE.
فيما يتعلق بسياق الاستدعاء والتزامن، لا تتضمن مواصفات النوع في حد ذاتها أي قيود صريحة بشأن إمكانية إعادة الدخول أو رموز الأخطاء؛ وتتم إدارة انتقالات الحالة عبر واجهات الخدمة المرتبطة بـ EcuM.
تم إنشاء هذه الملاحظة تلقائيًا وتستند إلى بيانات مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع currentMode [SWS_EcuM_04112] 📄 PDF
العنصر currentMode مُعرَّف كمنفذ مُقدَّم (Provided-Port) للوحدة EcuM ويوفر واجهة الخدمة EcuM_CurrentMode لبنية البرمجيات [SWS_EcuM_04112]. تُستخدم واجهة الخدمة هذه لقراءة وضع ECU الحالي وتغلف مجموعة الأوضاع currentMode استنادًا إلى نوع البيانات EcuM_Mode [SWS_EcuM_04108].
أثناء تشغيل النظام، يتم الاستخدام للإشارة إلى تغيرات الحالة:
- الاستدعاء والاستخدام: بمجرد حدوث تغيير في الوضع، يُبلغ EcuM مكونات البرمجيات (SW-Cs) بذلك عبر منافذ وضع RTE [SWS_EcuM_04133]. وبناءً على افتراض المواصفة لاسم المنفذ
currentModeوعند استخدام API المباشر لـ RTE، يتم استدعاء الدالةRte_Switch_currentMode_currentMode( Rte_ModeType_EcuM_Mode mode)لهذا الغرض [SWS_EcuM_04133]. - المعلمات والقيمة المعادة: تُمرر المعلمة
modeالوضع الجديد المطلوب اتخاذه إلى RTE [SWS_EcuM_04133]. لا يتم تقييم القيمة المعادة من نوعRte_StatusTypeوالمقدمة من Switch-API، بل يجب تجاهلها إلزاميًا وفقًا للمواصفة [SWS_EcuM_04133]. - التفاعل: يجب على أي مكون برمجيات مطلوب إخطاره بتغييرات الوضع أن يطلب واجهة تبديل الوضع
EcuM_CurrentModeكمنفذ مطلوب (Required-Port) [SWS_EcuM_04133].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا وتستند حصريًا إلى متطلبات مواصفة الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع EcuM_UserType [SWS_EcuM_91004] 📄 PDF
Unique value for each user.
نوع EcuM_TimeType [SWS_EcuM_04102] 📄 PDF
This data type represents the time of the ECU Manager module.
نوع EcuM_ShutdownCauseType [SWS_EcuM_04045] 📄 PDF
This type describes the cause for a shutdown by the ECU State Manager. It can be extended by configuration.
نوع EcuM_ShutdownModeType [SWS_EcuM_04101] 📄 PDF
This data type represents the modes of the ECU Manager module.
الاستخدام ومجال القيم
يستند نوع البيانات EcuM_ShutdownModeType إلى uint16 ويتم توفيره عبر ملف الترويسة Rte_EcuM_Type.h [SWS_EcuM_04101]. وهو يمثل الأوضاع المكونة في ECU State Manager. ويشمل نطاق قيمه ما يلي:
- أوضاع Sleep المكونة وفقاً لـ
EcuMSleepModeId[SWS_EcuM_04101] بالإضافة إلى - أوضاع Reset المكونة، المحسوبة من الإزاحة
256 + EcuMResetModeId[SWS_EcuM_04101].
التفاعل وسياق الاستدعاء
يُستخدم النوع في خدمات ECU Manager المتزامنة والقابلة لإعادة الدخول:
- تأخذ
EcuM_SelectShutdownTargetshutdownModeكمعلمة إدخال لتحديد وضع Sleep الفعلي (عند الهدفECUM_SHUTDOWN_TARGET_SLEEP) أو آلية Reset (عند الهدفECUM_SHUTDOWN_TARGET_RESET) [SWS_EcuM_02822]. - تُرجع
EcuM_GetShutdownTargetعبر معلمة مؤشر تشير إلىEcuM_ShutdownModeTypeوضع Sleep أو Reset المكون والمحدد لهدف إيقاف التشغيل الحالي [SWS_EcuM_02824]. - تُخرج
EcuM_GetLastShutdownTargetوضع إيقاف التشغيل لعملية إيقاف التشغيل السابقة عبر معلمة إخراج [SWS_EcuM_02825]. وعبر واجهة الخدمةEcuM_ShutdownTarget، تتاح هذه الوظيفة أيضاً لمكونات البرمجيات (SW-Cs) [SWS_EcuM_03011].
معالجة الأخطاء والشروط الحدية
تُرجع الدوال Std_ReturnType. فإذا تم تمرير مؤشر NULL إلى EcuM_GetShutdownTarget أو EcuM_GetLastShutdownTarget على سبيل المثال، فإن الاستدعاء يفشل بـ E_NOT_OK [SWS_EcuM_02824]، [SWS_EcuM_02825]. وعند التنفيذ بنجاح، تُبلغ الخدمات عن E_OK [SWS_EcuM_02822]، [SWS_EcuM_03011].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استناداً إلى متطلبات المواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع EcuM_ShutdownTargetType [SWS_EcuM_04136] 📄 PDF
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_EcuM- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_EcuM@rel:R20-11#4060bec5- Content hash
4060bec5- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_ECUStateManager.pdf#nameddest=SWS_EcuM_02813
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني