AUTOSAR Classic Operating System
دليل العنقودمولَّد بالذكاء الاصطناعي
يوفر الجدولة الحتمية في الوقت الفعلي، وحماية الذاكرة، والمزامنة متعددة الأنوية، واحتواء الأخطاء.
يوفر الجدولة الحتمية في الوقت الفعلي، وحماية الذاكرة، والمزامنة متعددة الأنوية، واحتواء الأخطاء.
توفر مجموعة وحدات Operating System الجدولة الحتمية في الوقت الفعلي للمهام وISRs، بالإضافة إلى حماية الذاكرة وتغليف الأخطاء في OS-Applications المقسمة [SWS_Os_00445]. وهي تدعم الأنظمة متعددة الأنوية من خلال أقفال الغزل (Spinlocks) عبر الأنوية، والتنشيط غير المتزامن للمهام، وInter-OS-Application Communicator (IOC) [SWS_Os_00686]، [SWS_Os_00824]. وعند حدوث انتهاكات للحماية، يُتيح OS عبر خطافات قابلة للتهيئة الإنهاء المستهدف أو إعادة التشغيل المنضبطة لأقسام فردية أثناء وقت التشغيل ApplicationLevelErrorHandling ص. 53.
توفر مجموعة وحدات «Operating System» في AUTOSAR Classic البنية التحتية الأساسية للتنفيذ والحماية لمكونات البرمجيات ووحدات برمجيات الأساس. ويُغلّف نظام التشغيل الموارد مثل المهام، وISRs، والإنذارات، والعدادات في OS-Applications [SWS_Os_00445]، مُميزًا في ذلك بين الأقسام الموثوقة (trusted) وغير الموثوقة [SWS_Os_00446]، لضمان احتواء صارم للأخطاء استنادًا إلى حماية ذاكرة MPU SafetyConceptStatusReport ص. 49. وفي الأنظمة متعددة الأنوية، يدير OS الأنوية المنطقية عبر معرّفات أنوية قياسية [SWS_Os_00790] ويوفر Inter-OS-Application Communicator (IOC) للتبادل القائم على البيانات والأحداث بين الأنوية والأقسام [SWS_Os_00824].
مخطط السياق: تضمين مجموعة OS في بنية برمجيات الأساس لـ AUTOSAR وواجهات EcuM وStbM وRTE والعتاد. المصادر: [SWS_Os_00445]، [SWS_Os_00790]، SWS_BSWGeneral ص. 48.
بالإضافة إلى جدولة المهام الموجهة بالأحداث، يتيح OS تتبع التنفيذ المتحكم فيه بالوقت عبر Schedule Tables [SWS_Os_00783]. ويمكن تكييفها مع قواعد الوقت العالمية للمركبة عبر Synchronized Time-Base Manager (StbM) باستخدام SyncScheduleTable [SWS_Os_00199]، SWS_SynchronizedTimeBaseManager ص. 220. وللمزامنة عبر حدود الأنوية، توفر الوحدة أقفال غزل (Spinlocks) قريبة من العتاد مع اكتشاف مدمج للجمود (Deadlock) [SWS_Os_00686]، بينما يمكن تنفيذ تنشيطات المهام عبر الأنوية بشكل غير متزامن باستخدام ActivateTaskAsyn [SWS_Os_91022].
في حالة حدوث خطأ (مثل تجاوزات الذاكرة)، يُنشّط OS الـ ProtectionHook [SWS_Os_00538]. وعبر قيمته المعادة، يمكن عزل OS-Application المعيبة وإنهاؤها بشكل منضبط أو إعادة تهيئتها عبر مهمة إعادة تشغيل مخصصة دون إعادة تعيين النظام بأكمله [SWS_Os_00787]، ApplicationLevelErrorHandling ص. 53.
مخطط الحالة: دورة الحياة وحالات التقسيم لـ AUTOSAR OS-Application في حالة الخطأ. المصادر: [SWS_Os_00773]، [SWS_Os_00258]، ApplicationLevelErrorHandling ص. 53.
1. بنية النظام ودور مجموعة الوحدات
تشكّل حزمة وحدات «Operating System» في نموذج طبقات AUTOSAR الأساس الجوهري لخدمات النظام (System Services) لتنفيذ وتنسيق جميع مكونات برمجيات الوقت الفعلي ووحدات البرمجيات الأساسية (Basic Software). وتغلّف الوحدة الأساسية [SWS_Os_00445] المهام (Tasks) وروتينات خدمة المقاطعة (ISRs) والتنبيهات والعدادات (Counters) وجداول الجدولة (Schedule Tables) ضمن وحدات تنفيذ قابلة للتهيئة تُعرف باسم OS-Applications. وفي هذا السياق، يفرّق نظام التشغيل بشكل صارم بين OS-Applications الموثوقة (trusted) وغير الموثوقة (non-trusted) [SWS_Os_00446]، لتوفير السلامة الوظيفية وحماية الذاكرة وفقًا لفئات قابلية التوسع المطلوبة SafetyConceptStatusReport ص. 49.
في البنى متعددة الأنوية، يدير OS أنوية منطقية يُشار إليها عبر معرفات فريدة من النوع CoreIdType [SWS_Os_00790]. وتكون معرفات الأنوية ذات أساس صفري ومرتبة بالتسلسل [SWS_Os_00825]، حيث يحدد الثابت OS_CORE_ID_MASTER النواة الرئيسية (Master Core) SWS_OS ص. 111. وعبر أداة التواصل المدمجة بين تطبيقات نظام التشغيل Inter-OS-Application Communicator (IOC)، يوفر نظام التشغيل آليات لنقل البيانات الآمن عبر الأقسام والأنوية [SWS_Os_00824]. ومن خلال توحيد المعايير للواجهات وفقًا لمعيار OSEK OS وتوسيعاتها الخاصة بـ AUTOSAR، يضمن OS سلوكًا حتميًا في الوقت الفعلي للوحدات العليا مثل ECU State Manager (EcuM) وSynchronized Time-Base Manager (StbM) وبيئة التشغيل RTE SWS_BSWGeneral ص. 48.
مخطط السياق: تضمين مجموعة OS في بنية برمجيات الأساس لـ AUTOSAR وواجهات EcuM وStbM وRTE والعتاد. المصادر: [SWS_Os_00445]، [SWS_Os_00790]، SWS_BSWGeneral ص. 48.
2. التفاعل ومسارات الاتصال المتبادل بين الوحدات
يتم التفاعل بين كائنات OS وطبقات بنية AUTOSAR عبر مسارات تحكم وبيانات محددة بدقة. ولتبادل البيانات عبر الأقسام، يُنشئ IOC دوال اتصال مصنفة النوع بدلالات غير متسلسلة في قائمة انتظار (unqueued، «data»، IocWrite / IocRead) أو متسلسلة في قائمة انتظار (queued، «event»، IocSend / IocReceive) [SWS_Os_00718]، [SWS_Os_00738]. وفي عمليات النقل الجماعي، تُستخدم الخدمتان IocSendGroup وIocReceiveGroup على التوالي [SWS_Os_00728]، [SWS_Os_00746]. وإذا امتلأ المخزن المؤقت الداخلي للمستقبل، يشير IOC إلى ذلك بالحالة IOC_E_LIMIT للمرسل، ويسجل IOC_E_LOST_DATA لعمليات القراءة اللاحقة SWS_OS ص. 225.
عندما يتعين على OS-Application غير موثوقة الوصول إلى خدمات مميزة لقسم موثوق، يتم تبديل السياق الخاضع للتحكم عبر خدمة النظام CallTrustedFunction [SWS_Os_00097]. وهنا تُمرر المعاملات عبر بنية مؤشر من النوع TrustedFunctionParameterRefType [SWS_Os_00776]. ويغيّر نظام التشغيل مؤقتًا أذونات MPU إلى أذونات التطبيق الهدف SWS_OS ص. 172. وتُرجع الدالة GetCurrentApplicationID أثناء هذا التنفيذ معرّف Trusted Application المستدعاة، بينما توفر GetApplicationID تطبيق المستدعي الأصلي [SWS_Os_00797].
للتنسيق الزمني مع القواعد الزمنية الخارجية، تقوم الوحدة StbM بمزامنة Schedule Tables المهيأة بشكل صريح عبر واجهات OS. تستعلم StbM أولاً بشكل دوري عن حالة المزامنة عبر GetScheduleTableStatus [SWS_Os_00227]، ثم تمرر بعد ذلك قيمة المزامنة الحالية إلى OS باستخدام SyncScheduleTable [SWS_Os_00199]. وبناءً على ذلك، يحسب نظام التشغيل الانحراف عن نقاط الانتهاء (Expiry Points) ويضبط أوقات التأخير تدريجيًا حتى يعمل الجدول بشكل متزامن مع القاعدة الزمنية العامة SWS_OS ص. 57، SWS_SynchronizedTimeBaseManager ص. 220.
مخطط تسلسلي: مزامنة صريحة لجدول OS-Schedule-Table بواسطة Synchronized Time-Base Manager (StbM). المصادر: [SWS_Os_00199]، [SWS_Os_00227]، SWS_SynchronizedTimeBaseManager ص. 220.
3. التزامن وإعادة الدخول وسياقات المهام
يميز نموذج وقت التشغيل بوضوح بين مستوى المهام (Task Level)، ومستويات المقاطعة من الفئة 1 (Cat 1 ISR) والفئة 2 (Cat 2 ISR)، وروتينات الخطاف (Hook Routines). فبينما تعمل Cat 1 ISRs دون أي عبء إضافي من نظام التشغيل ولا يُسمح لها باستدعاء خدمات OS، فإن Cat 2 ISRs تدار بالكامل بواسطة OS [SWS_Os_00782]. ويمكن تحديد معرّف ISR النشط باستخدام GetISRID؛ وعند الاستدعاء من خارج Cat 2 ISR، تُرجع الخدمة INVALID_ISR [SWS_Os_00511]. ويمكن التحكم في مصادر المقاطعة الفردية على نحو موجه عبر EnableInterruptSource وDisableInterruptSource وكذلك ClearPendingInterrupt على مستوى وحدة التحكم في المقاطعات [SWS_Os_91020]، [SWS_Os_91019]، [SWS_Os_91021].
لمزامنة المقاطع الحرجة عبر حدود أنوية المعالج، يوفر OS أقفال الدوران (Spinlocks) [SWS_Os_00791]. يتم حجز قفل الدوران بشكل تزامني حاجب باستخدام GetSpinlock [SWS_Os_00686] أو يُستعلم عنه بشكل غير حاجب عبر TryToGetSpinlock [SWS_Os_00703]. ويتم التحرير عبر ReleaseSpinlock [SWS_Os_00695]. ولاستبعاد حالات الجمود (Deadlocks)، يتحقق OS في الحالة الموسعة من أخطاء التداخل والتشابك (E_OS_INTERFERENCE_DEADLOCK، E_OS_NESTING_DEADLOCK) SWS_OS ص. 199.
لتنشيط المهام وتعيين الأحداث عبر الأنوية، يوفر OS متغيرات API غير متزامنة: تعود ActivateTaskAsyn وSetEventAsyn فورًا إلى المستدعي دون انتظار التنفيذ على النواة الهدف [SWS_Os_91022]، [SWS_Os_91023]. ولا تُعاد الأخطاء المحتملة إلى المستدعي، بل تُسجل عبر خطافات الأخطاء (Error Hooks) المهيأة [SWS_Os_00816]، SWS_OS ص. 203.
4. دورات الحياة النموذجية وأوضاع التشغيل
يتم تنسيق بدء تشغيل النظام بصورة أساسية بواسطة ECU State Manager (EcuM). وعلى النواة الرئيسية، يبدأ EcuM الأنوية التابعة قبل بدء تشغيل نظام التشغيل عبر خدمة OS StartCore [SWS_Os_00676]، SWS_ECUStateManager ص. 82. بعد ذلك، تستدعي كل نواة تم تشغيلها StartOS بشكل مستقل. وبعد استدعاء StartOS، ينقل نظام التشغيل جميع OS-Applications المهيأة إلى الحالة APPLICATION_ACCESSIBLE، قبل تنفيذ خطافات بدء التشغيل (Startup Hooks) SWS_OS ص. 62. ويمكن الاستعلام عن عدد الأنوية التي تم تشغيلها بنجاح أثناء وقت التشغيل باستخدام GetNumberOfActivatedCores SWS_OS ص. 196.
تخضع Schedule Tables لآلة حالات محددة بوضوح. يمكن تشغيلها بشكل مطلق عبر StartScheduleTableAbs [SWS_Os_00358]، أو نسبي عبر StartScheduleTableRel [SWS_Os_00347]، أو تزامني عبر StartScheduleTableSynchron [SWS_Os_00201]. ويمكن ربط الجداول تسلسليًا (NextScheduleTable، الحالة SCHEDULETABLE_NEXT) [SWS_Os_00191] أو نقلها فورًا إلى حالة السكون SCHEDULETABLE_STOPPED باستخدام StopScheduleTable [SWS_Os_00006]. كما يمكن إلغاء المزامنة الصريحة الجارية باستخدام SetScheduleTableAsync، مع استمرار معالجة نقاط الانتهاء (Expiry Points) [SWS_Os_00422].
لأوضاع توفير الطاقة أثناء الخمول، يوفر OS الواجهة ControlIdle، والتي تتيح لـ EcuM تهيئة حالة السكون للأنوية الفردية [SWS_Os_00769]. وعند إيقاف التشغيل، ينسق EcuM إلغاء تهيئة جميع الطبقات ويستدعي في النهاية ShutdownAllCores أو ShutdownOS لإيقاف النظام بأكمله بشكل محكوم SWS_ECUStateManager ص. 90.
5. معالجة الأخطاء، وتتبع DET، وتخفيض الأداء
تؤدي انتهاكات الحماية (مثل تجاوز سعة الذاكرة أو انتهاكات التوقيت) إلى تنشيط ProtectionHook العام [SWS_Os_00538]. واستنادًا إلى الخطأ، يحدد الخطاف استراتيجية الاسترداد عبر قيمة إرجاع من النوع ProtectionReturnType [SWS_Os_00787]: إنهاء الكيان المتسبب (PRO_TERMINATETASKISR)، أو الإنهاء الكامل للقسم المتأثر (PRO_TERMINATEAPPL)، أو بدء إعادة تشغيل محكومة للقسم (PRO_TERMINATEAPPL_RESTART)، أو إيقاف تشغيل وحدة التحكم الإلكترونية (ECU) (PRO_SHUTDOWN) ApplicationLevelErrorHandling ص. 60.
إذا تم إنهاء OS-Application أو إعادة تشغيلها، ينقلها OS من الحالة APPLICATION_ACCESSIBLE إلى APPLICATION_RESTARTING أو APPLICATION_TERMINATED [SWS_Os_00773]. وتتوقف جميع المهام النشطة وISRs والتنبيهات وSchedule Tables للقسم على الفور، وتُعطّل جميع المقاطعات [SWS_Os_00447]. وفي الحالة APPLICATION_RESTARTING، يُنفذ OsRestartTask حصريًا لإجراء عمليات التنظيف قبل إعادة إتاحة التشغيل العادي ApplicationLevelErrorHandling ص. 53، ApplicationLevelErrorHandling ص. 76.
مخطط الحالة: دورة الحياة وحالات التقسيم لـ AUTOSAR OS-Application في حالة الخطأ. المصادر: [SWS_Os_00773]، [SWS_Os_00258]، ApplicationLevelErrorHandling ص. 53.
للوقاية الاستباقية من الأخطاء، يوفر نظام التشغيل دوال فحص حماية الذاكرة مثل CheckTaskMemoryAccess وCheckISRMemoryAccess [SWS_Os_00512]، [SWS_Os_00513] بالإضافة إلى عمليات فحص أذونات الوصول عبر CheckObjectAccess وCheckObjectOwnership [SWS_Os_00256]، [SWS_Os_00017]. ومن خلال هذه الفحوصات القياسية، يمكن ضمان عدم قيام المكونات غير الموثوقة بعمليات كتابة أو تنفيذ غير مصرح بها في الذاكرة SWS_OS ص. 73.
سياق هذا الدليل: تم إنشاؤه استنادًا إلى مواصفات AUTOSAR Classic للإصدار R20-11. جميع الواجهات وانتقالات الحالات مدعومة بشكل صارم بمتطلبات SWS المشار إليها.
Das AUTOSAR Operating System ist ein statisch konfiguriertes, echtzeitfähiges preemptives Betriebssystem nach OSEK/VDX mit Tasks, Events, Alarmen, Schedule-Tables und Speicherschutz.
Module im Cluster
الخدمات · Get…
الخدمات · Start…
الخدمات · Check…
الخدمات · Modify…
الخدمات · Read…
الخدمات · Write…
الخدمات · أخرى
AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceIncrementCounterIocInitNextScheduleTableProtectionHookReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlockدوال Callout والواجهات المتوقعة
<ReceiverPullCB>الأنواع
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockTypeالدوال
<ReceiverPullCB>AccessTypeCheckObjectAccessActivateTaskAsynAllowAccessCallTrustedFunctionCheckISRMemoryAccessCheckObjectOwnershipCheckTaskMemoryAccessClearPendingInterruptControlIdleDisableInterruptSourceEnableInterruptSourceGetApplicationIDGetApplicationStateGetCoreIDGetCounterValueGetCurrentApplicationIDGetElapsedValueGetISRIDGetNumberOfActivatedCoresGetScheduleTableStatusGetSpinlockIncrementCounterIocInitModifyPeripheral16ModifyPeripheral32ModifyPeripheral8NextScheduleTableProtectionHookReadPeripheral16ReadPeripheral32ReadPeripheral8ReleaseSpinlockSetEventAsynSetScheduletableAsyncShutdownAllCoresStartCoreStartNonAutosarCoreStartScheduleTableAbsStartScheduleTableRelStartScheduleTableSynchronStopScheduleTableSyncScheduleTableTerminateApplicationTryToGetSpinlockWritePeripheral16WritePeripheral32WritePeripheral8الأنواع
AccessTypeAlarmTypeApplicationStateRefTypeApplicationStateTypeApplicationTypeAppModeTypeAreaIdTypeCoreIdTypeCounterTypeEventMaskTypeIdleModeTypeISRTypeMemorySizeTypeMemoryStartAddressTypeObjectAccessTypeObjectTypePhysicalTimeTypeProtectionReturnTypeRestartTypeScheduleTableStatusRefTypeScheduleTableStatusTypeScheduleTableTypeSpinlockIdTypeStatusTypeTaskTypeTickTypeTimeInMicrosecondsTypeTotalNumberOfCoresTrustedFunctionIndexTypeTrustedFunctionParameterRefTypeTryToGetSpinlockTypeخريطة المواضيع
Os
79لا توجد بيانات عناصر لهذا الإصدار
Os
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. is the callback function name configured by the receiver in the Os Ioc Re ceiver Pull CB attribute to be called on data reception."
void <ReceiverPullCB> (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.
ObjectAccessType CheckObjectAccess (ApplicationType ApplID, ObjectTypeType ObjectType, void ...);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.
void ActivateTaskAsyn (TaskType id);This service sets the own state of an OS - Application from AP PLICATION_ RESTARTING to APPLICATION_ ACCESSIBLE.
StatusType AllowAccess (void);A (trusted or non - trusted) OS - Application uses this service to call a trusted function
StatusType CallTrustedFunction (TrustedFunctionIndexType FunctionIndex, TrustedFunctionParameterRefType FunctionParams);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.
AccessType CheckISRMemoryAccess (ISRType ISRID, MemoryStartAddressType Address, MemorySizeType Size);This service determines to which OS - Application a given Task, ISR, Counter, Alarm or Schedule Table belongs
ApplicationType CheckObjectOwnership (ObjectTypeType ObjectType, void ...);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.
AccessType CheckTaskMemoryAccess (TaskType TaskID, MemoryStartAddressType Address, MemorySizeType Size);Service ClearPendingInterrupt.
StatusType ClearPendingInterrupt (ISRType ISRID);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.
StatusType ControlIdle (CoreIdType CoreID, IdleModeType IdleMode);Disables the interrupt source by modifying the interrupt controller registers.
StatusType DisableInterruptSource (ISRType ISRID);Service EnableInterruptSource.
StatusType EnableInterruptSource (ISRType ISRID, boolean ClearPending);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).
ApplicationType GetApplicationID (void);This service returns the current state of an OS - Application.
StatusType GetApplicationState (ApplicationType Application, ApplicationStateRefType Value);The function returns a unique core identifier.
CoreIdType GetCoreID (void);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).
StatusType GetCounterValue (CounterType CounterID, TickRefType Value);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().
ApplicationType GetCurrentApplicationID (void);This service gets the number of ticks between the current tick value and a previously read tick value.
StatusType GetElapsedValue (CounterType CounterID, TickRefType Value, TickRefType ElapsedValue);This service returns the identifier of the currently executing ISR.
ISRType GetISRID (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
uint32 GetNumberOfActivatedCores (void);This service queries the state of a schedule table (also with respect to synchronization).
StatusType GetScheduleTableStatus (ScheduleTableType ScheduleTableID, ScheduleTableStatusRefType ScheduleStatus);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.
StatusType GetSpinlock (SpinlockIdType SpinlockId);This service increments a software counter.
StatusType IncrementCounter (CounterType CounterID);This service initializes the data structures of the IOC. Tags: atp.Status=draft
void IocInit (void);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 ModifyPeripheral8 (AreaIdType Area, uint8* Address, uint8 Clearmask, uint8 Setmask);This service switches the processing from one schedule table to another schedule table.
StatusType NextScheduleTable (ScheduleTableType ScheduleTableID_From, ScheduleTableType ScheduleTableID_To);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.
ProtectionReturnType ProtectionHook (StatusType Fatalerror);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 ReadPeripheral8 (AreaIdType Area, const uint8* Address, uint8* ReadValue);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.
StatusType ReleaseSpinlock (SpinlockIdType SpinlockId);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.
void SetEventAsyn (TaskType id, EventMaskType m);This service stops synchronization of a schedule table.
StatusType SetScheduletableAsync (ScheduleTableType ScheduleTableID);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.
void ShutdownAllCores (StatusType Error);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.
void StartCore (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.
void StartNonAutosarCore (CoreIdType CoreID, StatusType* Status);This service starts the processing o f a schedule table at an absolute value "Start" on the underlying counter.
StatusType StartScheduleTableAbs (ScheduleTableType ScheduleTableID, TickType Start);This service starts the processing of a schedule table at "Offset" relative to the "Now" value on the underlying counter.
StatusType StartScheduleTableRel (ScheduleTableType ScheduleTableID, TickType Offset);This service starts an explicitly synchronized schedule table synchronously.
StatusType StartScheduleTableSynchron (ScheduleTableType ScheduleTableID);This service cancels the processing of a schedule table immediately at any point while the schedule table is running.
StatusType StopScheduleTable (ScheduleTableType ScheduleTableID);Service SyncScheduleTable.
StatusType SyncScheduleTable (ScheduleTableType ScheduleTableID, TickType Value);Service TerminateApplication.
StatusType TerminateApplication (ApplicationType Application, RestartType RestartOption);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.
StatusType TryToGetSpinlock (SpinlockIdType SpinlockId, TryToGetSpinlockType* Success);This service writes the to a given memory location (). Available vi a Os.h
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 (). Available vi a Os.h
StatusType WritePeripheral8 (AreaIdType Area, uint8* Address, uint8 WriteValue);This type holds information how a specific memory region can be accessed.
This data type points to location where a Application State Type can be stored.
This data type identifies the state of an OS - Application. AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
This data type identifies the OS - Application.
App Mode of the core shall be inherited from another core.
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
Core Id Type is a scalar that allows identifying a single core. The Core Id Type shall represent t he logical Core ID
This data type identifies a counter.
This data type represents an event mask for extended tasks.
typedef uint32 EventMaskType;This data type identifies the idle mode behavior.
This data type identifies an interrupt service routine (ISR).
This data type holds the size (in bytes) of a memory region.
This data type is a pointer which is able to point to any location in the MCU address space.
This data type identifies if an OS - Application has access to an object.
This data type identifies an object.
This data type is used for values returned by the conversion macro (see SWS_ Os_00393) OS_ TICKS2_(). AUTOSAR CP R20 - o f Document ID : AUTOSAR_SWS_OS
This data type identifies a value which controls further actions of the OS on return from the protection hook.
This data type defines the use of a Restart Task after terminating an OS - Application.
This data type points to a variable of the data type Schedule Table Status Type.
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)
This data type identifies a schedule table.
Spinlock Id Type identifies a spinlock instance and is used by the API functions: Get Spinlock, Release Spinlock and Try To Get Spinlock.
This data type represents standard OSEK OS status codes (e.g. E_OK, E_OS_ACCESS).
typedef uint8 StatusType;The total number of cores
This data type identifies a trusted function.
This data type points to a structure which holds the arguments for a call to a trusted function.
The Try To Get Spinlock Type indicates if the spinlock has been occupied or not.
gemini-3.8-flash-low· 2026-10-13 · الأصل الألماني