مرحبا ، زملائي المبرمجين ، والأجهزة وجميع الذين يتعاطفون معهم. أرغب في تقديم نظرة عامة مختصرة على إمكانيات Qt Creator IDE بالاقتران مع نظام إنشاء QBS فيما يتعلق ببرمجة المتحكم الدقيق. لمن هذا الموضوع مثير للاهتمام ، مرحبا بكم في القط.
فقط في اليوم الآخر ، بهدوء وبشكل غير محسوس ، تم إصدار الإصدار
Qt Creator 4.10 ، مما أضاف بعض التحسينات للعمل مع المتحكمات الدقيقة (بالأشخاص العاديين - أجهزة "baremetal"). يدمج هذا الإصدار من Qt Creator نظام
إنشاء QBS 1.14 ، والذي يتضمن أيضًا تحسينات جديدة. سيتم مناقشة بعض هذه التحسينات أدناه.
تحسينات في Qt Creator
تتوفر كل هذه التحسينات فقط عند تمكين المكون الإضافي BareMetal ، والذي يتم تنشيطه من خلال القائمة "مساعدة -> حول الإضافات -> دعم الجهاز -> BareMetal".
- يتم الآن دعم ثلاثة برامج ترجمة جديدة ، يتم تقديم المعلومات الأساسية عنها في الجدول أدناه:
ملاحظة: تجدر الإشارة إلى أن المنتجات من IAR EW و KEIL للمباني المختلفة يتم توفيرها بواسطة حزم منفصلة يجب تثبيتها بشكل مستقل. في الاختلاف ، على سبيل المثال ، من برنامج التحويل البرمجي SDCC الذي يدعم العديد من البنى في وقت واحد
- الآن يتم اكتشاف هذه المترجمات الجديدة تلقائيًا في علامة التبويب "أدوات -> خيارات -> مجموعات -> مترجمون -> اكتشاف تلقائي".
على سبيل المثال ، يبدو لي كما يلي:

ملاحظة: كما ترون ، بالنسبة لـ C ++ ، لا يوجد مترجم KEIL لـ MCS51 ، وهذا صحيح ، لأن يعتمد هذا المحول البرمجي فقط C. أيضاً ، سيتم فقد برنامج التحويل البرمجي SDCC هنا لنفس السبب.
- من الممكن أيضًا إضافة المترجمين الجدد يدويًا من خلال القائمة "أدوات -> خيارات -> مجموعات -> مترجمون -> إضافة":

- للمترجم ، سيتم تحديد ABI الخاص به (الهندسة المعمارية والتنسيق وعرض الكلمة) تلقائيًا. يمكن الاطلاع على المعلومات حول هذا ببساطة عن طريق النقر على المترجم.
على سبيل المثال ، بالنسبة إلى IAR EW و architecture 8051 (MCS51) ، يبدو الأمر كما يلي:

ملاحظة: في هذه الحالة ، تم اختيار برنامج التحويل البرمجي الذي تم اكتشافه تلقائيًا ، وبالتالي فإن حقول ABI غير نشطة هنا. ولكن عند إضافة المترجم يدويًا ، يمكن للمستخدم تحديد ABI الصحيح ، إذا تم تحديده بشكل غير صحيح لسبب ما.
- للمترجم ، سيتم الكشف عن جميع وحدات الماكرو الخاصة به تلقائيًا. وبالتالي ، سيتم تسليط الضوء عليها بشكل صحيح في محرر الكود.
ملاحظة: الاستثناء هو فقط الكلمات الأساسية لبعض المترجمين (على سبيل المثال ، للعمارة 8051) ، والتي سيتم تسليط الضوء عليها مع تحذير. لكن هذه قصة أخرى.
- للمترجم ، سيتم الكشف عن الدلائل مع ملفات رأسه تلقائيا. وبالتالي ، سيتم تسليط الضوء عليها بشكل صحيح في محرر الكود.
- يتم تطبيق موزعي الأخطاء والتحذيرات الخاصة بهذه المجمعات الجديدة ، والتي يتم عرضها في لوحة المشاكل.
تحسينات في QBS
سيكون QBS جزءًا لا يتجزأ من هذا الاستعراض ، لذلك من المنطقي التحدث عن تحسيناته:
- إضافة دعم لهذه المجمعين الجدد (بعضها منذ الإصدار 1.13).
- نفذت القدرة على الكشف تلقائيا المجمعين المثبتة وإنشاء ملفات تعريف. ما هي أداة qbs-setup-toolchains المستخدمة في.
في حالتي ، يبدو الأمر كما يلي:
c:\Qt-meta\Tools\QtCreator\bin>qbs-setup-toolchains.exe --detect ... Trying to detect IAR toolchains... Profile 'iar-arm' created for 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.3/arm/bin/iccarm.exe'. Profile 'iar-mcs51' created for 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0/8051/bin/icc8051.exe'. Profile 'iar-avr' created for 'C:/Program Files (x86)/IAR Systems/Embedded Workbench 8.0/avr/bin/iccavr.exe'. Trying to detect KEIL toolchains... Profile 'keil-mcs51' created for 'C:/Keil_v5/C51/BIN/c51.exe'. Profile 'keil-arm' created for 'C:/Keil_v5/ARM/ARMCC/bin/armcc.exe'. Trying to detect SDCC toolchains... No SDCC toolchains found. ...
لمعرفة ما تم اكتشافه هناك ، يمكنك استخدام الأداة المساعدة qbs-config-ui GUI.
في حالتي ، يبدو الأمر كما يلي:

ميزات إنشاء المشروع
من المهم أن يكون لديك فكرة وأن تكون قادرًا على ملء خصائص المشروع لوحدات
cpp و
qbs بشكل صحيح.
دعونا نتطرق إلى أهمها وننظر فيها بمزيد من التفصيل:
لتحديد ملفات البرنامج النصي للرابط ، هناك علامة خاصة "linkerscript" ، والتي يجب عليك استخدامها ، على سبيل المثال:
Group { name: "Linker Scripts" fileTags: ["linkerscript"] files: ["cfg3soim.xcl", "cfgcan128.xcl"] }
ملاحظة: السبب هو أنه بالنسبة للمترجمين المختلفين ، هناك خيارات مختلفة لتسمية هذه الملفات. بالنسبة لدول مجلس التعاون الخليجي نفسها ، يمكن أن تكون ملفات ذات امتدادات * .ld ، * .x ، * .xn ، * .xbn ، وما إلى ذلك (ماذا يمكننا أن نقول عن المترجمين الآخرين ...). لذلك ، فقد تقرر عدم عناء وضع علامات على جميع امتدادات الملفات الممكنة لمجمعين معينين ، ولكن ببساطة استخدام علامة linkerscript للغرض والوضع المقصودين.لمعرفة كيف يعمل كل شيء ، يوفر QBS مجموعة من
الأمثلة البسيطة التي "تثير" ساق فقط وتومض مؤشر LED.
ما هو مع تصحيح الأخطاء
لسوء الحظ ، فإن وضع التصحيح أمر محزن. تستخدم المنتجات (IDEs) IAR EW و KEIL مصححاتهما ، لكن منذ ذلك الحين نظرًا لأن هذه المنتجات مملوكة ، فمن غير الممكن الحصول على وصف لعملية تشغيل بروتوكولات مصحح الأخطاء هذه. الخيار الوحيد هو تجربة هندسة الإضافات الإضافية لـ Eclipse (على سبيل المثال ، يوفر IAR EW هذه الإضافات) ، ولكن هذا يتطلب حافزًا خطيرًا.
لكنني سأكون سعيدًا بعض الشيء إذا قلت أنه بالنسبة لبنية ARM يمكنك استخدام مصحح أخطاء GDB. على الأقل كان هذا الأمر مفيدًا بالنسبة لي من أجل IAR EW (ولكن ، لم ينجح شيء ما مع KEIL ، ربما يجب الإشارة إلى الرابط الإضافي هناك).
ما التالي
أنا هنا مفسد قليلاً ، سأقول أنه في الإصدارات القادمة (لا أعرف أي منها) ، يجب إضافة بنيات STM8 و MSP430 ، وكذلك في QBS للمولدات سيتم تنفيذها في مشاريع IAR EW و KEIL الأصلية (والتي ستتيح ، على سبيل المثال ، تصحيح المشاريع).
في هذه المذكرة ، أنهي قصتي ، شكراً لجميع الذين سوف ينتبهون إلى هذا الاستعراض.