AUTOSAR OS
Real-time operating system managing priority-based preemptive task scheduling, events, alarms, and schedule tables (OSEK/VDX derivative).
Funktionen — Übersicht
ApplicationType GetApplication (void);This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller...ApplicationType GetCurrentApplication (void);This service determines the OS - Application where the caller of the service is currently executing.ISRType GetISRID (void);This service returns the identifier of the currently executing ISR.StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);A (trusted or non - trusted) OS - Application uses this service to call a trusted functionAccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is...AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region...ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter,...ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongsStatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);This service cancels the processing of a schedule table immediately at any point while the schedule table is running.StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);This service switches the processing from one schedule table to another schedule table.StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);This service starts an explicitly synchronized schedule table synchronously.StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);Service SyncScheduleTable.StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);This service stops synchronization of a schedule table.StatusType GetScheduleTable GetScheduleTableStatusof (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus); ⚠️This service queries the state of a schedule table (also with respect to synchronization).StatusType IncrementCounter (CounterType CounterID);This service increments a software counter.StatusType GetCounterValue (CounterType CounterID, TickRefType Value);This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by...StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);This service gets the number of ticks between the current tick value and a previously read tick value.StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);Service TerminateApplication.StatusType AllowAccess (void);This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);This service returns the current state of an OS - Application.uint32 GetNumberOfActivated GetNumberActivatedCores (void); ⚠️The function returns the number of cores activated by the Start Core function.CoreIdType GetCore (void);The function returns a unique core identifier.void StartCore (CoreIdType CoreID, StatusType* Status);It is not supported to call this function after Start OS().void StartNonAutosar StartNonCore (CoreIdType CoreID, StatusType* Status); ⚠️The function start s the core specified by the parameter Core ID.StatusType GetSpinlock (SpinlockIdType SpinlockId);Get Spinlock tries to occupy a spin - lock variable.StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);Release Spinlock releases a spinlock variable that was occupied before.StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by...void ShutdownAllCores (StatusType Error);After this service the OS on all AUTOSAR cores is shut down.StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.StatusType ReadPeripheral (AreaIdType Area, const uint8* Address, uint8* ReadValue);This service returns the content of a given memory location ().StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);This service returns the content of a given memory location ().StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);This service returns the content of a given memory location ().StatusType WritePeripheral (AreaIdType Area, uint8* Address, uint8 WriteValue);This service writes the to a given memory location ().StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);This service writes the to a given memory location ().StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);This service writes the to a given memory location ().StatusType ModifyPeripheral (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);This service modifies a given memory location () with the formula: * = ((* & ) | )StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);Service EnableInterruptSource.StatusType DisableInterruptSource (ISRType ISRID);Disables the interrupt source by modifying the interrupt controller registers.StatusType ClearPendingInterrupt (ISRType ISRID);Service ClearPendingInterrupt.void ActivateTaskAsyn (TaskType id);Asynchronous version of the Activate Task() function.void SetEventAsyn (TaskType id, EventMaskType m);Asynchronous version of the Set Event() function.void Ioc (void);This service initializes the data structures of the IOC.void <ReceiverPullCB> (void);This callback function can be configured for the receiver of a communication.ProtectionReturnType ProtectionHook (StatusType Fatalerror);The protection hook is always called if a serious error occurs.
Typen — Übersicht
enum AppModeTypeApp Mode of the core shall be inherited from another core.TotalNumberOfCoresThe total number of coresApplicationTypeThis data type identifies the OS - Application.enum ApplicationStateTypeThis data type identifies the state of an OS - Application.ApplicationStateRefTypeThis data type points to location where a Application State Type can be stored.TrustedFunctionIndexTypeThis data type identifies a trusted function.struct TrustedFunctionParameterRefTypeThis data type points to a structure which holds the arguments for a call to a trusted function.AccessTypeThis type holds information how a specific memory region can be accessed.ObjectAccessTypeThis data type identifies if an OS - Application has access to an object.ObjectTypeThis data type identifies an object.MemoryStartAddressTypeThis data type is a pointer which is able to point to any location in the MCU address space.MemorySizeTypeThis data type holds the size (in bytes) of a memory region.ISRTypeThis data type identifies an interrupt service routine (ISR).ScheduleTableTypeThis data type identifies a schedule table.enum ScheduleTableStatusTypeThis type describes the status of a schedule.ScheduleTableStatusRefTypeThis data type points to a variable of the data type Schedule Table Status Type.enum ProtectionReturnTypeThis data type identifies a value which controls further actions of the OS on return from the protection hook.RestartTypeThis data type defines the use of a Restart Task after terminating an OS - Application.PhysicalTimeTypeThis data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_().CoreIdTypeCore Id Type is a scalar that allows identifying a single core.SpinlockIdTypeSpinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To...TryToGetSpinlockTypeThe Try To Get Spinlock Type indicates if the spinlock has been occupied or not.enum IdleModeTypeThis data type identifies the idle mode behavior.AreaIdTypeArea Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify...TimeInMicrosecondsType-CounterTypeThis data type identifies a counter.typedef TickTypeThis data type represents count values in ticks.enum StatusTypeThis data type represents standard OSEK OS status codes (e.typedef TaskTypeThis data type identifies an AUTOSAR OS task.typedef EventMaskTypeThis data type represents an event mask for extended tasks.typedef AlarmTypeThis data type represents an AUTOSAR OS alarm identifier.
Funktionen & Typen — Detailansicht
دالة GetApplication [SWS_Os_00016] 📄 PDF
ApplicationType GetApplicationID (void);
This service determines the OS - Application (a unique identifier has to be allocated to each application) where the caller originally belongs to (was configured t o).
دالة GetCurrentApplication [SWS_Os_00797] 📄 PDF
ApplicationType GetCurrentApplicationID (void);
This service determines the OS - Application where the caller of the service is currently executing. Note that if the caller is not within a Call Trusted Function() call the value is eq ual to the result of Get Application ID().
دالة GetISRID [SWS_Os_00511] 📄 PDF
ISRType GetISRID (void);
This service returns the identifier of the currently executing ISR.
دالة CallTrustedFunction [SWS_Os_00097] 📄 PDF
StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);
A (trusted or non - trusted) OS - Application uses this service to call a trusted function
عبر خدمة النظام CallTrustedFunction (معرّف الخدمة 0x02)، يمكن لـ OS-Application موثوق به أو غير موثوق به استدعاء Trusted Function محددة للتنفيذ [SWS_Os_00097]. يتم توفير الواجهة عبر ملف الترويسة Os.h [SWS_Os_00097].
يتطلب الاستدعاء تمرير معاملي إدخال اثنين [SWS_Os_00097]:
FunctionIndex(النوعTrustedFunctionIndexType): يحدد فهرس الدالة المراد استدعاؤها [SWS_Os_00097].FunctionParams(النوعTrustedFunctionParameterRefType): يمرر مؤشرًا إلى معلمات الدالة الهدف؛ إذا لم تكن هناك وسائط مطلوبة، فيجب بالضرورة تمرير مؤشر NULL [SWS_Os_00097].
فيما يتعلق بالسلوك الزمني، يعتمد التنفيذ على الروتين الهدف: إذا كانت الدالة المستدعاة متزامنة، فإن الخدمة تتصرف بشكل متزامن أيضًا [SWS_Os_00097]. الدالة مطبقة لتكون قابلة لإعادة الدخول (reentrant)، ولكن يمكنها أثناء التنفيذ أن تؤدي إلى إعادة جدولة (Rescheduling) لنظام التشغيل [SWS_Os_00097].
كقيمة إرجاع، تقدم الخدمة قيمة حالة من النوع StatusType [SWS_Os_00097]:
E_OK: كان التنفيذ ناجحًا وخاليًا من الأخطاء [SWS_Os_00097].E_OS_SERVICEID: لا توجد دالة صالحة مقترنة بالفهرس الممرر [SWS_Os_00097].
تم إنشاء ملاحظة الاستخدام هذه آليًا استنادًا إلى AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة CheckISRMemoryAccess [SWS_Os_00512] 📄 PDF
AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);
This service checks if a memory region is write/ read/ execute accessible and also returns information if the memory region is part of the stack space.
الدالة CheckISRMemoryAccess هي خدمة نظام متزامنة وقابلة لإعادة الدخول (reentrant) لوحدة OS ([SWS_Os_00512]). تُستخدم لفحص حقوق الوصول إلى الذاكرة لـ ISR محددة لمنطقة ذاكرة معينة في وقت التشغيل.
الاستخدام والمعلمات
يتوقع استدعاء CheckISRMemoryAccess ثلاثة معلمات إدخال ([SWS_Os_00512]):
ISRID: مرجع إلى ISR المراد فحصها (ISRType).Address: عنوان البداية لمنطقة الذاكرة المراد فحصها (MemoryStartAddressType).Size: حجم منطقة الذاكرة (MemorySizeType).
كقيمة إرجاع، تقدم الخدمة النوع AccessType. تحتوي قيمة الإرجاع هذه على حقوق الوصول (قراءة، كتابة، تنفيذ) إلى المنطقة المحددة وتعطي بالإضافة إلى ذلك معلومات حول ما إذا كانت منطقة الذاكرة جزءًا من منطقة المكدس (Stack) ([SWS_Os_00512]).
التزامن والتكامل
وفقًا للمواصفة، تمتلك الدالة معرّف الخدمة 0x03 وهي مُعلنة كقابلة لإعادة الدخول (reentrant) ([SWS_Os_00512]). وهي متاحة عبر ملف الترويسة Os.h ([SWS_Os_00512]). لا يتم سرد رموز أخطاء محددة أو ردود صريحة إلى DET/DEM في مقتطف المواصفات الحالي.
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى بيانات مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة CheckTaskMemoryAccess [SWS_Os_00513] 📄 PDF
AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);
This service checks if a memory region is write/ read/ execu te accessible and also returns information if the memory region is part of the stack space.
تمثل الدالة CheckTaskMemoryAccess خدمة متزامنة لنظام التشغيل، يتم توفيرها عبر الترويسة Os.h وتمتلك معرّف الخدمة 0x04 [SWS_Os_00513]. وتُستخدم للاستعلام عن حقوق الوصول إلى الذاكرة لمهمة معينة لقطاع ذاكرة محدد [SWS_Os_00513].
المعلمات وقيم الإرجاع
عند الاستدعاء، تقبل الخدمة ثلاث معلمات إدخال [SWS_Os_00513]:
Task ID(من النوعTaskType): مرجع إلى المهمة التي يراد فحص حقوق الوصول الخاصة بها.Address(من النوعMemoryStartAddressType): عنوان البدء لمنطقة الذاكرة المراد فحصها.Size(من النوعMemorySizeType): حجم منطقة الذاكرة المراد فحصها.
كقيمة إرجاع، تقدم الخدمة متغيرًا من النوع AccessType [SWS_Os_00513]. تحتوي قيمة الإرجاع هذه على معلومات حول ما إذا كانت منطقة الذاكرة المحددة قابلة للوصول للمهمة مع حقوق كتابة أو قراءة أو تنفيذ، وتوضح بالإضافة إلى ذلك ما إذا كانت المنطقة جزءًا من منطقة الـ Stack [SWS_Os_00513]. لم يتم تحديد رموز خطأ إضافية أو رسائل DET لهذه الخدمة.
التزامن والتفاعل
تم تحديد الخدمة على أنها قابلة لإعادة الدخول وبالتالي يمكن استخدامها بأمان في سياقات تنفيذ متزامنة [SWS_Os_00513]. بينما تستعلم CheckTaskMemoryAccess عن أذونات مناطق الذاكرة في وقت التشغيل، يحدد معيار AUTOSAR في توصيفات وحدات ARTI واجهات وبنى بيانات يمكن لأدوات تصحيح الأخطاء من خلالها تسجيل حالات وسمات كائنات نظام التشغيل وتقييمها [SWS_Os_00829].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
استدعاء الخدمة والغرض منها
تُستخدم الوظيفة CheckTaskMemoryAccess المحددة في المعيار [SWS_Os_00513] للتحقق المتزامن مما إذا كانت منطقة معينة من الذاكرة قابلة للوصول من قِبل مهمة محددة من حيث عمليات القراءة أو الكتابة أو التنفيذ. كما تتيح هذه الوظيفة معرفة ما إذا كانت المنطقة المستهدفة تقع ضمن مساحة مكدس الذاكرة (stack space) المخصصة للمهمة. تتوفر الخدمة عبر الملف الرأسي Os.h وتحمل المعرف 0x04.
المعلمات والقيمة المعادة
TaskID: مرجع المهمة المراد فحص أذونات وصولها إلى نطاق الذاكرة المحدد.Address: عنوان البداية لمنطقة الذاكرة المستهدفة من النوعMemoryStartAddressType.Size: حجم منطقة الذاكرة المراد التحقق من صلاحياتها من النوعMemorySizeType.- القيمة المعادة: تُرجع قيمة من النوع
AccessTypeتحتوي على أذونات وحقوق الوصول الخاصة بتلك المنطقة، بالإضافة إلى تحديد تبعيتها لمساحة المكدس.
خصائص التنفيذ والتكامل
تتميز الخدمة بأنها متزامنة (Synchronous) وقابلة لإعادة الدخول (Reentrant) بالكامل وفقاً لما ينص عليه [SWS_Os_00513]. تفسير: يُرجَّح أن استخدام هذه الخدمة يساهم في التحقق من حماية الذاكرة أو رفد أدوات التشخيص والمراقبة بالمعلومات الديناميكية لكائنات وحالات المهام في نظام التشغيل، بالتكامل مع متطلبات ARTI الواردة في [SWS_Os_00829].
تم إنشاء هذا المحتوى آلياً بناءً على مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة CheckObjectAccess [SWS_Os_00256] 📄 PDF
ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);
This service determines if the OS - Applications, given by Appl ID, is allowed to use the IDs of a Task, Resource, Counter, Alarm or Schedule Table in API calls.
الاستخدام والدلالات
تحدد الدالة CheckObjectAccess ([SWS_Os_00256]) بشكل متزامن ما إذا كانت OS-Application معينة تمتلك الصلاحية لاستخدام ID الخاص بكائن نظام تشغيل في استدعاءات API. وتُستخدم معلمة الإدخال ApplID من النوع ApplicationType ([SWS_Os_00256]) لتحديد التطبيق. ويتم تحديد نوع الكائن المراد فحصه عبر ObjectType (النوع ObjectTypeType)؛ وتدعم كلاً من Task وResource وCounter وAlarm وSchedule Table ([SWS_Os_00256]). وتتبع كمعلمة ثالثة الكائن المراد فحصه نفسه عبر قائمة المعلمات المتغيرة ... ([SWS_Os_00256]).
كقيمة إرجاع، تُرجع الدالة النوع ObjectAccessType: إذا كان وصول التطبيق إلى الكائن مسموحًا به، يتم إرجاع ACCESS، وإلا NO_ACCESS ([SWS_Os_00256]). تم الإعلان عن الخدمة عبر الترويسة Os.h ولديها معرّف الخدمة 0x05 ([SWS_Os_00256]).
التزامن ومعالجة الأخطاء والتفاعل
تم تحديد الخدمة على أنها قابلة لإعادة الدخول وبالتالي يمكن استدعاؤها في سياقات تنفيذ متزامنة ([SWS_Os_00256]). لا تنص المواصفة على رموز أخطاء محددة أو قيم إرجاع لحالات الخطأ أو رسائل إلى DET أو DEM لهذه الدالة ([SWS_Os_00256]).
تفسير: من المرجح أن تمرر الوسيطة المتغيرة ... في التنفيذ المعرّف الفعلي للكائن المتوافق مع ObjectType. سؤال Q-5cb52ff94bb07826 (مفتوح) كما تنعكس كائنات نظام التشغيل التي تم فحصها في معلومات تصحيح الأخطاء الخاصة بـ ARTI، والتي تسجل سمات وحالات كائنات نظام التشغيل وتقيمها ([SWS_Os_00829]).
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى المواصفة R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة CheckObjectOwnership [SWS_Os_00017] 📄 PDF
ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);
This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs
الاستخدام
تُستخدم دالة النظام المتزامنة CheckObjectOwnership لتحديد الـ OS-Application التي ينتمي إليها كائن معين من كائنات نظام التشغيل [SWS_Os_00017]. تتضمن الكائنات التي يمكن الاستعلام عنها عبر هذه الخدمة المهام (Tasks)، وروتينات خدمة المقاطعة (ISRs)، والعدادات، والتنبيهات، بالإضافة إلى جداول الجدولة (Schedule Tables) [SWS_Os_00017].
تتوفر الدالة عبر ملف الترويسة Os.h ولديها معرّف الخدمة 0x06 [SWS_Os_00017]. عند الاستخدام، تقبل الدالة معلمتي إدخال:
ObjectType: يحدد كمعلمة إدخال من النوعObjectTypeTypeنوع كائن نظام التشغيل الذي يتم تمريره لاحقًا [SWS_Os_00017]....: يمرر الكائن الفعلي المراد فحصه إلى الخدمة [SWS_Os_00017].
كقيمة إرجاع، تُرجع الدالة نوع البيانات ApplicationType [SWS_Os_00017]. يحتوي هذا على معرّف الـ OS-Application التي تم تعيين الكائن المفحوص إليها [SWS_Os_00017].
معالجة الأخطاء وخصائص التنفيذ
إذا لم يكن الكائن المستعلم عنه موجودًا في النظام، ترجع الخدمة قيمة الإرجاع INVALID_OSAPPLICATION [SWS_Os_00017].
فيما يتعلق بسلوك التزامن، تم تحديد CheckObjectOwnership على أنها قابلة لإعادة الدخول وتعمل بشكل متزامن تمامًا [SWS_Os_00017]. ولا توجد معلمات إدخال وإخراج (inout أو out) بخلاف قيمة الإرجاع [SWS_Os_00017].
تستند ملاحظة الاستخدام هذه إلى المواصفة SWS_Os_00017 من AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة StartScheduleTableRel [SWS_Os_00347] 📄 PDF
StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);
This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.
الاستخدام والمعلمات
تبدأ خدمة النظام StartScheduleTableRel معالجة جدول جدولة نسبةً إلى قيمة العداد الحالية («Now») للعداد الأساسي [SWS_Os_00347]. يتم تنفيذ الاستدعاء بشكل متزامن وهو متاح عبر الواجهة Os.h مع معرّف الخدمة 0x07 [SWS_Os_00347].
ScheduleTableID(إدخال،ScheduleTableType): معرّف جدول الجدولة المراد بدء تشغيله [SWS_Os_00347].Offset(إدخال،TickType): العدد النسبي لنبضات العداد على العداد قبل أن تبدأ معالجة الجدول [SWS_Os_00347].
قيم الإرجاع ومعالجة الأخطاء
تُرجع الدالة رمز حالة من النوع StatusType [SWS_Os_00347]:
E_OK: تم بدء تشغيل جدول الجدولة بنجاح وخالٍ من الأخطاء [SWS_Os_00347].E_OS_STATE: تم بالفعل بدء تشغيل جدول الجدولة المحدد [SWS_Os_00347].E_OS_ID(فقط عند الحالةEXTENDED):ScheduleTableIDالمحدد غير صالح [SWS_Os_00347].E_OS_VALUE(فقط عند الحالةEXTENDED): المعاملOffsetيساوي0أو يتجاوز القيمة(OsCounterMaxAllowedValue - InitialOffset)[SWS_Os_00347].
التزامن والقيود
تم تحديد الدالة على أنها قابلة لإعادة الدخول (reentrant) [SWS_Os_00347]. لا توجد معلمات إخراج أو معلمات إدخال/إخراج [SWS_Os_00347].
تستند ملاحظة الاستخدام هذه إلى مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة StartScheduleTableAbs [SWS_Os_00358] 📄 PDF
StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);
This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.
تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول (reentrant) StartScheduleTableAbs لبدء تشغيل جدول تسلسل زمني (Schedule Table) عند قراءة عداد مطلقة محددة مسبقًا على العداد الأساسي ([SWS_Os_00358]). تتوفر الخدمة عبر ملف الترويسة Os.h ويتم تحديدها عبر معرّف الخدمة 0x08 ([SWS_Os_00358]).
عند الاستدعاء، يتم تمرير معاملي إدخال ([SWS_Os_00358]):
ScheduleTableID: معرّف Schedule Table المراد بدء تشغيلها.Start: قيمة نبضة العداد المطلقة التي يتم عندها بدء تشغيل Schedule Table.
كقيمة إرجاع، تُرجع الدالة الحالة من النوع StatusType ([SWS_Os_00358]):
E_OK: كانت عملية البدء ناجحة.E_OS_STATE: تم بالفعل بدء تشغيل Schedule Table المحددة مسبقًا.E_OS_ID: قيمةScheduleTableIDالمُمررة غير صالحة (يتم إرجاعها فقط في الحالةEXTENDED).E_OS_VALUE: قيمةStartتتجاوز الحد الأقصى المسموح به لقيمة العدادOsCounterMaxAllowedValue(تُرجع فقط في الحالةEXTENDED).
فيما يتعلق بالتفاعل، يمكن تقييم وعرض حالة والسمات الديناميكية لكائنات نظام التشغيل مثل Schedule Tables عبر أوصاف وحدات ARTI بواسطة أدوات تصحيح الأخطاء المتصلة ([SWS_Os_00829]). تفسير: من المرجح أن يشمل سياق الاستدعاء مستويات المهام في المقام الأول، نظرًا لعدم وجود قيد صريح مذكور في مقتطف المواصفة. سؤال Q-213de28d0345ccb1 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى مواصفات الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة StopScheduleTable [SWS_Os_00006] 📄 PDF
StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);
This service cancels the processing of a schedule table immediately at any point while the schedule table is running.
تلغي دالة النظام المتزامنة StopScheduleTable ([SWS_Os_00006]) معالجة جدول جدولة قيد التشغيل فورياً في أي لحظة معالجة كانت. الخدمة مصرح عنها في ملف الرأس Os.h وتمتلك معرف الخدمة 0x09 ([SWS_Os_00006]). وتُستخدم ScheduleTableID من النوع ScheduleTableType كمعلمة إدخال وحيدة، والتي تحدد جدول الجدولة المراد إيقافه؛ ولا توجد أي معلمات إدخال/إخراج أو معلمات إخراج فقط ([SWS_Os_00006]).
يُرجع الاستدعاء المتزامن كقيمة مرجعة رمز حالة من النوع StatusType ([SWS_Os_00006]):
E_OK: تم إيقاف معالجة جدول الجدولة دون أخطاء ([SWS_Os_00006]).E_OS_NOFUNC: كان جدول الجدولة المحدد بالفعل في حالة التوقف ([SWS_Os_00006]).E_OS_ID: المعرّف الممررScheduleTableIDغير صالح. وفقاً للمواصفة، لا يتم توليد هذه القيمة المرجعة إلا في الحالةEXTENDED([SWS_Os_00006]).
عُرِّفت الدالة بأنها قابلة لإعادة الدخول ([SWS_Os_00006]). التفسير: بالنظر إلى قابلية إعادة الدخول المصرح عنها، يُرجح أن الاستدعاء المتزامن من عدة سياقات OS مسموح به، على الرغم من غياب قيود السياق المحددة في مقتطف المواصفة الحالي. سؤال Q-9cb147c4bc7dba7e (مفتوح) ولمراقبة وقت التشغيل، يمكن نقل الحالة والسمات الديناميكية لكائنات OS مثل جداول الجدولة عبر ملفات وصف ARTI إلى أدوات تصحيح الأخطاء والتحليل المتصلة ([SWS_Os_00829]).
ملاحظة: تم إنشاء هذا التوضيح آلياً بناءً على مواصفة AUTOSAR Classic الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة NextScheduleTable [SWS_Os_00191] 📄 PDF
StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);
This service switches the processing from one schedule table to another schedule table.
تُستخدم الدالة NextScheduleTable للتبديل المتزامن للمعالجة من جدول جدولة قيد التشغيل إلى جدول لاحق [SWS_Os_00191]. تم تصميم الخدمة لتكون قابلة لإعادة الدخول (reentrant) ومُعلنة عبر ملف الترويسة Os.h [SWS_Os_00191].
المعلمات والاستدعاء
يتم تمرير معاملي إدخال من النوع ScheduleTableType إلى الاستدعاء [SWS_Os_00191]:
ScheduleTableID_From: معرّف جدول الجدولة الجاري معالجته حاليًا [SWS_Os_00191].ScheduleTableID_To: معرّف جدول الجدولة الذي يوفر السلسلة اللاحقة من نقاط الانتهاء (Expiry Points) [SWS_Os_00191].
قيم الإرجاع ومعالجة الأخطاء
تُرجع الوظيفة قيمة حالة من النوع StatusType [SWS_Os_00191]:
E_OK: تم إرسال طلب التبديل بنجاح وخالٍ من الأخطاء [SWS_Os_00191].E_OS_ID: يُرجع حصريًا عند تكوين الحالةEXTENDED، في حال كان معرّف جدول واحد على الأقل من المعرّفات الممررة غير صالح [SWS_Os_00191].E_OS_NOFUNC: الجدول المصدرScheduleTableID_Fromليس في الحالة المبدوءة (started) [SWS_Os_00191].E_OS_STATE: الجدول الهدفScheduleTableID_Toقد تم بدء تشغيله بالفعل بشكل نشط أو تم حجزه مسبقًا كجدول لاحق [SWS_Os_00191].
التفاعل والتشخيص
لمراقبة نظام التشغيل وتحليله، تدعم أوصاف وحدات ARTI حاويات ORTI المقابلة، مما يتيح لأدوات تصحيح الأخطاء، من بين أمور أخرى، تقييم وعرض الحالات الديناميكية لكائنات نظام التشغيل [SWS_Os_00829].
تم إنشاء هذا النص تلقائيًا. تستند جميع المعلومات حصريًا إلى مواصفات إصدار AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة StartScheduleTableSynchron [SWS_Os_00201] 📄 PDF
StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);
This service starts an explicitly synchronized schedule table synchronously.
الاستخدام
تُستخدم خدمة النظام StartScheduleTableSynchron لبدء تشغيل جدول جدولة متزامن صراحةً بشكل متزامن [SWS_Os_00201]. تم الإعلان عن الدالة في ملف الترويسة Os.h ولديها معرّف الخدمة 0x0b [SWS_Os_00201]. كمعامل تمرير وحيد، تتوقع الدالة معامل الإدخال ScheduleTableID من النوع ScheduleTableType، والذي يشير بشكل فريد إلى الجدول المراد بدء تشغيله [SWS_Os_00201]. لا توجد معلمات إدخال-إخراج أو معلمات إخراج فقط [SWS_Os_00201]. تتم المعالجة بشكل متزامن وتُرجع قيمة إرجاع من النوع StatusType [SWS_Os_00201].
معالجة الأخطاء
في المسار الخالي من الأخطاء، يُرجع استدعاء الدالة رمز الحالة E_OK [SWS_Os_00201]. في حالة حدوث أخطاء، يتم تحديد قيم الإرجاع التالية:
E_OS_STATE: جدول الجدولة المحدد موجود بالفعل في الحالة المبدوءة ولا يمكن بدء تشغيله متزامنًا مرة أخرى [SWS_Os_00201].E_OS_ID:ScheduleTableIDالممرر غير صالح [SWS_Os_00201]. يكون فحص الخطأ ورسالة الخطأ هذه نشطين حصريًا في حالة EXTENDED [SWS_Os_00201].
التزامن والقيود
تم تحديد الدالة على أنها قابلة لإعادة الدخول (reentrant) [SWS_Os_00201]. نظرًا لأن الاستدعاء المتكرر لجدول نشط بالفعل يُرفض بـ E_OS_STATE، يجب على المستدعي التأكد من أن الجدول الهدف لا يعمل بالفعل قبل الاستدعاء [SWS_Os_00201].
تفاعل
يمكن تتبع انتقالات الحالة والخصائص الديناميكية لكائنات نظام التشغيل لأدوات الاختبار والتشخيص عبر ملفات وصف وحدات ARTI وحاويات ORTI [SWS_Os_00829]. تستخدم مصححات الأخطاء الخارجية هذه الأوصاف لتقييم الحالة الداخلية لكائنات OS في وقت التشغيل [SWS_Os_00829].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة SyncScheduleTable [SWS_Os_00199] 📄 PDF
StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);
Service SyncScheduleTable.
تُستخدم خدمة نظام التشغيل المتزامنة والقابلة لإعادة الدخول (reentrant) SyncScheduleTable لتمرير قيمة عداد إلى جدول جدولة وبدء عملية المزامنة ([SWS_Os_00199]). يتم توفير الدالة عبر ملف الترويسة Os.h ([SWS_Os_00199]).
المعلمات وقيم الإرجاع
تتوقع الدالة معلمتي إدخال ([SWS_Os_00199]):
Schedule Table ID: معرّف جدول الجدولة المراد مزامنته من النوعScheduleTableType([SWS_Os_00199]).Value: القيمة الحالية لعداد المزامنة من النوعTickType([SWS_Os_00199]).
تشير قيمة الإرجاع من النوع StatusType بواسطة E_OK إلى التنفيذ الخالي من الأخطاء ([SWS_Os_00199]).
معالجة الأخطاء والشروط الحدية
إذا كان الجدول في الحالة SCHEDULETABLE_STOPPED في وقت الاستدعاء، فسيتم إرجاع الخطأ E_OS_STATE ([SWS_Os_00199]). إذا تم تكوين نظام التشغيل في الحالة EXTENDED، فسيتم تطبيق عمليات فحص إضافية ([SWS_Os_00199]):
E_OS_ID: معرّف الجدول المحدد غير صالح أو لا يمكن مزامنة الجدول لأنOs Schedule Tbl Sync Strategyغير مكوّن أو مضبوط علىIMPLICIT([SWS_Os_00199]).E_OS_VALUE: قيمة العداد الممررةValueتقع خارج النطاق المسموح به ([SWS_Os_00199]).
التفاعل والتشخيص
يمكن تقييم حالات والسمات الديناميكية لكائنات نظام التشغيل مثل جداول الجدولة عبر أوصاف وحدات ARTI وحاويات ORTI بواسطة أدوات تصحيح الأخطاء والتشخيص المتصلة ([SWS_Os_00829]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي استناداً إلى AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة SetScheduletableAsync [SWS_Os_00422] 📄 PDF
StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);
This service stops synchronization of a schedule table.
دالة GetScheduleTableStatusof [SWS_Os_00227] 📄 PDF
StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);
This service queries the state of a schedule table (also with respect to synchronization).
دالة IncrementCounter [SWS_Os_00399] 📄 PDF
StatusType IncrementCounter (CounterType CounterID);
This service increments a software counter.
الاستخدام
تُستخدم دالة نظام التشغيل المتزامنة IncrementCounter لتقديم عداد برمجيات بشكل صريح [SWS_Os_00399]. تتوقع كمعلمة إدخال المعرّف CounterID من النوع CounterType، ولا تعدل أي معلمات أخرى، وهي متاحة عبر الترويسة Os.h [SWS_Os_00399]. وتجدر الإشارة إلى أن الاستدعاء قد يتسبب في إعادة جدولة فورية لنظام التشغيل [SWS_Os_00399].
معالجة الأخطاء
توفر قيمة الإرجاع من النوع StatusType معلومات حول نجاح العملية: في حالة التشغيل العادي، يُبلغ E_OK عن التنفيذ الخالي من الأخطاء [SWS_Os_00399]. عند تفعيل فحص الحالة الممتد (حالة EXTENDED)، ترجع الخدمة E_OS_ID إذا تم تحديد ID عداد غير صالح أو إذا كان العداد المشار إليه منفذاً في العتاد وبالتالي لا يمكن زيادته عبر البرمجيات [SWS_Os_00399].
التزامن والتشخيص
تم تصميم الدالة لتكون قابلة لإعادة الدخول، وبالتالي يجوز استدعاؤها بشكل متزامن [SWS_Os_00399]. تفسير: من المرجح أن تحدث إعادة جدولة محتملة إذا أدى تقديم العداد إلى إطلاق إجراءات تابعة مثل انتهاء فترات التنبيه أو تنشيط المهام. سؤال Q-9004b5ced9b96230 (مفتوح) ولمراقبة كائنات نظام التشغيل مثل العدادات وحالتها الديناميكية، تدعم توصيفات وحدات ARTI أدوات التحليل المتصلة أثناء مراقبة وقت التشغيل [SWS_Os_00829].
تم إنشاء ملاحظة الاستخدام هذه آليًا وتستند إلى مواصفات إصدار AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة GetCounterValue [SWS_Os_00383] 📄 PDF
StatusType GetCounterValue (CounterType CounterID, TickRefType Value);
This service reads the current count value of a counte r (returning either the hardware timer ticks if counter is driven by hardware or the software ticks when user drives counter).
دالة GetElapsedValue [SWS_Os_00392] 📄 PDF
StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);
This service gets the number of ticks between the current tick value and a previously read tick value.
دالة TerminateApplication [SWS_Os_00258] 📄 PDF
StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);
Service TerminateApplication.
تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول (reentrant) TerminateApplication لإنهاء OS-Application وتتوفر عبر ملف الترويسة Os.h [SWS_Os_00258]. الاستدعاء مسموح به من سياق مهمة (Task)، أو ISR من الفئة 2، وكذلك خطاف خطأ (Error Hook) خاص بالتطبيق [SWS_Os_00258].
كمعلمات إدخال، يتم تمرير معرّف التطبيق الهدف (Application) وسلوك إعادة التشغيل (Restart Option) [SWS_Os_00258]:
- إذا كان المستدعي نفسه ينتمي إلى التطبيق المحدد في
Application، فإن التنفيذ يؤدي إلى إنهاء ذاتي [SWS_Os_00258]. - عبر
Restart Option، يتم تحديد ما إذا كان يجب إعادة تشغيل OS-Application بعد ذلك (RESTART) أم لا (NO_RESTART) [SWS_Os_00258].
تُرجع الدالة قيمة حالة من النوع StatusType [SWS_Os_00258]:
E_OKتشير إلى إنهاء خالٍ من الأخطاء [SWS_Os_00258].E_OS_STATEتشير إلى أن الحالة الحالية لـApplicationلا تسمح بالإنهاء [SWS_Os_00258].- في حالة EXTENDED، يتم إجراء فحوصات أخطاء إضافية:
E_OS_IDعند وجود معرّف تطبيق غير صالح، وE_OS_VALUEعند وجود قيمة معامل غير صالحة لـRestart Option، وكذلكE_OS_ACCESSفي حال افتقار المستدعي إلى الصلاحية لإنهاءApplication[SWS_Os_00258].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى المواصفة SWS_Os_00258.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة AllowAccess [SWS_Os_00501] 📄 PDF
StatusType AllowAccess (void);
This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.
الاستخدام
تُستخدم خدمة النظام المتزامنة AllowAccess (معرّف الخدمة 0x13) لضبط حالة الـ OS-Application الخاصة من APPLICATION_RESTARTING إلى APPLICATION_ACCESSIBLE ([SWS_Os_00501]). الدالة متاحة عبر ملف الترويسة Os.h، ولا تتوقع أي معلمات تمرير، وتُرجع قيمة حالة من النوع StatusType ([SWS_Os_00501]). وعند تنفيذ تغيير الحالة بنجاح، يُرجع الاستدعاء قيمة الإرجاع E_OK ([SWS_Os_00501]).
معالجة الأخطاء والتزامن
إذا لم تكن الـ OS-Application المستدعية في الحالة APPLICATION_RESTARTING، يفشل التنفيذ وتُرجع الدالة قيمة الخطأ E_OS_STATE ([SWS_Os_00501]). لم تحدد المواصفة أي رسائل DET أو DEM معينة لهذه الخدمة. وفيما يتعلق بسلوك التزامن، تم تصنيف الدالة على أنها قابلة لإعادة الدخول، وبالتالي يمكن تنفيذها بأمان في مسارات متوازية ([SWS_Os_00501]).
التفاعل والتشخيص
تفسير: من المرجح أن يتم الاستدعاء عادةً في نهاية مرحلة إعادة التشغيل الخاصة بالتطبيق، بمجرد اكتمال جميع الاستعدادات والسماح للتطبيقات الأخرى بالوصول إلى الموارد مرة أخرى. سؤال Q-f43a3f702d5d2428 (مفتوح) يمكن تقييم الحالات الديناميكية لنظام التشغيل وكائنات OS التابعة له وتصورها في إطار تشخيص النظام عبر ملفات توصيف ARTI القياسية وأدوات تصحيح الأخطاء المرتبطة بها ([SWS_Os_00829]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى حالة المواصفة R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة GetApplicationState [SWS_Os_00499] 📄 PDF
StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);
This service returns the current state of an OS - Application.
دالة GetNumberActivatedCores [SWS_Os_00672] 📄 PDF
uint32 GetNumberOfActivatedCores (void);
The function returns the number of cores activated by the Start Core function. This function might be a macro. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
دالة GetCore [SWS_Os_00674] 📄 PDF
CoreIdType GetCoreID (void);
The function returns a unique core identifier.
دالة StartCore [SWS_Os_00676] 📄 PDF
void StartCore (CoreIdType CoreID, StatusType* Status);
It is not supported to call this function after Start OS(). The function starts the core specified by the parameter Core ID. The OUT parameter allows the caller to check whether the operation was successful or no t. If a core is started by means of this function Start OS shall be called on the core.
تقوم الدالة المتزامنة StartCore ببدء تشغيل نواة المعالج [SWS_Os_00676] المحددة عبر المعامل Core ID. لا تمتلك الدالة قيمة إرجاع مباشرة، بل تمرر نتيجة التنفيذ عبر معامل OUT Status إلى المتصل [SWS_Os_00676]. إذا تم بدء تشغيل نواة بواسطة هذه الدالة، فيجب بعد ذلك استدعاء Start OS على النواة المعنية [SWS_Os_00676].
تنطبق قيود صارمة على سياق الاستدعاء والتزامن: تم تحديد StartCore على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Os_00676]. ولا يتم دعم الاستدعاء بعد بدء تشغيل نظام التشغيل عبر Start OS() [SWS_Os_00676]. تم تنفيذ الخدمة بشكل متزامن ويتم توفيرها عبر ملف الترويسة Os.h بمعرّف الخدمة 0x17 [SWS_Os_00676].
تتم معالجة الأخطاء عبر المعامل Status، والذي يمكن أن يأخذ القيم التالية اعتماداً على تكوين الحالة [SWS_Os_00676]:
- في الحالة القياسية، يشير
E_OKإلى تنفيذ خالٍ من الأخطاء [SWS_Os_00676]. - في الحالة الموسعة (extended status)، يؤكد
E_OKأيضاً على بدء التشغيل الناجح [SWS_Os_00676]. - يُبلغ
E_OS_IDأنCore IDالممررة غير صالحة [SWS_Os_00676]. - يشير
E_OS_ACCESSإلى استدعاء غير مسموح به بعد بدء تشغيل نظام التشغيل [SWS_Os_00676]. - يشير
E_OS_STATEإلى أن نواة المعالج المطلوبة مفعّلة بالفعل [SWS_Os_00676].
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي وتستند حصرياً إلى مواصفات نظام تشغيل AUTOSAR Classic من الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة StartNonCore [SWS_Os_00682] 📄 PDF
void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);
The function start s the core specified by the parameter Core ID. It is allowed to call this function after Start OS(). The OUT parameter allows the caller to check whether the operation was successful or not. It is not allowed to call Start OS on cores activated by Start No n Autosar Core. Otherwise the behaviour is unspecified.
الاستخدام وسياق الاستدعاء
تبدأ الدالة المتزامنة وغير القابلة لإعادة الدخول StartNonCore نواة المعالج المحددة عبر المعلمة CoreID [SWS_Os_00682]. ويجوز استدعاؤها بعد بدء تشغيل نظام التشغيل عبر StartOS() وتكون متاحة عبر ملف الترويسة Os.h [SWS_Os_00682]. وعبر معلمة الإخراج Status، يمكن للمستدعي التحقق مما إذا كانت عملية البدء ناجحة [SWS_Os_00682].
معالجة الأخطاء وقيم الحالة
لا تحتوي الدالة على قيمة إرجاع مباشرة، ولكنها تبلغ عن نتيجة التنفيذ عبر معلمة المؤشر Status [SWS_Os_00682]:
E_OK: تم تنفيذ العملية بنجاح ودون أخطاء [SWS_Os_00682].E_OS_ID: الـCoreIDالمحددة غير صالحة (في الحالة القياسية) [SWS_Os_00682].E_OS_STATE: نواة المعالج المحددة منشطة بالفعل (في الحالة القياسية) [SWS_Os_00682].
القيود وشروط الترتيب
بصفتها واجهة غير قابلة لإعادة الدخول، لا يجوز تنفيذ StartNonCore بالتزامن [SWS_Os_00682]. بالإضافة إلى ذلك، يسري شرط صارم بأنه لا يجوز بأي حال من الأحوال استدعاء StartOS على نوى المعالجات التي تم تنشيطها عبر هذه الدالة؛ وإلا فإن سلوك النظام يكون غير محدد [SWS_Os_00682].
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية بناءً على مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة GetSpinlock [SWS_Os_00686] 📄 PDF
StatusType GetSpinlock (SpinlockIdType SpinlockId);
Get Spinlock tries to occupy a spin - lock variable. If the function returns, either the lock is successfully taken or an error has occurred. The spinlock mechanism is an active polling mechanism. The function does not cause a de - scheduling.
تُستخدم دالة نظام التشغيل المتزامنة والقابلة لإعادة الدخول GetSpinlock ([SWS_Os_00686]) لحجز متغير spinlock عبر معامل التمرير SpinlockId (النوع SpinlockIdType). وأثناء التنفيذ، تستخدم الدالة آلية استقصاء نشط («busy waiting»)، دون إطلاق أي إلغاء جدولة للمهمة المستدعية ([SWS_Os_00686]).
لا تعود الدالة إلا بعد اكتساب القفل بنجاح أو حدوث خطأ. كقيمة إرجاع، تُرجع GetSpinlock القيمة StatusType ([SWS_Os_00686]):
E_OK: تم حجز القفل بنجاح ومن دون أخطاء (في الحالتين القياسية والموسعة).E_OS_ID: قيمةSpinlockIdالممررة غير صالحة (فقط في الحالة الموسعة).E_OS_INTERFERENCE_DEADLOCK: تحاول مهمة حجز الـ spinlock بينما هو محجوز بالفعل بواسطة مهمة على نفس الـ Core (فقط في الحالة الموسعة).E_OS_NESTING_DEADLOCK: تحاول مهمة طلب الـ spinlock بينما تحتفظ مهمة على نفس الـ Core بـ spinlock آخر بالفعل، مما قد يتسبب في حدوث قفل ميت (Deadlock) (فقط في الحالة الموسعة).E_OS_ACCESS: لا يمكن الوصول إلى الـ spinlock المحدد (فقط في الحالة الموسعة).
في إطار مراقبة النظام وتحليل الأخطاء، يوفر نظام التشغيل معلومات حالة ديناميكية حول كائنات OS، والتي يمكن تقييمها وفقاً لـ [SWS_Os_00829] عبر حاويات ARTI وORTI لأدوات تصحيح الأخطاء؛ ويفترض أنه يمكن عبر ذلك أيضاً تتبع حالات الانسداد عند أقفال spinlock. سؤال Q-bac194d4132f6e88 (مفتوح)
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة ReleaseSpinlock [SWS_Os_00695] 📄 PDF
StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);
Release Spinlock releases a spinlock variable that was occupied before. Before terminating a TASK all spinlock variables that have been occupied with Get Spinlock() shall be released. Before calling Wait EVENT all Spinlocks shall be released.
تحرر الدالة المتزامنة والقابلة لإعادة الدخول ReleaseSpinlock متغير spinlock تم حجزه مسبقاً ([SWS_Os_00695]). ويتم تحديد مثيل spinlock المراد تحريره عبر معامل التمرير SpinlockId من النوع SpinlockIdType ([SWS_Os_00695]).
شروط الترتيب والقيود
تنطبق متطلبات زمنية وهيكلية صارمة على الاستدعاء ([SWS_Os_00695]):
- قبل إنهاء المهمة، يجب تحرير جميع متغيرات spinlock التي تم حجزها مسبقاً بواسطة
GetSpinlock()([SWS_Os_00695]). - قبل استدعاء
WaitEvent، يجب تحرير كافة أقفال spinlock المحتجزة دون استثناء ([SWS_Os_00695]). - يجب أن يتم التحرير وفق ترتيب التداخل الصحيح؛ وتفشل أي محاولة تحرير في حال استمرار حجز أقفال spinlock أو موارد ذات مستوى أعلى ([SWS_Os_00695]).
قيم الإرجاع ومعالجة الأخطاء
في حالة النجاح، تُرجع الخدمة E_OK في كل من الحالة القياسية والحالة الموسعة ([SWS_Os_00695]). وفي الحالة الموسعة (Extended Status)، تم تحديد رموز خطأ خاصة ([SWS_Os_00695]):
E_OS_ID: قيمةSpinlockIdالمُمررة غير صالحة ([SWS_Os_00695]).E_OS_STATE: الـ spinlock غير محجوز بواسطة المهمة المستدعية ([SWS_Os_00695]).E_OS_ACCESS: لا يمكن الوصول إلى الـ spinlock ([SWS_Os_00695]).E_OS_NOFUNC: محاولة تحرير الـ spinlock بينما لا يزال يتعين تحرير spinlock آخر أو مورد مسبقاً ([SWS_Os_00695]).
تتوفر الدالة عبر ملف الترويسة Os.h ([SWS_Os_00695]). تدعم ملفات وصف ARTI حاويات ORTI لتقييم الحالة والأداء الديناميكي لكائنات نظام التشغيل ([SWS_Os_00829]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي وتم تنقيحه بواسطة autodocs.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة TryToGetSpinlock [SWS_Os_00703] 📄 PDF
StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);
Try To Get Spinlock has the same functionality as Get Spinlock with the difference that if the spinlock is already occupied by a TASK on a d ifferent core the function sets the OUT parameter "Success" and returns with E_ OK.
تُستخدم دالة نظام التشغيل المتزامنة والقابلة لإعادة الدخول TryToGetSpinlock لحجز مثيل spinlock بطريقة غير حاصرة عبر ملف الترويسة Os.h [SWS_Os_00703]. وهي تؤدي نفس الوظيفة الأساسية مثل GetSpinlock، ولكنها لا تنتظر بشكل نشط في حال كان الـ spinlock المطلوب محجوزاً بالفعل بواسطة TASK على Core آخر [SWS_Os_00703].
المعلمات وقيم الإرجاع
SpinlockId(إدخال): يشير إلى مثيل spinlock المحدد المراد قفله [SWS_Os_00703].Success(إخراج): يوضح عبر النوعTryToGetSpinlockType*ما إذا كان قد أمكن حجز القفل أم لا [SWS_Os_00703]. إذا كان القفل مشغولاً على Core آخر، تقوم الدالة بضبط هذا المعامل وفقاً لذلك وتعود معE_OK[SWS_Os_00703].- قيمة الإرجاع: تُرجع
E_OKفي الحالتين القياسية والموسعة إذا لم يوجد خطأ [SWS_Os_00703].
معالجة الأخطاء والشروط الحدية
في الحالة الموسعة، يتحقق نظام التشغيل من الاستدعاءات غير الصالحة بالإضافة إلى سيناريوهات القفل الميت (Deadlock) [SWS_Os_00703]:
E_OS_ID:SpinlockIdالممرر غير صالح [SWS_Os_00703].E_OS_ACCESS: لا يمكن الوصول إلى الـ spinlock [SWS_Os_00703].E_OS_INTERFERENCE_DEADLOCK: تحاول TASK حجز القفل بينما القفل نفسه محتجز بالفعل بواسطة TASK على نفس الـ Core [SWS_Os_00703].E_OS_NESTING_DEADLOCK: تحاول TASK حجز spinlock بينما تحتفظ بالفعل بـ spinlock آخر، مما قد يؤدي إلى حدوث قفل ميت (Deadlock) [SWS_Os_00703].
تم إنشاء ملاحظة الاستخدام هذه تلقائياً بواسطة نظام ذكاء اصطناعي بناءً على مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة ShutdownAllCores [SWS_Os_00713] 📄 PDF
void ShutdownAllCores (StatusType Error);
After this service the OS on all AUTOSAR cores is shut down. Allowed at TASK level and ISR level and also internally by the OS. The function will never return. The function will force other cores into a shutdown.
تُستخدم دالة النظام المتزامنة ShutdownAllCores ذات معرّف الخدمة (Service-ID) 0x1c لإيقاف تشغيل نظام تشغيل AUTOSAR بشكل مُتحكَّم فيه وكامل عبر جميع أنوية المعالج المتوفرة ([SWS_Os_00713]). وبمجرد استدعاء الخدمة، تفرض الدالة إيقاف التشغيل (Shutdown) على كافة الأنوية الأخرى (Cores)، بحيث يتم إيقاف تشغيل نظام التشغيل على جميع أنوية AUTOSAR ([SWS_Os_00713]).
سياق الاستدعاء والتزامن
الدالة مصرَّح عنها في ملف الترويسة Os.h ومحددة بأنها قابلة لإعادة الدخول (reentrant) ([SWS_Os_00713]). ويُعد استدعاء ShutdownAllCores مسموحًا به دون قيود سواءً على مستوى المهمة (TASK level) أو على مستوى المقاطعة (ISR level) ([SWS_Os_00713]). بالإضافة إلى ذلك، يمكن تنفيذ الخدمة أيضًا داخليًا بواسطة AUTOSAR OS مباشرةً ([SWS_Os_00713]).
المعلمات وتدفق التحكم
تتوقع الواجهة كمعلمة دخل وحيدة Error من النوع StatusType ([SWS_Os_00713]). ويجب بالضرورة تمرير كود خطأ صالح يدعمه نظام تشغيل AUTOSAR لهذه المعلمة ([SWS_Os_00713]). ولا توجد معلمات خرج أو دخل/خرج ([SWS_Os_00713]). وبما أن الدالة لا تعود أبدًا إلى المستدعي بعد إطلاق إيقاف التشغيل على مستوى النظام بأكمله، فإنها لا تمتلك قيمة إرجاع (void) ([SWS_Os_00713]).
تم توليد ملاحظة الاستخدام هذه تلقائيًا على أساس مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة ControlIdle [SWS_Os_00769] 📄 PDF
StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);
This API allows the caller to select the idle mode action which is performed during idle time of t he OS (e.g. if no Task/ ISR is active). It can be used to implement energy savings. The real idle modes are hardware dependent and not standardized. The default idle mode on each core is IDLE_ NO_ HALT.
تتيح الدالة المتزامنة ControlIdle للمستدعي تحديد الإجراء الذي يتم تنفيذه خلال وقت خمول نظام التشغيل (عندما لا تكون هناك مهمة أو ISR نشطة) [SWS_Os_00769]. يخدم هذا في المقام الأول تنفيذ تدابير توفير الطاقة. وتعتمد أوضاع الخمول الفعلية على العتاد وليست موحدة قياسياً؛ والوضع الافتراضي في كل نواة معالج هو IDLE_NO_HALT [SWS_Os_00769]. يتم توفير الواجهة عبر ملف الترويسة Os.h [SWS_Os_00769].
تتوقع الدالة معلمتي إدخال:
CoreID(من النوعCoreIdType): يحدد نواة المعالج المراد تعيين وضع خمولها [SWS_Os_00769].IdleMode(من النوعIdleModeType): يحدد الوضع الذي سيتم تنفيذه في وقت الخمول [SWS_Os_00769].
إذا تم تمرير معاملات صالحة ولم يحدث أي خطأ، تُرجع الدالة E_OK [SWS_Os_00769]، [SWS_Os_00770]. وإذا كان CoreID أو IdleMode المحدد غير صالح – على سبيل المثال لأن النواة المشار إليها غير موجودة أو الوضع غير معروف –، يُرجع الاستدعاء في حالة EXTENDED رمز الخطأ E_OS_ID [SWS_Os_00769]، [SWS_Os_00771]. وفي أنظمة أحادية النواة (Single-Core)، يتم تخطي فحص المعامل CoreID [SWS_Os_00771].
فيما يتعلق بالتزامن، تم تحديد الدالة على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Os_00769]. تفسير: يجب على المستدعين بالتالي التأكد من أن استدعاءات ControlIdle لا تحدث بشكل متزامن في نفس الوقت أو دون تنسيق من سياقات تنفيذ مختلفة. سؤال Q-7f239cb54752e826 (مفتوح)
تم توليد إشعار الاستخدام هذا بواسطة ذكاء اصطناعي استنادًا إلى مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة ReadPeripheral [SWS_Os_91013] 📄 PDF
StatusType ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);
This service returns the content of a given memory location (
).الاستخدام
تُستخدم الدالة ReadPeripheral (المدرجة في التصريح باسم ReadPeripheral8) للقراءة المتزامنة لعنوان ذاكرة داخل منطقة ملحقات عتاد محددة [SWS_Os_91013]. الواجهة متاحة عبر ملف الرأس Os.h [SWS_Os_91013]. تتوقع الخدمة كمعاملات دخل مرجع المنطقة Area من النوع AreaIdType بالإضافة إلى العنوان المستهدف Address كمؤشر إلى const uint8 [SWS_Os_91013]. ويتم توفير المحتوى المقروء لموقع الذاكرة عبر معامل الخرج ReadValue [SWS_Os_91013].
معالجة الأخطاء
تُرجع الخدمة رمز حالة من النوع StatusType، حيث تشير E_OK إلى التنفيذ الخالي من الأخطاء [SWS_Os_91013]. وعند تفعيل فحص الحالة الموسع (EXTENDED status)، يتم التمييز بين الاستدعاءات الخاطئة استنادًا إلى قيم أخطاء محددة [SWS_Os_91013]:
E_OS_ID: معرّف المنطقة الممررAreaيقع خارج النطاق الصالح [SWS_Os_91013].E_OS_VALUE: عنوان الذاكرة المحددAddressلا ينتمي إلى منطقة الملحقات المحددة [SWS_Os_91013].E_OS_CALLEVEL: تم الاستدعاء من سياق غير مسموح به [SWS_Os_91013].E_OS_ACCESS: يُرجَّح ألا تمتلك المهمة أو ISR المستدعية الإذن اللازم للوصول إلى المنطقة (تفسير) [SWS_Os_91013]. سؤال Q-19e2c22110352ebb (مفتوح)
التزامن والقيود
تمتلك خدمة API معرّف الخدمة 0x28، وتعمل بشكل متزامن ومصممة لتكون قابلة لإعادة الدخول [SWS_Os_91013]. لا يُسمح بالاستدعاءات إلا من سياقات Task أو ISR مسموح بها؛ ويتم رفض الاستدعاءات غير المسموح بها في الحالة الموسعة بـ E_OS_CALLEVEL [SWS_Os_91013].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة ReadPeripheral16 [SWS_Os_91015] 📄 PDF
StatusType ReadPeripheral16 (AreaIdType Area, const uint16* Address, uint16* ReadValue);
This service returns the content of a given memory location (
).تُستخدم دالة نظام التشغيل المتزامنة والقابلة لإعادة الدخول ReadPeripheral16 لقراءة قيمة 16 بت لعنوان ذاكرة محدد داخل منطقة ملحقات معينة [SWS_Os_91015]. خدمة النظام معرفة تحت معرّف الخدمة 0x29 ومتاحة عبر ملف الرأس Os.h [SWS_Os_91015].
الاستخدام والمعلمات
يتم تمرير المرجع إلى منطقة ملحقات العتاد (Area من النوع AreaIdType) بالإضافة إلى العنوان المستهدف في الذاكرة (Address من النوع const uint16*) كمعاملات دخل للخدمة [SWS_Os_91015]. وعبر معامل الخرج Read Value من نوع المؤشر uint16*، يتم توفير محتوى 16 بت المحدد عند عنوان الذاكرة [SWS_Os_91015]. وعند التنفيذ الخالي من الأخطاء، تُرجع الدالة قيمة الإرجاع E_OK من النوع StatusType [SWS_Os_91015].
معالجة الأخطاء وقيود الوصول
في الحالة الموسعة (EXTENDED status)، يتحقق نظام التشغيل من صلاحية الاستدعاء ويُبلغ عن الأخطاء عبر رموز حالة محددة [SWS_Os_91015]:
E_OS_ID: معرّف المنطقة الممررAreaيقع خارج النطاق الصالح [SWS_Os_91015].E_OS_VALUE: عنوان الذاكرة المحددAddressلا ينتمي إلى منطقة الملحقات المحددةArea[SWS_Os_91015].E_OS_CALLEVEL: تم إجراء الاستدعاء في سياق غير مسموح به لدالة API [SWS_Os_91015].E_OS_ACCESS: المهمة أو روتين خدمة المقاطعة (ISR) المستدعي غير مصرح له بالوصول إلى المنطقة المحددة [SWS_Os_91015].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا وتستند حصريًا إلى متطلبات المواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة ReadPeripheral32 [SWS_Os_91014] 📄 PDF
StatusType ReadPeripheral32 (AreaIdType Area, const uint32* Address, uint32* ReadValue);
This service returns the content of a given memory location (
).الاستخدام
تقرأ الدالة المتزامنة والقابلة لإعادة الدخول ReadPeripheral32 محتوى عنوان ذاكرة محدد ([SWS_Os_91014]). تُمرر الجهة المستدعية المرجع إلى منطقة ملحقات العتاد عبر المعامل Area وعنوان الذاكرة المطلوب عبر Address ([SWS_Os_91014]). يتم توفير قيمة 32 بت المقروءة عند هذا العنوان بشكل متزامن عبر معامل الخرج ReadValue ([SWS_Os_91014]). يتم توفير الواجهة عبر الرأس Os.h ([SWS_Os_91014]).
معالجة الأخطاء
تُرجع الخدمة قيمة حالة من النوع StatusType. وعند التنفيذ الخالي من الأخطاء تُرجع E_OK ([SWS_Os_91014]). وإذا تم تكوين الحالة الموسعة (EXTENDED status)، يتم إرجاع رموز الأخطاء التالية ([SWS_Os_91014]):
E_OS_ID: معرّف المنطقة الممررAreaيقع خارج النطاق المسموح به ([SWS_Os_91014]).E_OS_VALUE: العنوان المحددAddressلا ينتمي إلى المنطقة المحددةArea([SWS_Os_91014]).E_OS_CALLEVEL: تم استدعاء الدالة في سياق استدعاء غير مسموح به ([SWS_Os_91014]).E_OS_ACCESS: لا تمتلك المهمة أو ISR المستدعية إذن الوصول المطلوب؛ ووفقًا للتفسير، يُرجَّح أن يتعلق هذا بمنطقة الملحقات ([SWS_Os_91014]). سؤال Q-e5893b29acc5133a (مفتوح)
التزامن والقيود
تم تحديد ReadPeripheral32 على أنها قابلة لإعادة الدخول ويمكن استدعاؤها بالتوازي من عدة تدفقات تحكم ([SWS_Os_91014]). وبما أن الخدمة تعمل بشكل متزامن، فإن الاستدعاء لا يعود إلا بعد انتهاء عملية القراءة ([SWS_Os_91014]). يجب على الجهات المستدعية تمرير مؤشرات ذاكرة صالحة والتأكد من إجراء الاستدعاء من سياق مسموح به لـ OS-API ([SWS_Os_91014]).
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى مواصفات الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة WritePeripheral [SWS_Os_91010] 📄 PDF
StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);
This service writes the
الاستخدام
الدالة WritePeripheral (يُشار إليها أيضًا في المواصفة باسم Write Peripheral8) هي خدمة متزامنة وقابلة لإعادة الدخول لنظام التشغيل، لكتابة قيمة إلى عنوان ذاكرة محدد لمنطقة ملحقات [SWS_Os_91010]. يتم توفير التصريح عبر ملف الرأس Os.h [SWS_Os_91010]. يتوقع الاستدعاء كمعاملات المرجع إلى منطقة ملحقات العتاد (Area من النوع AreaIdType)، وعنوان الذاكرة (Address من النوع uint8*)، بالإضافة إلى القيمة المراد كتابتها (Write Value من النوع uint8) [SWS_Os_91010]. تفسير: على الرغم من إدراج Write Value في نص المواصفة جدوليًا ضمن معاملات الخرج، فإنه بالاستناد إلى تمرير القيمة في التوقيع والوصف يُرجَّح أن يكون قيمة الدخل المراد كتابتها. سؤال Q-619c69ba7a85ed92 (مفتوح)
معالجة الأخطاء
تُرجع الدالة حالة من النوع StatusType [SWS_Os_91010]:
E_OK: تم تنفيذ عملية الكتابة بدون أخطاء [SWS_Os_91010].E_OS_ID: معرّف المنطقة الممرر يقع خارج النطاق الصالح (في الحالة الموسعة) [SWS_Os_91010].E_OS_VALUE: العنوان المستهدف لا ينتمي إلى المنطقة المحددة (في الحالة الموسعة) [SWS_Os_91010].E_OS_CALLEVEL: سياق استدعاء غير مسموح به لدالة API (في الحالة الموسعة) [SWS_Os_91010].E_OS_ACCESS: لا تملك المهمة أو ISR المستدعية إذن وصول للمنطقة [SWS_Os_91010].
التزامن والقيود
تتم معالجة الاستدعاء بشكل متزامن وهو قابل لإعادة الدخول [SWS_Os_91010]. يجب على الجهات المستدعية التأكد من أن المهمة أو ISR المنفذة تعمل من سياق صالح وتملك حقوق الوصول اللازمة لمنطقة الملحقات المعنونة [SWS_Os_91010].
تم إنشاء هذا النص تلقائيًا. تستند جميع البيانات إلى مواصفات AUTOSAR المرجعية.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة WritePeripheral16 [SWS_Os_91012] 📄 PDF
StatusType WritePeripheral16 (AreaIdType Area, uint16* Address, uint16 WriteValue);
This service writes the
تُستخدم دالة نظام التشغيل المتزامنة والقابلة لإعادة الدخول WritePeripheral16 ([SWS_Os_91012]) لكتابة قيمة 16 بت إلى عنوان ذاكرة لمنطقة ملحقات. يتم توفير الخدمة عبر الرأس Os.h ولها معرّف الخدمة 0x2c.
الاستخدام والمعلمات
عند استدعاء WritePeripheral16، تُمرر الجهة المستدعية معرّف منطقة العتاد المستهدفة (Area من النوع AreaIdType)، والعنوان المستهدف (Address من النوع uint16*)، بالإضافة إلى القيمة المراد كتابتها (Write Value من النوع uint16، والتي يُرجَّح أنها تعمل كتمرير قيمة على الرغم من تحديدها جدوليًا كمعامل Out في التوقيع) وفقًا لـ [SWS_Os_91012]. سؤال Q-2edc50ae2e7fd0b0 (مفتوح) يتم تنفيذ الخدمة بشكل متزامن وتُرجع قيمة حالة من النوع StatusType.
معالجة الأخطاء
في حالة النجاح، تُرجع الدالة E_OK. وتحدد رموز الأخطاء التالية تحت الحالة EXTENDED ([SWS_Os_91012]):
E_OS_ID: معرّف المنطقة الممرر (Area) يقع خارج النطاق الصالح.E_OS_VALUE: العنوان المستهدف (Address) لا ينتمي إلى منطقة الملحقات المحددة.E_OS_CALLEVEL: تم استدعاء الدالة من سياق غير مسموح به.E_OS_ACCESS: يُرجَّح أن المهمة أو ISR المستدعية لا تملك إذنًا للوصول إلى المنطقة المحددة. سؤال (مفتوح)
القيود والتفاعل
الدالة قابلة لإعادة الدخول ([SWS_Os_91012])، ولكنها تتطلب الالتزام بسياق الاستدعاء المسموح به (Task أو ISR) لتجنب حالات الخطأ مثل E_OS_CALLEVEL. ولمراقبة كائنات نظام التشغيل وتحليلها، ينص AUTOSAR على توفير ملفات وصف ARTI ([SWS_Os_00829]).
تم إنشاء ملاحظة الاستخدام هذه آليًا وتستند حصريًا إلى بيانات المواصفة الخاصة بإصدار AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة WritePeripheral32 [SWS_Os_91011] 📄 PDF
StatusType WritePeripheral32 (AreaIdType Area, uint32* Address, uint32 WriteValue);
This service writes the
تُستخدم الدالة المتزامنة والقابلة لإعادة الدخول WritePeripheral32 من الوحدة Os لكتابة قيمة 32 بت إلى عنوان ذاكرة محدد لمنطقة ملحقات [SWS_Os_91011]. الخدمة متاحة عبر الرأس Os.h ولها معرّف الخدمة 0x2d [SWS_Os_91011].
المعلمات والاستدعاء
لتنفيذ عملية الوصول للكتابة، تتطلب الدالة ثلاثة معاملات ممررة [SWS_Os_91011]:
Area(AreaIdType): مرجع إلى منطقة ملحقات العتاد المستهدفة [SWS_Os_91011].Address(uint32*): عنوان الذاكرة المراد كتابة القيمة إليه [SWS_Os_91011].Write Value(uint32): قيمة 32 بت المحددة المنقولة إلى العنوان المستهدف [SWS_Os_91011].
قيم الإرجاع ومعالجة الأخطاء
يُرجع الاستدعاء قيمة حالة من النوع StatusType [SWS_Os_91011]. في حالة النجاح يتم الإبلاغ عن E_OK [SWS_Os_91011]. وعند تفعيل حالة EXTENDED، تشير E_OS_ID إلى معرّف منطقة غير صالح، وE_OS_VALUE إلى عنوان لا ينتمي إلى المنطقة، وE_OS_CALLEVEL إلى سياق استدعاء غير مسموح به [SWS_Os_91011]. وإذا لم تكن المهمة أو ISR المستدعية تملك إذن وصول للمنطقة، يتم إرجاع E_OS_ACCESS [SWS_Os_91011].
التزامن
نظرًا لأن WritePeripheral32 قابلة لإعادة الدخول، يمكن استخدام الخدمة في سياقات تنفيذ متزامنة، بشرط أن تمتلك الجهة المستدعية المعنية إذن الوصول المطلوب في وقت التشغيل [SWS_Os_91011].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا استنادًا إلى مواصفة AUTOSAR Classic R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة ModifyPeripheral [SWS_Os_91016] 📄 PDF
StatusType ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);
This service modifies a given memory location (
الاستخدام والدلالات
تُعدل دالة نظام التشغيل المتزامنة والقابلة لإعادة الدخول ModifyPeripheral8 ([SWS_Os_91016]) بايتًا عند عنوان ذاكرة محدد Address. ويتم في ذلك تحديث محتوى الذاكرة الحالي على مستوى البتات عبر القناع Clearmask بواسطة عملية AND المنطقية وعبر القناع Setmask بواسطة عملية OR المنطقية وفقًا للصيغة *Address = ((*Address & Clearmask) | Setmask) ([SWS_Os_91016]). تتوقع الدالة كمعاملات دخل مرجع منطقة الملحقات Area من النوع AreaIdType، والعنوان المستهدف Address (النوع uint8*)، بالإضافة إلى قيمتي القناعين من النوع uint8. يتم توفير الدالة عبر ملف الرأس Os.h وتمتلك معرّف الخدمة 0x2e ([SWS_Os_91016]).
معالجة الأخطاء وقيم الإرجاع
تشير قيمة الإرجاع من النوع StatusType إلى نجاح العملية بـ E_OK ([SWS_Os_91016]). وعند تفعيل الحالة الموسعة، يمكن أن تحدث حالات خطأ محددة:
E_OS_ID: معرّف المنطقة الممررAreaيقع خارج النطاق المسموح به ([SWS_Os_91016]).E_OS_VALUE: العنوان المستهدفAddressلا ينتمي إلى المنطقة المحددةArea([SWS_Os_91016]).E_OS_CALLEVEL: تم استدعاء الخدمة في سياق استدعاء غير مسموح به ([SWS_Os_91016]).E_OS_ACCESS: لا تملك المهمة أو ISR المستدعية إذن وصول للمنطقة المستهدفة ([SWS_Os_91016]).
التزامن وشروط الاستدعاء
نظرًا لأن ModifyPeripheral8 محددة على أنها قابلة لإعادة الدخول، يمكن إجراء الاستدعاء بأمان في مسارات تنفيذ متوازية ([SWS_Os_91016]). يجب على الجهات المستدعية التأكد من صلاحية كل من السياق وحقوق الوصول لـ Area وAddress لتجنب حالات الخطأ ([SWS_Os_91016]).
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة ModifyPeripheral16 [SWS_Os_91018] 📄 PDF
StatusType ModifyPeripheral16 (AreaIdType Area, uint16* Address, uint16 Clearmask, uint16 Setmask);
This service modifies a given memory location (
تُعدل الدالة المتزامنة والقابلة لإعادة الدخول ModifyPeripheral16 موقع ذاكرة 16 بت داخل منطقة ملحقات محددة وفقًا للصيغة الحسابية *Address = ((*Address & Clearmask) | Setmask) [SWS_Os_91018]. ويتم تمرير مرجع منطقة الملحقات Area (النوع AreaIdType)، والعنوان المستهدف Address (النوع uint16*)، بالإضافة إلى أقنعة البتات Clearmask لعملية AND على مستوى البتات وSetmask لعملية OR على مستوى البتات كمعاملات [SWS_Os_91018]. التصريح متاح عبر الرأس Os.h [SWS_Os_91018].
في حالة النجاح العادية، تُعيد الخدمة قيمة الإرجاع E_OK [SWS_Os_91018]. وعند تفعيل فحص الحالة الموسع (EXTENDED status)، يتم التعرف على الاستدعاءات الخاطئة ورفضها استنادًا إلى رموز أخطاء محددة [SWS_Os_91018]:
E_OS_ID: معرّف المنطقة الممررAreaيقع خارج نطاق القيم الصالح [SWS_Os_91018].E_OS_VALUE: عنوان الذاكرة الممررAddressلا ينتمي إلى المنطقة المحددةArea[SWS_Os_91018].E_OS_CALLEVEL: تم استدعاء الخدمة من سياق غير مسموح به [SWS_Os_91018].E_OS_ACCESS: لا تملك الـ Task المستدعية أو الـ ISR المستدعي إذن وصول للمنطقة المحددة [SWS_Os_91018].
يجب على الجهات المستدعية التأكد قبل التنفيذ من توفر كل من السياق والأذونات للمنطقة المشار إليها، وذلك لتجنب انتهاكات الوصول [SWS_Os_91018].
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة ModifyPeripheral32 [SWS_Os_91017] 📄 PDF
StatusType ModifyPeripheral32 (AreaIdType Area, uint32* Address, uint32 Clearmask, uint32 Setmask);
This service modifies a given memory location (
تُستخدم دالة نظام التشغيل المتزامنة والقابلة لإعادة الدخول ModifyPeripheral32 وفقًا لـ [SWS_Os_91017] للمعالجة المستهدفة على مستوى البتات لعنوان ذاكرة 32 بت. توفر الدالة عبر الواجهة Os.h، وتطبق على العنوان المستهدف Address الصيغة الحسابية الثابتة *Address = ((*Address & Clearmask) | Setmask). وفي هذه العملية، تتم أولاً إعادة تعيين البتات عبر قناع البتات Clearmask بواسطة عملية AND المنطقية، ثم يتم تعيينها بعد ذلك عبر Setmask بواسطة عملية OR المنطقية.
تتوقع الخدمة كمعاملات دخل مرجع منطقة الملحقات Area، ومؤشر العنوان Address، بالإضافة إلى قناعي 32 بت [SWS_Os_91017]. وعند التنفيذ الخالي من الأخطاء يتم إرجاع رمز الحالة E_OK. وفي الحالة الموسعة (EXTENDED status)، تُجري الدالة فحوصات معقولية وتُبلغ عن رموز الأخطاء التالية:
E_OS_ID: المعاملAreaالممرر يقع خارج نطاق القيم المسموح به [SWS_Os_91017].E_OS_VALUE: العنوان المستهدف لا ينتمي إلى منطقة الملحقات المحددة [SWS_Os_91017].E_OS_CALLEVEL: تم استدعاء الدالة من سياق غير مسموح به [SWS_Os_91017].E_OS_ACCESS: لا تملك المهمة أو ISR المستدعية إذنًا للوصول [SWS_Os_91017] (تفسير: عدم وجود إذن وصول لمنطقة الملحقات). سؤال Q-b4d959765dc59c72 (مفتوح)
تُعد الاستدعاءات المتزامنة مسموحًا بها بفضل قابلية إعادة الدخول، طالما تم الحفاظ على سياق الاستدعاء [SWS_Os_91017]. وفي النظام الكلي، يختلف تعديل السجلات المباشر هذا عن الصيغ الحسابية لتحديد البيانات ديناميكيًا، والتي يتم تقييمها مثلًا في إطار معلومات تصحيح أخطاء ARTI وفقًا لـ [SWS_Os_00829].
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفة AUTOSAR CP R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة EnableInterruptSource [SWS_Os_91020] 📄 PDF
StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);
Service EnableInterruptSource.
تفعّل دالة النظام المتزامنة والقابلة لإعادة الدخول EnableInterruptSource مصدر مقاطعة عن طريق تعديل سجلات وحدة التحكم في المقاطعات [SWS_Os_91020]، [SWS_Os_00811]. ويوفر نظام التشغيل هذه الخدمة لكل مصدر مقاطعة مكوّن من الفئة 2 [SWS_Os_00808].
المعلمات والاستدعاء
يتم تمرير معرّف الـ ISR من الفئة 2 عبر المعامل ISRID [SWS_Os_91020]. ويحدد المعامل المنطقي ClearPending ما إذا كان يجب مسح راية المقاطعة المعلقة عند التفعيل (TRUE) أو تركها دون تغيير (FALSE) [SWS_Os_91020]، [SWS_Os_00811]. تتوفر الدالة عبر ملف الترويسة Os.h [SWS_Os_91020].
معالجة الأخطاء وقيم الإرجاع
إذا لم يتم اكتشاف أي خطأ، يُرجع الاستدعاء E_OK [SWS_Os_91020]، [SWS_Os_00810]. وإذا اكتشف نظام التشغيل خطأً، فإنه يُرجع رمز الحالة المقابل من النوع StatusType ويستدعي ErrorHook() [SWS_Os_00810]. تم تحديد حالات الخطأ التالية:
E_OS_ID: المعاملISRIDليس معرفًا صالحًا لـ ISR من الفئة 2 (في الحالةEXTENDED) [SWS_Os_91020].E_OS_CALLEVEL: استُدعيت الدالة من سياق استدعاء غير مسموح به (في الحالةEXTENDED) [SWS_Os_91020].E_OS_ACCESS: التطبيق المستدعي ليس مالكًا لـISRIDالمحددة في إطار Service Protection [SWS_Os_91020].
تفاعل
تشكل الدالة جنبًا إلى جنب مع DisableInterruptSource وClearPendingInterrupt الثلاثي الخاص بـ API للتحكم الموجه في مصادر مقاطعة الفئة 2 الفردية (OsIsrCategory == CATEGORY_2) في نظام التشغيل [SWS_Os_00808]، [SWS_Os_00810].
أُنشئ هذا النص تلقائيًا استنادًا إلى مواصفات الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة DisableInterruptSource [SWS_Os_91019] 📄 PDF
StatusType DisableInterruptSource (ISRType ISRID);
Disables the interrupt source by modifying the interrupt controller registers.
الاستخدام
تعطل الدالة المتزامنة والقابلة لإعادة الدخول DisableInterruptSource مصدر مقاطعة محدد مباشرة عبر سجلات وحدة التحكم في المقاطعات [SWS_Os_91019]، [SWS_Os_00812]. وهي متوفرة عبر ملف الترويسة Os.h ويتم توفيرها لكل مصدر مقاطعة من الفئة 2 (OsIsrCategory == CATEGORY_2) [SWS_Os_91019]، [SWS_Os_00808]. ويتم تمرير معرّف الـ ISR المعنية (ISRID) كمعامل. وعند التنفيذ بنجاح، تُرجع الخدمة E_OK [SWS_Os_91019]، [SWS_Os_00810].
معالجة الأخطاء
إذا اكتشف نظام التشغيل خطأ أثناء التنفيذ، يتم إرجاع StatusType المقابل واستدعاء ErrorHook() [SWS_Os_00810]. رموز الخطأ المحتملة هي:
E_OS_ID: قيمةISRIDالممررة ليست معرّفاً صالحاً لـ ISR من الفئة 2 (في حالة EXTENDED) [SWS_Os_91019].E_OS_CALLEVEL: سياق استدعاء غير مسموح به لدالة الـ API (في حالة EXTENDED) [SWS_Os_91019].E_OS_ACCESS: الـ OS-Application المستدعية ليست مالكة للـ ISR المحددة (حماية الخدمة - Service Protection) [SWS_Os_91019].E_OS_NOFUNC: مصدر المقاطعة المطلوب معطل بالفعل (في حالة EXTENDED مع الاستدعاءات المتداخلة) [SWS_Os_00809].
التفاعل والشروط الحدية
تشكل الدالة جنباً إلى جنب مع EnableInterruptSource وClearPendingInterrupt الثلاثي الخاص بـ API للتحكم في مصادر المقاطعات من الفئة 2 [SWS_Os_00808]. ويتم تأمين الاستدعاءات المتزامنة أو المتكررة في الحالة الموسعة من خلال إرجاع E_OS_NOFUNC، مما يبقي عمليات التعطيل الزائدة قابلة للتحكم [SWS_Os_00809]. بالإضافة إلى ذلك، يجب أن يمتلك المستدعون أذونات الوصول المناسبة لتفادي أخطاء وقت التشغيل الناتجة عن حماية الخدمة (Service Protection) [SWS_Os_91019].
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا بناءً على مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة ClearPendingInterrupt [SWS_Os_91021] 📄 PDF
StatusType ClearPendingInterrupt (ISRType ISRID);
Service ClearPendingInterrupt.
الاستخدام وسياق الاستدعاء
تُستخدم الدالة ClearPendingInterrupt لإعادة تعيين مقاطعة معلقة لمصادر الفئة 2 [SWS_Os_00808]. وهي تستقبل المعرف ISRID لـ ISR من الفئة 2 كمعامل دخل وحيد، وتعدل مباشرة السجلات المرتبطة بها في وحدة التحكم في المقاطعات [SWS_Os_91021]، [SWS_Os_00813]. وتتم معالجة الاستدعاء بشكل متزامن وتكون متاحة عبر ملف الرأس Os.h [SWS_Os_91021].
معالجة الأخطاء وقيم الإرجاع
في حالة عدم وجود أخطاء، يتم إرجاع رمز الحالة E_OK [SWS_Os_91021]. وإذا اكتشف نظام التشغيل خطأً أثناء التنفيذ، فإن الخدمة تُرجع رمز الخطأ المقابل من النوع StatusType وتستدعي إلزاميًا ErrorHook() [SWS_Os_00810]. تم تحديد حالات الخطأ التالية للواجهة [SWS_Os_91021]:
E_OS_ID: المعامل المُمررISRIDليس معرفًا صالحًا لـ ISR من الفئة 2 (يتم إرجاعه في الحالةEXTENDED) [SWS_Os_91021].E_OS_CALLEVEL: استُدعيت الدالة من سياق استدعاء غير مسموح به (يتم إرجاعه في الحالةEXTENDED) [SWS_Os_91021].E_OS_ACCESS: التطبيق المستدعي غير مصرح له كمالك لـ ISR المُمررة في إطار Service Protection [SWS_Os_91021].
التزامن والتفاعل في نظام التشغيل
تم تعريف الواجهة على أنها قابلة لإعادة الدخول (reentrant)، وبالتالي يمكن استدعاؤها بشكل متزامن بأمان [SWS_Os_91021]. ويوفر نظام التشغيل ClearPendingInterrupt لكل مصدر مقاطعة من الفئة 2 (OsIsrCategory == CATEGORY_2) كجزء ثابت من واجهات API للتحكم، والتي تشمل أيضًا DisableInterruptSource وEnableInterruptSource [SWS_Os_00808].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على مواصفات AUTOSAR.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
دالة ActivateTaskAsyn [SWS_Os_91022] 📄 PDF
void ActivateTaskAsyn (TaskType id);
Asynchronous version of the Activate Task() function. Intended to be used for cross core task activation. Possible errors are not returned to the caller, but may be reported via error hooks.
تمثل الدالة ActivateTaskAsyn (معرّف الخدمة 0x33) المتغير غير المتزامن لتنشيط المهام، وتُتاح عبر ملف الترويسة Os.h ([SWS_Os_91022]). وهي مخصصة بشكل أساسي لتنشيط المهام عبر الأنوية في الأنظمة متعددة الأنوية ([SWS_Os_91022]).
كمعلمة دخل وحيدة، يتم تمرير id من النوع TaskType، والتي تحدد المهمة (TASK) المراد تنشيطها ([SWS_Os_91022]). ولا تمتلك الواجهة أية قيمة إرجاع (void) ولا تحدد معلمات دخل/خرج أو معلمات خرج بحتة ([SWS_Os_91022]).
لا يتم إبلاغ المستدعي بالأخطاء المحتملة عند التنشيط ([SWS_Os_91022]، [SWS_Os_00816]). وبدلاً من ذلك، يتم الإبلاغ عن الأخطاء التي تحدث حصرًا عبر خطاف الخطأ العالمي (Error-Hook)، إذا كان قد تم تكوين مثل هذا الخطاف ([SWS_Os_00816]).
فيما يتعلق بالتزامن، فإن الدالة قابلة لإعادة الدخول (reentrant) وتعمل بشكل غير متزامن تمامًا ([SWS_Os_91022])، وبذلك لا يحجب سياق الاستدعاء أثناء التنفيذ. ويلتزم نظام التشغيل بتوفير هذه الواجهة وفقًا لـ [SWS_Os_00816].
تم إنشاء ملاحظة الاستخدام هذه بواسطة ذكاء اصطناعي استنادًا إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة SetEventAsyn [SWS_Os_91023] 📄 PDF
void SetEventAsyn (TaskType id, EventMaskType m);
Asynchronous version of the Set Event() function. Intended to be used for cross core event setting. Possible errors are not returned to the caller, but may be reported via error hooks.
دالة Ioc [SWS_Os_91026] 📄 PDF
void IocInit (void);
This service initializes the data structures of the IOC. Tags: atp.Status=draft
الاستخدام وطريقة العمل
تهيئ الدالة Ioc Init (المصنفة كمسودة في الإصدار R20-11) هياكل البيانات الداخلية لـ Inter-OS-Application Communication (IOC) [SWS_Os_91026]. يتم الاستدعاء بشكل متزامن، ولا يقبل أي معاملات ممررة وليس له قيمة إرجاع [SWS_Os_91026]. وإذا تم تشغيل مولد نظام التشغيل في وضع "IOC mode"، فإنه يولد حصريًا كود IOC في ملف المصدر Ioc.c ويصرّح عن الواجهات التابعة في ملف الرأس Ioc.h [SWS_Os_00834]، والذي يتم من خلاله أيضًا توفير Ioc Init [SWS_Os_91026].
معالجة الأخطاء والتزامن
بالنسبة لـ Ioc Init، لم تنص المواصفة على قيم إرجاع أخطاء محددة ولا على إشعارات أخطاء إلى DET أو DEM [SWS_Os_91026]. تم تعريف الخدمة صراحةً على أنها غير قابلة لإعادة الدخول (Non Reentrant) [SWS_Os_91026]. تفسير: نظرًا لعدم قابليتها لإعادة الدخول ومهمة التهيئة الخاصة بها، يُرجَّح وجوب استدعاء الخدمة تسلسليًا أثناء مرحلة بدء تشغيل النظام قبل حدوث أي عمليات وصول متزامنة للاتصال. سؤال Q-47f99a4725b57c89 (مفتوح)
التفاعل مع دوال اتصال IOC
تشكل التهيئة السليمة لهياكل البيانات شرطًا مسبقًا لاستخدام واجهات اتصال IOC المُولدة:
- الإرسال والكتابة: تنقل جهات الإرسال البيانات بشكل غير متزامن عبر خدمات القيمة المفردة مثل
Ioc Send[SWS_Os_00718] وIoc Write[SWS_Os_91003] أو عبر دوال المجموعة مثلIoc Send Group[SWS_Os_00728] وIoc Write Group[SWS_Os_91004]. - الاستقبال والقراءة: تسترجع جهات الاستقبال البيانات بشكل متزامن عبر
Ioc Receive[SWS_Os_00738]،Ioc Read[SWS_Os_91005] أو خدمات المجموعة المقابلة [SWS_Os_00746] [SWS_Os_91006]. - إدارة قائمة الانتظار (Queue) والإشعار: عند تكوين الاتصال المخزن مؤقتًا، يمكن إفراغ محتوى قائمة انتظار داخلية بشكل متزامن باستخدام
Ioc Empty Queue[SWS_Os_00754]. بالإضافة إلى ذلك، عند استلام البيانات، يمكن تنفيذ رد نداء مستقبِل مُهيأ<Receiver Pull CB>على النواة المستهدفة [SWS_Os_00757].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند حصريًا إلى مواصفات الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
دالة <ReceiverPullCB> [SWS_Os_00757] 📄 PDF
void <ReceiverPullCB> (void);
This callback function can be configured for the receiver of a communication. If configured, IOC calls this callback on the receiving core for each data reception.
يمكن تكوين دالة رد النداء (Callback) <Receiver Pull CB> اختيارياً لمستلِم الاتصال، ويتم الإعلان عنها عبر ملف الترويسة Os.h [SWS_Os_00757]. وإذا تم إعداد هذا الـ Callback، يستدعي الـ IOC (Inter-OS-Application Communicator) الدالة بشكل متزامن على الـ Core المستلِم عند كل استقبال للبيانات [SWS_Os_00757]. ويتم تحديد المعرّف الفعلي لدالة رد النداء من جانب المستلِم عبر سمة التكوين OsIocReceiverPullCB [SWS_Os_00757].
تنطبق المتطلبات التالية على الاستدعاء وخصائص الواجهة:
- التوقيع والمعاملات: تمتلك الدالة النموذج الأولي
void <Receiver Pull CB> ( void )؛ ولا تقبل أي معاملات (لا معاملات إدخال ولا معاملات تمرير ولا معاملات إخراج) ولا تُرجع أي قيمة [SWS_Os_00757]. - التزامن وقابلية إعادة الدخول: يتم الاستدعاء بواسطة الـ IOC بدلالات متزامنة مباشرة على الـ Core المستلِم [SWS_Os_00757]. وبالإضافة إلى ذلك، تم تحديد دالة رد النداء على أنها قابلة لإعادة الدخول [SWS_Os_00757].
- معالجة الأخطاء: لا تنص المواصفات على قيم إرجاع أو رموز خطأ محددة أو إشعارات بالأخطاء لهذه الدالة [SWS_Os_00757].
نظراً لأن التوقيع لا يمرر أي بيانات حمولة (Payload)، فمن المرجح أن يعمل الاستدعاء أساساً كإشارة إشعار لإبلاغ المستلِم بوصول بيانات جديدة وبدء جلب بيانات الحمولة اللاحق. سؤال Q-2365bb46ad77a476 (مفتوح) ويجب على المطورين مراعاة أن التنفيذ يتم بشكل متزامن على الـ Core المستلِم [SWS_Os_00757].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR CP R20-11.
دالة ProtectionHook [SWS_Os_00538] 📄 PDF
ProtectionReturnType ProtectionHook (StatusType Fatalerror);
The protection hook is always called if a serious error occurs. E.g. exceeding the worst case execution time or violating against the memory protection.
تُستخدم الدالة ProtectionHook كخطاف استدعاء مركزي (Callback) لنظام التشغيل ويتم استدعاؤها متزامنًا دائمًا عند حدوث خطأ جسيم [SWS_Os_00538]. تذكر المواصفة صراحةً كسيناريوهات أخطاء نموذجية تجاوز الحد الأقصى لوقت التنفيذ (Worst Case Execution Time) بالإضافة إلى انتهاكات حماية الذاكرة [SWS_Os_00538]. يتم توفير إعلان الواجهة عبر ملف الترويسة Os_Externals.h [SWS_Os_00538].
كمعامل إدخال، يتلقى الروتين Fatalerror من النوع StatusType، والذي يمرر السبب المؤدي لاستدعاء الخطاف [SWS_Os_00538]. لم يتم تعريف معلمات إدخال/إخراج إضافية أو معلمات إخراج فقط في التوقيع [SWS_Os_00538].
عبر قيمة الإرجاع من النوع ProtectionReturnType، يحدد ProtectionHook بشكل ملزم الإجراء الذي يجب أن يتخذه نظام التشغيل بعد تنفيذ الخطاف لمواصلة معالجة الأخطاء [SWS_Os_00538]. تتوفر الإجراءات التالية كقيم إرجاع [SWS_Os_00538]:
PRO_IGNORE[SWS_Os_00538]PRO_TERMINATETASKISR[SWS_Os_00538]PRO_TERMINATEAPPL[SWS_Os_00538]PRO_TERMINATEAPPL_RESTART[SWS_Os_00538]PRO_SHUTDOWN[SWS_Os_00538]
فيما يتعلق بالتزامن وسلوك التنفيذ، تم تحديد ProtectionHook على أنها قابلة لإعادة الدخول (reentrant) ومتزامنة [SWS_Os_00538]. يتم الاستدعاء فور حدوث الخطأ الجسيم، وبناءً عليه ينفذ نظام التشغيل الإجراء المحدد [SWS_Os_00538].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفة.
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع AppModeType [SWS_Os_91007] 📄 PDF
App Mode of the core shall be inherited from another core.
نوع التعداد AppModeType معرف في ملف الرأس Os.h ويُستخدم لتحديد نمط التطبيق في نظام التشغيل [SWS_Os_91007]. في الأنظمة متعددة الأنوية، يتيح هذا النوع وراثة نمط تطبيق نواة المعالج من Core آخر [SWS_Os_91007].
بالنسبة لنطاق القيم، تم تحديد القيمة DONOTCARE [SWS_Os_91007]. تفسير: يُرجَّح أن تُستخدم هذه القيمة لتهيئة Core بشكل صريح بحيث لا يبدأ نمطًا مستقلاً، بل يعتمد سلوك Core الأعلى مرتبة. سؤال Q-2b7d9f1c8e5f1a3f (مفتوح) ولم يتم تحديد رموز أخطاء أو قيم إرجاع معينة للنوع نفسه.
فيما يتعلق بالتشخيص وحالة النظام، فإن التفاعل مع أدوات التحليل أمر ذو صلة. وفقًا لـ [SWS_Os_00829]، يجب أن يدعم ملف وصف وحدة ARTI جميع حاويات ORTI لتمكين أدوات تصحيح الأخطاء (Debug Tools) المتصلة من تقييم وعرض المعلومات حول نظام التشغيل وكائناته. توفر معلومات تصحيح الأخطاء الخاصة بـ ARTI سمات ديناميكية يتم حلها عبر صيغ رياضية [SWS_Os_00829]. تفسير: يُرجَّح بالتالي تمثيل وقراءة حالة نمط التطبيق على مستوى الأدوات عبر سمات كائنات ARTI المقابلة. سؤال Q-410d011cbcf1b158 (مفتوح)
تم إنشاء ملاحظة الاستخدام هذه بصورة آلية استناداً إلى متطلبات المواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع TotalNumberOfCores [SWS_Os_91002] 📄 PDF
The total number of cores
نوع ApplicationType [SWS_Os_00772] 📄 PDF
This data type identifies the OS - Application.
نوع ApplicationStateType [SWS_Os_00773] 📄 PDF
This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
يُستخدم نوع البيانات ApplicationStateType في نظام تشغيل Classic AUTOSAR للتعريف الفريد لحالة OS-Application [SWS_Os_00773]. وقد تم تحديده كنوع قياسي أساسي ويتم توفيره عبر ملف الترويسة Os.h [SWS_Os_00773].
يشمل نطاق القيم المسموح به لـ ApplicationStateType ثلاث حالات منفصلة لـ OS-Application [SWS_Os_00773]:
APPLICATION_ACCESSIBLE: تشير إلى أن الـ OS-Application جاهزة للتشغيل ويمكن الوصول إلى مواردها [SWS_Os_00773].APPLICATION_RESTARTING: تفيد بأن الـ OS-Application موجودة حالياً في مرحلة إعادة التشغيل [SWS_Os_00773].APPLICATION_TERMINATED: تشير إلى أنه تم إنهاء الـ OS-Application وأنها لا تنفذ أي إجراءات أخرى [SWS_Os_00773].
فيما يتعلق بالاستخدام والتفاعل مع المكونات الأخرى، يُرجح أن يُستخدم النوع كقيمة إرجاع أو كمعامل إخراج في خدمات نظام OS المقابلة لمراقبة الحالة، وذلك لإبلاغ المستدعين بحالة دورة الحياة الحالية للتطبيق. سؤال Q-9a4f2254f4013853 (مفتوح) ونظراً لأنه تعريف نوع أولي، فإن المعيار لا يحدد له رموز خطأ مستقلة أو رسائل DET أو DEM، ولا يضع أي قيود خاصة بشأن سياق الاستدعاء أو قابلية إعادة الدخول [SWS_Os_00773].
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى بيانات مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع ApplicationStateRefType [SWS_Os_00774] 📄 PDF
This data type points to location where a Application State Type can be stored.
نوع البيانات ApplicationStateRefType هو جزء من نظام التشغيل (الوحدة Os) في منصة AUTOSAR Classic ويتم توفيره عبر ملف الرأس Os.h [SWS_Os_00774]. هذا النوع مشتق من مؤشر (Pointer) ويشير مباشرةً إلى موقع تخزين يمكن فيه حفظ حالة تطبيق OS (Application State) [SWS_Os_00774].
فيما يتعلق بالاستخدام العملي، يُستخدم نوع المؤشر هذا للإشارة إلى حالات التطبيق: تفسير: كنوع مؤشر، يُرجَّح استخدام ApplicationStateRefType بشكل أساسي كمعامل إسناد أو خرج في دوال الاستعلام الخاصة بنظام التشغيل، والتي يتم من خلالها إرسال حالة تطبيق OS إلى الجهة المستدعية. سؤال Q-948bb914d3672a38 (مفتوح) لذلك يجب على الجهات المستدعية التأكد من حجز نطاق ذاكرة صالح وقابل للكتابة للحالة المستهدفة قبل تمرير المعامل، وذلك لتجنب عمليات الوصول الخاطئة بالمؤشر في وقت التشغيل.
لا تحدد المواصفة بشكل منفصل آليات خاصة لمعالجة الأخطاء، أو رموز أخطاء لـ DET أو DEM، أو متطلبات خاصة لإعادة الدخول (Reentrancy) والتزامن لهذا النوع الأساسي [SWS_Os_00774]. وتنشأ أي قيود تتعلق بسياق الاستدعاء المسموح به أو التزامات المزامنة الواجب اتباعها حصريًا من واجهات نظام التشغيل التي تستخدم هذا النوع في توقيعات دوالها.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفات.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع TrustedFunctionIndexType [SWS_Os_00775] 📄 PDF
This data type identifies a trusted function.
نوع TrustedFunctionParameterRefType [SWS_Os_00776] 📄 PDF
This data type points to a structure which holds the arguments for a call to a trusted function.
نوع AccessType [SWS_Os_00777] 📄 PDF
This type holds information how a specific memory region can be accessed.
نوع ObjectAccessType [SWS_Os_00778] 📄 PDF
This data type identifies if an OS - Application has access to an object.
نوع ObjectType [SWS_Os_00779] 📄 PDF
This data type identifies an object.
نوع MemoryStartAddressType [SWS_Os_00780] 📄 PDF
This data type is a pointer which is able to point to any location in the MCU address space.
نوع MemorySizeType [SWS_Os_00781] 📄 PDF
This data type holds the size (in bytes) of a memory region.
نوع ISRType [SWS_Os_00782] 📄 PDF
This data type identifies an interrupt service routine (ISR).
نوع ScheduleTableType [SWS_Os_00783] 📄 PDF
This data type identifies a schedule table.
نوع ScheduleTableStatusType [SWS_Os_00784] 📄 PDF
This type describes the status of a schedule. The status can be one of the following: o The schedule table is not started (SCHEDULETABLE_ STOPPED) o The schedule table will be started after the end of currently running schedule table (sched ule table was used in Next Schedule Table() service) (SCHEDULETABLE_ NEXT) o The schedule table uses explicit synchronization, has been started and is waiting for the global time. (SCHEDULETABLE_ WAITING) o The schedule table is running, but is currently n ot synchronous to a global time source (SCHEDULETABLE_ RUNNING) o The schedule table is running and is synchronous to a global time source (SCHEDULETABLE_ RUNNING_ AND_ SYNCHRONOUS)
يمثل النوع ScheduleTableStatusType وفقًا لـ [SWS_Os_00784] حالة التنفيذ والمزامنة الحالية لجدول الجدولة (Schedule Table) في نظام تشغيل AUTOSAR. ويتم توفيره عبر ملف الترويسة Os.h ويعتمد على نطاق قيم خاص بالتطبيق (implementation-specific).
قيم الحالة التالية محددة:
SCHEDULETABLE_STOPPED: جدول الجدولة (Schedule Table) غير مبدوء.SCHEDULETABLE_NEXT: سيتم بدء جدول الجدولة (Schedule Table) بعد انتهاء جدول الجدولة النشط حاليًا (تفسير: يتم ذلك بعد التمرير إلى الخدمةNextScheduleTable()). سؤال Q-8cbcfc83969eea23 (مفتوح)SCHEDULETABLE_WAITING: يستخدم جدول الجدولة (Schedule Table) مزامنة صريحة، وقد تم بدؤه بالفعل وينتظر المطابقة مع الوقت العالمي.SCHEDULETABLE_RUNNING: جدول الجدولة (Schedule Table) قيد التنفيذ، ولكنه غير متزامن حاليًا مع مصدر وقت عالمي.SCHEDULETABLE_RUNNING_AND_SYNCHRONOUS: جدول الجدولة (Schedule Table) قيد التشغيل ومتزامن مع مصدر الوقت العالمي.
كنوع بيانات حالة بحت، لا يحدد ScheduleTableStatusType أية أخطاء وقت تشغيل أو رسائل DET/DEM خاصة به. وبالتفاعل مع أدوات التحليل، يُستخدم النوع وفقًا لـ [SWS_Os_00829] للتقييم والعرض المعتمدين على ARTI لكائنات نظام التشغيل الديناميكية، مما يتيح تسجيل انحرافات الحالة والمزامنة في النظام بشفافية.
تم إنشاء هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع ScheduleTableStatusRefType [SWS_Os_00785] 📄 PDF
This data type points to a variable of the data type Schedule Table Status Type.
الاستخدام والتعريف
تم تعريف نوع البيانات ScheduleTableStatusRefType وفقًا لـ [SWS_Os_00785] كنوع مؤشر إلى متغير من نوع البيانات Schedule Table Status Type. يتم توفير هذا النوع عبر الرأس Os.h ويُستخدم في نظام تشغيل AUTOSAR كنوع مرجعي لحالة جدول الجدولة (Schedule Table) [SWS_Os_00785].
الاستخدام والشروط العامة
في استدعاءات نظام التشغيل النمطية، يُرجَّح أن يعمل نوع المؤشر هذا كمعامل خرج تُعيد من خلاله دالة نظام OS الحالة الحالية لجدول Schedule Table المشار إليه إلى الجهة المستدعية. سؤال Q-53364f3a9953dae3 (مفتوح) وبما أن المواصفة تحدد فقط تعريف النوع، يجب على المكونات المستدعية مراعاة ما يلي عند الاستخدام:
- توفير الذاكرة: قبل تمرير مرجع من هذا النوع، يجب على الجهة المستدعية التأكد من أن المؤشر يشير إلى نطاق ذاكرة صالح وقابل للكتابة، ويظل صالحًا طوال فترة الاستدعاء بأكملها.
- الصلاحية والمؤشر الفارغ (Null Pointer): يُرجَّح أن يؤدي تمرير مؤشر فارغ (
NULL) إلى استجابات خطأ مقابلة من خدمات OS المستدعاة، اعتمادًا على تكوين نظام التشغيل (حالة قياسية أو موسعة). سؤال Q-63d77f8c7857e6c4 (مفتوح) - حماية الذاكرة: في بيئات OS متعددة الأنوية أو المحمية الذاكرة والحرجة للسلامة، يجب أن يكون نطاق الذاكرة المشار إليه قابلاً للوصول من قِبل المهمة (Task) المستدعية أو مثيل OS.
نظرًا لأن [SWS_Os_00785] لا يحدد خصائص وقت تشغيل إضافية أو رموز أخطاء معينة للنوع الأساسي، فإن إمكانية إعادة الدخول وسياق الاستدعاء ينتجان من خدمات OS المعنية التي تستخدم نوع المؤشر هذا كمعامل.
تم إنشاء ملاحظة الاستخدام هذه تلقائيًا وتستند حصريًا إلى بيانات المواصفة من الإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع ProtectionReturnType [SWS_Os_00787] 📄 PDF
This data type identifies a value which controls further actions of the OS on return from the protection hook.
نوع RestartType [SWS_Os_00788] 📄 PDF
This data type defines the use of a Restart Task after terminating an OS - Application.
نوع PhysicalTimeType [SWS_Os_00789] 📄 PDF
This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2
نوع CoreIdType [SWS_Os_00790] 📄 PDF
Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID
نوع SpinlockIdType [SWS_Os_00791] 📄 PDF
Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.
نوع TryToGetSpinlockType [SWS_Os_00792] 📄 PDF
The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.
الاستخدام ومجال القيم
يتم توفير نوع التعداد TryToGetSpinlockType عبر ملف الترويسة Os.h ويُستخدم كمؤشر حالة لما إذا كان قد أمكن حجز Spinlock بنجاح بواسطة المستدعي أم لا [SWS_Os_00792]. ويحدد نتيجة عمليات الحجز المقابلة في نظام التشغيل [SWS_Os_00792].
يشمل نطاق القيم قيمتين حرفيتين (Literals) محددتين بالضبط [SWS_Os_00792]:
TRYTOGETSPINLOCK_SUCCESS: يشير إلى أنه قد أمكن حجز Spinlock بنجاح [SWS_Os_00792].TRYTOGETSPINLOCK_NOSUCCESS: يوضح أنه تعذر حجز Spinlock [SWS_Os_00792].
التزامن وسياق النظام
يُستخدم النوع في المزامنة داخل الأنظمة متعددة الأنوية. تفسير: يُرجَّح أن يقوم المستدعي بتقييم قيمة الإرجاع بشكل متزامن للتحقق فورًا مما إذا كان يُسمح بالدخول إلى القسم الحرج المحمي أو ما إذا كان يجب اختيار فرع برنامج بديل دون انتظار حاجب عند TRYTOGETSPINLOCK_NOSUCCESS [SWS_Os_00792]. سؤال Q-a04e72802dc41325 (مفتوح) لا توجد أكواد أخطاء أو رسائل خطأ محددة عبر DET أو DEM لهذا النوع [SWS_Os_00792].
التفاعل مع أدوات التشخيص
في سياق ربط الأدوات، يدعم ملف وصف وحدة ARTI جميع حاويات ORTI لعرض معلومات حول نظام التشغيل وحالاته وكائنات نظام التشغيل وتحديد القيم الديناميكية [SWS_Os_00829]. تفسير: من المرجح أن تكون Spinlocks وحالات حجزها قابلة للتصور أيضًا لأدوات تصحيح الأخطاء والتتبع عبر مثل هذه الواجهات [SWS_Os_00829]. سؤال Q-a488e055eb7d402e (مفتوح)
تم توليد هذا النص بواسطة ذكاء اصطناعي ويستند إلى مواصفات AUTOSAR للإصدار R20-11.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع IdleModeType [SWS_Os_00793] 📄 PDF
This data type identifies the idle mode behavior.
الاستخدام ومجال القيم
يتم توفير نوع البيانات القياسي IdleModeType عبر الترويسة Os.h ويُستخدم لتحديد سلوك نواة المعالج في وضع الخمول [SWS_Os_00793]. وفي نطاق القيم المحدد، تم تحديد الوضع IDLE_NO_HALT، والذي عند اختياره لا تنفذ نواة المعالج أي إجراءات خاصة أثناء فترة الخمول [SWS_Os_00793].
تفسير: نظرًا لأن IdleModeType مشتق من نوع أساسي قياسي، فمن المرجح أنه يُستخدم في سياق نظام التشغيل كقيمة تكوين أو معلمة استدعاء لخدمات التحكم في سلوك خمول النواة. سؤال Q-911a39efb537f1bc (مفتوح) تفسير: إلى جانب القيمة القياسية IDLE_NO_HALT، قد توفر تطبيقات ملموسة لنظام التشغيل أو معماريات المتحكم الدقيق أوضاع توقف أو توفير طاقة إضافية محتملة، على الرغم من أن مقتطف المواصفات يذكر فقط غياب الإجراءات المحددة. سؤال Q-b6688f74cacbab45 (مفتوح)
القيود ومعالجة الأخطاء
بالنسبة لـ IdleModeType، لم يتم توضيح أية أكواد أخطاء محددة أو رسائل DET أو DEM أو متطلبات لإعادة الدخول (Reentrancy) أو سياقات الاستدعاء في نطاق المواصفات الحالي [SWS_Os_00793]. لذلك، تنتج أية قيود وظيفية أو شروط مسبقة حصرًا من واجهات نظام التشغيل الأعلى التي تعالج هذا النوع.
تم توليد هذا النص بواسطة ذكاء اصطناعي بناءً على المواصفة SWS_Os_00793.
دليل المنفِّذ قيد الإعداد (التعقيد I1)
نوع AreaIdType [SWS_Os_91000] 📄 PDF
Area Id Type identifies a peripheral area and is used by the API functions: Read Peripheral X, Write Peripheral X and Modify Peripheral X AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
نوع TimeInMicrosecondsType [SWS_Os_00794] 📄 PDF
-
نوع CounterType [SWS_Os_00786] 📄 PDF
This data type identifies a counter.
نوع TickType [SWS_Os_00001] 📄 PDF
typedef uint32 TickType;
This data type represents count values in ticks.
نوع StatusType [SWS_Os_00002] 📄 PDF
typedef uint8 StatusType;
This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).
دليل المنفِّذ قيد الإعداد (التعقيد I2)
نوع TaskType [SWS_Os_00003] 📄 PDF
typedef uint8 TaskType;
This data type identifies an AUTOSAR OS task.
نوع EventMaskType [SWS_Os_00004] 📄 PDF
typedef uint32 EventMaskType;
This data type represents an event mask for extended tasks.
نوع AlarmType [SWS_Os_00005] 📄 PDF
typedef uint8 AlarmType;
This data type represents an AUTOSAR OS alarm identifier.
Request a governed re-review of this record. The record is not changed immediately.
- Record
AUTOSAR/AP/record/CP_MOD_Os- Status
- unspecified
- Version
AUTOSAR/AP/record/CP_MOD_Os@rel:R20-11#b31aeee8- Content hash
b31aeee8- Source
- https://www.autosar.org/fileadmin/standards/R20-11/CP/AUTOSAR_SWS_OS.pdf#nameddest=SWS_Os_00016
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني