نواصل سلسلة من المقالات حول اختبار أتمتة النظم المدمجة. تشرح لك هذه المقالة كيفية دمج القدرة بسرعة وبشكل نسبي على التحكم في قدرة الجهاز قيد الاختبار من برنامج نصي للاختبار ، وكذلك الحصول على القدرة على محاكاة الضغط على الأزرار الميكانيكية في أمر من برنامج نصي للاختبار.
إذن ما لدينا:
- العشرات من الأجهزة المدمجة التي تحتاج فيها إلى اختبار الإصدار الجديد من FirmWare (لتكون أكثر دقة وتجميع البرامج الثابتة يوميًا)
- نظرًا لطبيعة إجراء التمهيد FW ، فقد تحتاج إلى إعادة تعيين الطاقة (ما يسمى وضع تنزيل البرنامج الثابت في وضع Power On Capture)
- أرغب في بعض النقاط المحددة في الوقت المحدد أثناء تنفيذ البرنامج النصي للاختبار في محاكاة الضغط على الأزرار الميكانيكية الموجودة على لوحة تصحيح نظام Embededed
لماذا قد تكون هناك حاجة النقطة 3؟ في حالتي ، تكون المهمة على النحو التالي - في حالة وجود استثناء خطير لتنفيذ التعليمات البرمجية ، "يستيقظ" النظام إلى حالة نصف ميتة لن يخرج منها حتى يتم إيقاف تشغيله (سبب آخر لإدارة الطاقة). ولكن الشيء الأكثر إثارة للاهتمام هو أنه إذا قمت في هذا الوضع بالضغط على الزر الميكانيكي المصمم خصيصا لهذا الغرض ، ما يسمى سجل الاستثناء - تصحيح الأخطاء المعلومات التي سيكون من الممكن محاولة لفهم في أي مكان حدث استثناء على التعليمات البرمجية.
ولهذا السبب بالتحديد ، من أجل التشغيل الآلي الفعال لتثبيت الاختبار ، أصبح من الضروري أن تكون قادرًا على إعادة ضبط مصدر الطاقة للجهاز ومحاكاة الضغط على الأزرار الميكانيكية الموجودة على لوحة التصحيح ، وبالتالي "حفظ" معلومات مهمة جدًا عن الاستثناء من فقدانها قريبًا. عاجلاً أم آجلاً ، سيحاول البرنامج النصي التجريبي إدراك عدم وجود استجابة من الجهاز إعادة تنشيطه عن طريق إعادة تعيين الطاقة.
استطرادا غنائيا صغيرا - في بعض الأحيان ، ستجري لعدة أسابيع وراء هذا الاستثناء بسبب ينشأ فقط من حين لآخر عندما تتلاقى جميع النجوم ولا يتم تلبية مجموعة من الشروط الأخرى. لذلك ، كل سجل التصحيح هذا مهم للغاية وضروري.
أظهر تحليل تصحيح لوحات الدارات الكهربائية أن الزر يغلق ببساطة خط GPIO المسحوب حتى +3.3 فولت على GND. لذا ، إذا كنت "لحام" للزر واستخدمت المرحل لإغلاق خط GPIO على الأرض ، فسيكون ذلك ما تحتاجه.
بعد ذلك ، نشأ سؤال حول اختيار جهاز / وحدة للتحكم تم طرح المتطلبات التالية عليها:
- الحد الأقصى لعدد المرحلات (تحتاج إلى جهازي كمبيوتر لكل جهاز ، وهناك العشرات من الأجهزة)
- وصول إيثرنت
- إدارة أوامر URL
- القدرة على نسخ وحجم النظام
بالتقليد ، توقفوا عن الوحدة الأثيرية في تتابع لورنت 128:

الوحدة ، بكل المقاييس ، جعلتنا سعداء: يمكننا إدارة 14 جهازًا في وقت واحد (مرحل واحد للسلطة ، والآخر بلمسة زر واحدة) باستخدام أوامر URL (ملائمة للغاية للغات النصية التي تتم بها كتابة التشغيل الآلي للاختبار).
يظهر الشكل التوضيحي للاتصال والاتصال في لوحة تصحيح الجهاز قيد الاختبار ووحدة التحكم في الشكل أدناه:

يبدو "لحام" لجهات اتصال زر ميكانيكي في مثال أحد الأجهزة المختبرة كما يلي:

الصيحة! الجزء الفني يتم. الشيء الوحيد المتبقي هو إضافة رمز لإجراءات الاختبار بحيث إذا لزم الأمر (قم بتنزيل صورة البرنامج الثابت بعد إعادة تعيين الطاقة أو تسجيل تصحيح الأخطاء بلمسة زر واحدة) ، يمكنك إعطاء الأمر لتشغيل / إيقاف تشغيل الترحيل المرغوب.
بناء جملة عناوين URL لأمر التحكم بسيط وواضح. على سبيل المثال ، من أجل تمكين الترحيل تحت الرقم 4 ، تحتاج إلى استخدام عنوان HTTP التالي:
http://192.168.0.101/cmd.cgi?psw=Laurent&cmd=REL,4,1
وهنا وظيفة بسيطة في بيرل تسمى من إجراء الاختبار الرئيسي إذا كنت بحاجة إلى "سحب" التتابع:
ألاحظ أن النظام يعمل بشكل موثوق للغاية دون تعطل ويتجمد. يعمل Laurent-128 و Laurent-112 المستخدم سابقًا (لمدة 12 مرحلات) لبضع سنوات دون إخفاقات وتوقفات ، مع مراعاة العمل اليومي.
وإليك مثال على هذا الاستثناء الذي تم تحديده أثناء الاختبارات باستخدام مجموعة برامج ثابتة يومية غير عادية. بعد أن أصبح من الواضح للنص البرمجي للاختبار أنه لا توجد إجابة من الجهاز على المنفذ التسلسلي (أي "مات") ، جرت محاولة للضغط على الزر الميكانيكي للطوارئ لتسجيل تصحيح الأخطاء وهذا ناجح - تم تزويد تقرير الاختبار النهائي الذي تم إنشاؤه بواسطة البرنامج النصي للاختبار نفسه بمعلومات مفيدة من مكان تعطل النظام المحتمل لمزيد من التحليل بواسطة فريق التطوير:
