كان نظام التشغيل هذا إنشاء أثناء مهمة الفصل. الكود تجريبي وغير مختبر للغاية ، ولكن يجب أن يعمل.
يستخدم نظام التشغيل جدولة Robin جولة بسيطة للغاية ويقوم بمفتاح سياق كل دورة ساعة 262144. يمكن التحكم في هذا السلوك عن طريق تعيين OCR0A و Prescalers of timer0. لا يمكنك استخدام Timer0 في التطبيق الخاص بك ، ويستخدمه الجدولة بشكل حصري.
ما عليك سوى وضع الملفات التي تبدأ بنظام os في مشروعك. تحرير os_config.h لتناسب احتياجاتك. من الرئيسي الخاص بك ، اتصل بـ os_init() وإنشاء مهامك باستخدام os_task_add(task_func, task_data) . لبدء الجدولة ، اتصل بـ os_run() . لاحظ أن هذه المكالمة لا تُرجع أبدًا ، لذلك لن يتم تنفيذ الكود اللاحق.
يرجى ملاحظة أنه قد لا تنتهي المهام حاليًا ولا يجب إنهاءها باستخدام os_current_task_kill() . للوصول إلى الفراغ الممنوح إلى os_task_add ، اتصل بـ os_current_task_get_data() .
يرجى ألا تحاول استخدام التراجع أو مداخن المكالمات العميقة ، حيث أن لديك مكدسًا محدودًا للغاية. لا يجوز لك استخدام Timer0 ، لأنه يستخدم للجدولة! لا تحاول إعادة تمكين المقاطعات عند استخدام إجراءات خدمة المقاطعة المخصصة!
يمكن تكوين نظام التشغيل في وقت الترجمة باستخدام ما يلي macros في os_config.h :
OS_STACK_SIZE في حجم المكدس لمهمة واحدة .OS_TASK_COUNT في عدد المهام التي يمكن إنشاؤها في وقت واحد. حقوق الطبع والنشر 2020 ستيفان برونر
يتم منح الإذن بموجب هذا ، مجانًا ، لأي شخص يحصل على نسخة من هذا البرنامج وملفات الوثائق المرتبطة به ("البرنامج") ، للتعامل في البرنامج دون تقييد ، بما في ذلك على سبيل المثال لا الحصر حقوق استخدام الأشخاص ونسخها ودمجها ودمجها وتوزيعها وتوزيعها على ما يلي:
يجب إدراج إشعار حقوق الطبع والنشر أعلاه وإشعار الإذن هذا في جميع النسخ أو الأجزاء الكبيرة من البرنامج.
يتم توفير البرنامج "كما هو" ، دون أي ضمان من أي نوع ، صريح أو ضمني ، بما في ذلك على سبيل المثال لا الحصر ضمانات القابلية للتسويق واللياقة لغرض معين وعدم الانفجار. لا يجوز بأي حال من الأحوال أن يكون المؤلفون أو حاملي حقوق الطبع والنشر مسؤولاً عن أي مطالبة أو أضرار أو مسؤولية أخرى ، سواء في إجراء عقد أو ضرر أو غير ذلك ، ناشئة عن أو خارج البرنامج أو الاستخدام أو غيرها من المعاملات في البرنامج.