N108 هو نظام تشغيل كامل في الوقت الفعلي مكتوب لرقاقة TM4C123 ، مع دعم لشاشات LCD الخارجية. تم كتابة نواة نظام التشغيل من الصفر. يعتمد نظام التشغيل على بعض الأجهزة الخارجية ليعمل بشكل صحيح ، ولكن يمكن تعديله بسهولة ليكون مكتفيًا ذاتيًا. للحصول على قائمة بموارد الأجهزة الخارجية اللازمة ، يرجى الاطلاع أدناه.
يتم تفاعل نظام التشغيل من خلال قذيفة تشبه يونيكس. تستخدم Shell الاتصالات التسلسلية من خلال UART0 للوحة لإرسال الأوامر التي تكتبها إلى نظام التشغيل N108. للتفاعل مع نظام التشغيل ، قم بتوصيل TM4C123 Launchpad بجهاز الكمبيوتر الخاص بك من خلال USB وإطلاق واجهة تسلسلية-مثل CoolTerm لنظام التشغيل Mac أو Putty لنظام التشغيل Windows-والتواصل مع المنفذ التسلسلي الذي تستخدمه. من هناك ، يجب أن تكون قادرًا على رؤية موجه N108 Shell. يمكنك إصدار أوامر من هذه الواجهة.
لدى N108 دعمًا كاملاً لتحميل العمليات ، لذلك يمكنك تجميع برامج TM4C123 الخاصة بك بشكل مستقل باستخدام برنامج التشغيل هذا ، دون الحاجة إلى إعادة توحيد نظام التشغيل مع برنامجك. لاستخدام هذه الميزة ، قم بتجميع برنامجك المستقل باستخدام Keil Uvision (أو أي مترجم ذراع مضمن آخر) وإسقاط ملف ELF في بطاقة SD منسقة FAT32. قم بتوصيل بطاقة SD إلى TM4C123 ، وقم بتشغيل نظام التشغيل. من قذيفة نظام التشغيل ، اكتب "الإطلاق" ، حيث "" هو اسم ملف ARM ELF لديك في بطاقة SD. يجب أن يطلق نظام التشغيل البرنامج والبدء في التنفيذ.
يدعم نظام التشغيل استدعاء نظام واحد: OS_DisplayMessage. تتيح لك المكالمة طباعة السلاسل إلى LCD ST7735 المرفقة باللوحة. يتطلب الأمر 4 معلمات لتحديد المكان الذي تريده على الشاشة لعرض اللوحة النص. يمكن إضافة المزيد من المكالمات بسهولة عن طريق تعديل صفيف Const elfsymbol_t static [] الموجود تحت OS_CRITICAL/OS.C ، وإضافة مؤشر إلى وظيفتك الجديدة.
أفكر في إضافة المزيد من مكالمات النظام إلى هذا المجال للسماح بالوصول الأسهل لموارد TM4C SOC (بدلاً من الموارد الخارجية فقط). TBD.
يعتمد نظام التشغيل ، خارج المربع ، على ثلاث قطع من الأجهزة الخارجية للعمل بشكل طبيعي: رقاقة خارجية لواجهة برنامج التشغيل التسلسلي مع أوامر إصدار (مثل الكمبيوتر الشخصي) ، وشاشة LCD ، وقارئ بطاقة SD. يتم استخدام شاشة LCD كمصدر إخراج (جنبًا إلى جنب مع المنفذ التسلسلي) ، ويتم استخدام قارئ بطاقة SD بواسطة نظام الملفات وعملية معالجة لتحميل وتنفيذ العمليات الخارجية. للحصول على قائمة أوامر التواصل التسلسلي ، يرجى النظر أدناه. أنا شخصياً استخدمت ST7735 لأنه يسمح بتواصل LCD المتوافق مع SSI و SD ؛ يتم تضمين التخطيطي لذلك أدناه.
تم تصميم نظام التشغيل هذا للاختلافات من رقاقة ARM TM4C123. ومع ذلك ، يتم تخزين معظم طبقة تجريد الأجهزة تحت OS_CRITICAL/HARDWAREMANAGER. يمكن تبديل هذه الوحدة بسهولة بالغة للسائقين الذين يتم دعمهم على الأجهزة الأخرى. يستخدم نظام التشغيل أدوات الأجهزة التالية لتشغيله الأساسي:
Uart:
PLL:
GPIO:
SSI:
تم تصميم الرمز لاستخدامه مع استوديو Code Code Code Texas Instruments. ما عليك سوى استنساخ المستودع ، واستيراد المشروع في مساحة عمل CCS الخاصة بك. يجب أن يبني المشروع الخفافيش ، مع عدم الحاجة إلى عمل إضافي.
سيومض نظام التشغيل هذا خارج الصندوق على TI TM4C123 Launchpad.
يستخدم نظام التشغيل LCD ST7735 الخارجية لأمرين: كـ LCD وكقارئ بطاقة SD خارجي لنظام الملفات الخاص به. تم استخدام نظام التشغيل الخاص بي أيضًا لأغراض أخرى - مثل التواصل مع المستشعرات - لذا يرجى تجاهل أي اتصالات غريبة في الصورة الثانية. المهم هو توصيل ST7735.
فيما يلي المخططات حول كيفية توصيل هذا إلى منصة الإطلاق الخاصة بك: 

يتم التواصل الأساسي بين نظام التشغيل (الذي يعمل على اللوحة) من خلال منفذ UART التسلسلي على متن الطائرة. يمكنك استخدام أي برنامج طرفي على جهاز الكمبيوتر الخاص بك-مثل Cooledge على Mac أو PuTTY على Windows-لإرسال هذه الأوامر إلى مترجم OS بمجرد اكتمال التمهيد.
خارج الصندوق ، يدعم نظام التشغيل الأوامر التالية ، كما يظهر في shell/shell.c:
char* commandFormat[] =
{
"help",
"runproc <processname>"
}
العظماء للغاية ، ولكن الفكرة هنا هي إضافة أوامرك الخاصة والواجهة الخاصة بك مع بقية نظام التشغيل. يساعد المساعدة بشكل أساسي في هذه القائمة نفسها ، بينما يقوم RunProc بتحميل عملية خارجية (مخزنة في بطاقة SD التي تم إدراجها في لوحة Breakout ST7735) ويبدأ في تنفيذ هذا البرنامج. أثناء الخمول ، يعمل المترجم الفوري فقط.