قالب QBS لبرمجة ميكروكنترولر في QtCreator باستخدام مثال وحدات تحكم Milander

منذ وقت ليس ببعيد ، ساعد في تطوير ميكروكنترولر لشركة واحدة غير معروفة - ميلاندر. بيئة تطوير Keil الرسمية. لم يعجبني ذلك ، لكن المعالج يعتمد على بنية شركة ARM غير معروفة ، مما يعني وجود مترجم gcc له. وحيث يوجد gcc ، يمكن أيضًا استخدام QtCreator كواجهة تطوير متكاملة.

الحالات السيراميك المعدنية جميلة

مقدمة


في البداية ، كانت المهمة بسيطة للغاية. ابحث عن الملفات التي تحتاجها لإنشاء المشروع. قم بتنفيذ مشروع تم تنفيذه بالفعل ضمن stm32f407 وقم بمعالجته باستخدام ملف. ومع ذلك ، أثناء تنفيذ مثل هذه الخطة البسيطة ، كانت هناك رغبة في إنشاء مشروع أكثر إثارة للاهتمام مما كان يعتقد في البداية.

تدريب


تحتاج أولاً إلى تنزيل برنامج التحويل البرمجي ومصحح الأخطاء للميكروكنترولر استنادًا إلى مجموعات سلسلة Cortex-M. أحدث نسخة هنا [1] . ستحتاج أيضًا إلى QtCreator ، يمكن للأشخاص غير البطيئين أن يترجموا من المصدر ، ويمكن أن يحصل البطيء هنا على الكسل [2] . نحن بحاجة أيضا إلى openocd وامض وتصحيح متحكم. [3] مترجم دول مجلس التعاون الخليجي ل Cortex-M على موقع ARM [9]

قم بتثبيت البرنامج المحدد ، وكذلك جميع التبعيات حسب الضرورة. ثم ننتقل إلى إعداد البيئة.

وضع QtCreator'a في الصور
إذا لم يتم تمكينه ، فقم بتمكين الدعم المعدني في Help -> About Modules
إضافة المجمعين

ز ++



دول مجلس التعاون الخليجي



إضافة مصحح أخطاء gdb



نحن إنشاء ملف تعريف تصحيح openocd ، وهذا ليس عكاز كبير. يجب تحديد المسار إلى ملف التكوين مطلق. الملف لكل متحكم مختلف ، وهذا يقدم بعض المضايقات.



وضع المعدن العاري



ووضع كل شيء في مجموعة واحدة



مكتبات متحكم


لم ينتج البحث السريع على موقع Milander عن تجميع رسمي للمكتبات للعمل مع الأجهزة الطرفية وجوهر المتحكم الدقيق. يدعم التجميع gcc ويقع في جيثب [4] . ذهبت المجموعة إلى المشروع النهائي لـ stm32f407 بسهولة تامة ، وبعد تثبيته في مكانين ، كان حريصًا بالفعل على وميض وحدة التحكم الصغيرة. تحرير ملف التكوين openocd والآن كل شيء وامض. وهناك القليل من العمل قفال وتصحيح الأخطاء يعمل بالفعل. ويبدو أن هذا كل شيء - انتصار سهل. لكن المكتبات تدعم عدة ميكروكنترولر. وتستخدم ميكروكنترولر على النوى المختلفة أيضا المكتبات الطرفية المختلفة. كانت هناك فكرة على الفور لإنشاء مشروع واحد بحيث يمكنك بسهولة اختيار المتحكم المطلوب ، وستحدد البيئة نفسها المكتبات الأساسية والأجهزة الطرفية الضرورية. جاءت هذه الفكرة لي في الوقت الذي أتقنت فيه stm32f407. لا يمكن تفويت الفرصة لإدراك مثل هذه الفكرة المثيرة للاهتمام.

أعطى بضع ليال التقاط في المكتبات و qbs [5] نتيجة إيجابية. كان من الممكن تكوين تجميع للميكروكونترولر التالية: MDR1901VC1T (19011) ، MDR1986VE1T (1986 BE1T) ، MDR1986VE3 (1986 BE3) ، MDR1986BE4 (1986 BE4x) ، MDR1986VE8T (1986 BE8x) ، MDR1986VE8T. على الرغم من أن وصف المكتبات المصدر لا يدعم MDR1986VE8T ، كان هناك جزء من المكتبة الأساسية وملفات المكتبة الطرفية. بعض ملفات الرأس التي تم العثور عليها في مستودع ARM كانت مفقودة [6] .

المشروع النهائي


كانت النتيجة قالبًا متواضعًا إلى حد ما يسمح لك بكتابة مشاريع لعدة ميكروكنترولر. يكمن القالب على جيثب [7] . شهدت المكتبة المصدر عددًا من التغييرات التجميلية. على الرغم من أنني كنت أرغب في الحفاظ على التوافق مع المشروع الأصلي ، إلا أنني اضطررت إلى العمل [8] وفقدت التوافق ، لكن هذا يعد رسومًا على التنوع. يمكنك تنزيل المشروع على النحو التالي.

git clone https://github.com/WicRus/emdr1986x-std-per-lib-qbs.git --recursive 

يمكنك أيضًا استنساخ مشروع مباشرةً من QtCreator عن طريق تحديد عنوان المخزون ووضع علامة متكررة.

تربية


والنتيجة الرئيسية هي قالب عالمي مع دعم لعدة ميكروكنترولر مع مختلف المكتبات الأساسية والمحيطية. ومع ذلك ، كان هناك عدد من النقاط التي تجدر الإشارة إليها:

  • كان من الممكن التحقق من البرامج الثابتة وتصحيح الأخطاء فقط على MDR1986VE1T.
  • تم العثور على ملفات التكوين openocd الهدف فقط من أجل MDR1986VE1T و MDR1986VE9x. بالنسبة لبقية وحدات التحكم ، يجب أن تأخذ أو تكتب في مكان ما بنفسك.
  • تم تجميع مكتبات MDR1986VE8T دون فهم كثير لهذه المشكلة. من الضروري التحقق من العملية الصحيحة.
  • تم تغيير مكتبات المصدر بشكل كبير. دمج القضايا المحتملة.
  • عند إنشاء MDR1901VC1T ، MDR1986BE4 ، MDR1986VE9x ، يتم إصدار تحذير حول مكتبات kernel القديمة. من الضروري تحديث مكتبات kernel عن طريق القياس باستخدام MDR1986VE8T ، ثم التحقق من العملية الصحيحة.
  • ميزة إنشاء تكوين openocd. لكل نوع فردي من متحكم ، قد تحتاج إلى مجموعة بناء منفصلة في QtCreator.

مراجع

الحذر ، وصلات مفتوحة في هذه النافذة.

0. الأساس لموقع KDPV ميلاندر
1. https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
2. https://www.qt.io/download-qt-installer
3. http://openocd.org
4. https://github.com/eldarkg/emdr1986x-std-per-lib
5. https://doc.qt.io/qbs/
6. https://github.com/ARM-software/CMSIS_5
7. https://github.com/WicRus/emdr1986x-std-per-lib-qbs
8. https://github.com/WicRus/emdr1986x-std-per-lib
9. https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-rm/downloads
تاريخ التعديلات.
09/17/19 تمت إضافة رابط إلى GNU Arm Embedded Toolchain.

Source: https://habr.com/ru/post/ar467455/


All Articles