AVR-Autosar هو نظام تشغيل في الوقت الفعلي لمعايير AVR Microcontrollers استنادًا إلى معايير OSEK/VDX OS ومعايير OS 4.4 AUTOSAR.
AVR-Autosar ينفذ فئة قابلية التوسع 1 من نظام التشغيل التلقائي.
كان الدافع وراء AVR-Autosar هو إنشاء تطبيق مفتوح المصدر سهل الفهم لنظام التشغيل OS التلقائي الذي يمكن تشغيله على المعالجات الدقيقة المتاحة على نطاق واسع.
تم تطوير المشروع كجزء من أطروحة نهائية في جامعة العلوم التطبيقية دورتموند.
تم إنشاء المشروع باستخدام Atmel Studio 7 و AVR8-GCC-Toolchain الحالي على Windows. يتم تضمين ملفات الحل وملفات المشروع في المستودع.
يتم تكوين النظام في AppCfg.h . يتم تعريف وحدات الماكرو اللازمة وتوثيقها في include/CfgGenMacros.h . يمكن العثور على الوثائق من الإصدار الحالي هنا. لإنشاء الوثائق الحالية ، يمكن استخدام doxyfile المقدمة.
يتم وضع رمز التطبيق في App.c
يحتوي المستودع على تطبيق اختبار لأجهزة ATMEGA1284 التي تم استخدامها أثناء التطوير لاختبار جميع ميزات نظام التشغيل. يمكن استخدامه كمثال. بالإضافة إلى ذلك ، يتم توفير تطبيقات متعددة للاختبار تحت AutosarOS/test .
تم اختبار نظام التشغيل مع الأجهزة التالية:
يجب أن تعمل المعالجات الدقيقة الأخرى في عائلة ATMEGA مع الحد الأدنى من العمل المطلوب.
أثناء التطوير ، تم استخدام نظام قائم على تصحيح الأخطاء للتتبع لتسجيل تدفق البرنامج.
يمكن استيراد نقاط التتبع في استوديو ATMEL من ملف tracing.xml . لاحظ أن النقاط التتبع لـ ISRs ربما لن يتم تحميلها بشكل صحيح حيث يتم تعيينها على وظائف المستخدم خارج نظام التشغيل.
بالإضافة إلى ذلك ، يمكن تعيين نقطة tracepoint للبيانات لـ errorInfo.id (وصول الكتابة) إذا تم استخدام معلومات الخطأ. يمكن استخدام رسالة الطباعة التالية لإنشاء تعليقات في إخراج التتبع والتي تظهر ما يسمى خدمات نظام التشغيل:
# {currentTask};{isISR} called $FUNCTION
يجب أن يبدو التتبع المولد شيئًا كهذا:
#version 1.0
# INVALID_TASK;0 called OS_StartOS
898158796,Core_0,0,T,Idle,0,activate
898158921,Core_0,0,T,Task1,0,activate
898159328,Core_0,0,T,Task1,0,start
# Task1;0 called Events_SetEvent
# Task1;0 called Task_TerminateTask
898167984,Core_0,0,T,Task1,0,terminate
898169140,Core_0,0,T,Idle,0,start
تتبع الآثار "تنسيق تتبع أفضل" لـ OSEK ويمكن استيراده إلى بوصلة Trace Eclipse.
لاحظ أن الطوابع الزمنية يتم إنشاؤها على المضيف وليس الهدف! هذا يعني أنه لا يمكن الوثوق في التوقيت المطلق. لذلك يجب استخدام هذه الطريقة فقط لتتبع تدفق البرنامج/ترتيب التنفيذ.
-mrelax الذي قد يتم تنشيطه تلقائيًا بواسطة Atmel Studio عند تغيير الجهاز في إعدادات المشروع للتشغيل الصحيح لنظام التشغيل.GetAlarmBase() .