تعريفات الأجهزة الطرفية في البرمجيات المضمّنة
كود يتحدث إلى حساس أو شاشة أو متحكم محرك أو وحدة راديو عبر I2C أو SPI أو UART، متعاملاً مع التوقيت وحالات الخطأ التي تصفها ورقة البيانات.
إنترنت الأشياء والأنظمة المدمجة والروبوتات
برمجيات ثابتة تعمل مباشرة على متحكم دقيق: تعريفات حساسات ومشغلات، نظام تشغيل بزمن حقيقي، وميزانية طاقة تقرر مدة عمر البطارية.
تُوظف الشركات مهندس برمجيات مضمّنة في دبي حين يحتوي منتج على متحكم دقيق ويحتاج كوداً مكتوباً لتلك الشريحة تحديداً، لا لخادم أو متصفح. يشمل ذلك قفلاً ذكياً يقرأ حساس بصمة، أو متتبع أسطول يُبلّغ الموقع عبر مودم خلوي، أو قطعة معدات مختبرية تقرأ حساساً ألف مرة في الثانية. يقع العمل تحت التطبيق أو الموقع، أقرب إلى الإلكترونيات، ويُحكَم عليه بمعايير مختلفة: ذاكرة تُقاس بالكيلوبايت لا الجيجابايت، وتوقيت يُقاس بالميكروثانية، وبطارية يجب أن تدوم أشهراً لا مقبساً لا ينفد أبداً.
يقضي مهندس برمجيات مضمّنة في دبي معظم وقته في ثلاثة أمور: التحدث إلى العتاد عبر التعريفات، وجدولة العمل بحيث لا يتأخر ما يهم، والإبقاء على استهلاك الطاقة منخفضاً بما يكفي ليحقق المنتج هدف عمر بطاريته. يظهر الخطأ في أي منها كجهاز يتجمد، أو يستنزف بطاريته خلال الليل، أو يفوّت قراءة حساس في أسوأ لحظة، لذا تركز أسئلة التقييم لاحقاً في هذه الصفحة على هذه المجالات تحديداً.
ما يبنيه هذا الدور
هذا نوع العمل الذي تُسمّيه شركة حين تريد توظيف مهندس برمجيات مضمّنة في دبي لجهاز محدد.
كود يتحدث إلى حساس أو شاشة أو متحكم محرك أو وحدة راديو عبر I2C أو SPI أو UART، متعاملاً مع التوقيت وحالات الخطأ التي تصفها ورقة البيانات.
مهام وطوابير ومعالجات مقاطعة منظمة في FreeRTOS أو Zephyr بحيث لا تُحجَب مهمة حساسة للوقت، مثل قراءة حساس، بواسطة أبطأ منها، مثل الكتابة إلى الفلاش.
أوضاع سبات ومصادر إيقاظ وتغييرات سرعة الساعة تتيح لجهاز يعمل بالبطارية البقاء بميكروأمبيرات معظم الوقت والاستيقاظ كاملاً فقط عند وجود عمل حقيقي.
القطعة الصغيرة من الكود التي تبدأ قبل التطبيق الرئيسي وتقرر تشغيله كما هو أو تحميل نسخة أحدث.
طريقة لرؤية ما كان يفعله الجهاز حين حدث خطأ، لأن عطلاً ميدانياً عادة لا يمكن إعادة إنتاجه على منضدة.
سلوك المنتج الفعلي المبني فوق التعريفات ونظام التشغيل، مثل تقرير متى يُرسَل البيانات أو يُطلَق إنذار.
المهارات المهمة
أدوات تظهر في برمجيات ثابتة حقيقية في الإنتاج.
| المهارة أو الأداة | كيف يبدو الجيد | لماذا تهم |
|---|---|---|
| C، وغالباً C++ | مرتاح مع المؤشرات وتخطيط الذاكرة وكود آمن للمقاطعات، لا C++ على مستوى التطبيق فقط | معظم سلاسل أدوات ومكتبات مورّدي المتحكمات الدقيقة مكتوبة بلغة C |
| نظام تشغيل بزمن حقيقي مثل FreeRTOS أو Zephyr | صمم هيكل مهام وطوابير من الصفر، لا مجرد تعديل مشروع قائم | تصميم نظام تشغيل بزمن حقيقي سيئ الهيكلة يسبب مواعيد نهائية فائتة يصعب تشخيصها لاحقاً |
| قراءة ورقة البيانات ومستوى السجلات | يستطيع الانتقال من دليل مرجعي لشريحة إلى كود تعريف عامل دون عيّنة من المورّد كعكاز | لكل عائلة متحكمات دقيقة أجهزة طرفية مختلفة، فهذه المهارة تنتقل حتى حين لا تنتقل الشريحة |
| التصحيح عبر JTAG أو SWD | يضع نقاط توقف ويفحص السجلات ويتتبع معالجات المقاطعة على عتاد حقيقي | تظهر أخطاء البرمجيات المضمّنة غالباً على الجهاز الفعلي فقط، لا في محاكي |
| التحليل الساكن ومعايير الكود | يستخدم أداة فحص أو معياراً مثل MISRA C على أي شيء قريب من السلامة، ويستطيع شرح سبب وجود القاعدة | إصلاح أخطاء البرمجيات الثابتة مكلف بمجرد أن تُشحن آلاف الوحدات |
ينشر كل من FreeRTOS، الذي تصونه Amazon Web Services، ومشروع Zephyr التابع لمؤسسة Linux Foundation توثيقه الخاص عن جدولة المهام وهيكل التعريفات، وهو ما يستحق مقارنته بما يصفه مرشح في مقابلة.
طرق العمل معنا
يناسب معظم عمل البرمجيات المضمّنة إما ترتيباً متفرغاً أو مشروعاً محدد النطاق. يناسب مهندس متفرغ منتجاً لا يزال قيد التطوير النشط، حيث تستمر ميزات جديدة وإصلاحات أخطاء بالظهور بعد الإطلاق الأول. يناسب مشروع محدد النطاق عملاً معرّفاً، مثل نقل برمجيات ثابتة قائمة إلى شريحة جديدة أو إضافة تعريف لحساس جديد، بنقطة واضحة يُسلَّم فيها الكود مع توثيقه. يناسب دعم التوظيف شركة تبني فريق عتاد داخلياً وتريد مساعدة في إيجاد وتقييم شخص بخلفية متحكم دقيق ونظام تشغيل بزمن حقيقي مناسبة. تناسب الاستشارة فريقاً لديه برمجيات ثابتة مكتوبة بالفعل، أحياناً من مقاول غادر، ويريد رأياً ثانياً خبيراً حول هيكلها قبل البناء فوقها.
تقييم مرشح
أسئلة تفصل خبرة حقيقية على مستوى الشريحة عن خلفية برمجيات عامة.
أياً كان الطريق الذي تسلكه لتوظيف مهندس برمجيات مضمّنة في دبي، تنطبق هذه الفحوص سواء أجريت المقابلة بنفسك أو طلبت منا إجراءها كجزء من دعم التوظيف.
لا مثالاً منسوخاً من المورّد. اسأل أي سجلات ضبط، ولماذا، وماذا حدث حين لم يتصرف الجهاز الطرفي كما هو موثق.
التسجيل التسلسلي ليس متاحاً دائماً على جهاز يعمل بالبطارية أو حساس للتوقيت، فاسأل ماذا يفعل حين لا يكون متاحاً.
اطلب منه رسم كيف سيقسّم عمل جهاز خيالي إلى مهام، ولماذا تحصل مهمة معينة على أولوية أعلى.
مرشح شحن منتجاً يعمل بالبطارية سيملك رقماً حقيقياً وقصة حقيقية عن مكان ذهاب الطاقة.
اسأل ماذا يمكن وماذا لا يمكن فعله بأمان داخل معالج مقاطعة، سؤال يفصل بسرعة المرشحين الأقوياء عن الضعفاء.
الشهادات
لا توجد رخصة واحدة معترف بها على نطاق واسع لعمل البرمجيات المضمّنة، فانظر إلى الدليل بدلاً من ذلك.
لا يُجري مصون FreeRTOS ولا مشروع Zephyr امتحان اعتماد نستطيع التحقق منه، ولا نزعم أن فريقنا يحمل أي شهادة كهذه. تجري بعض شركات الشرائح تدريبها الخاص أحياناً، وهو أضيق ويقل قيمة عن الخبرة الفعلية بالشحن. هذا سبب آخر لتوظيف مهندس برمجيات مضمّنة في دبي بناءً على الدليل لا الشهادة.
تعريف عامل تستطيع قراءته، وإجابة واضحة عن سلامة المقاطعات، وقصة حقيقية عن ميزانية طاقة أو عطل ميداني تخبرك أكثر بكثير من شهادة إتمام دورة عند توظيف مهندس برمجيات مضمّنة في دبي.
اعتبارات الإمارات
ذات صلة بمجرد أن يغادر الجهاز المنضدة.
ينبغي لأي من يختار توظيف مهندس برمجيات مضمّنة في دبي لمنتج متصل أن يطرح امتثال الراديو مبكراً لا متأخراً. إذا كانت البرمجيات الثابتة التي يكتبها مهندسك المضمّن تعمل على جهاز به أي راديو، مثل بلوتوث أو Wi-Fi أو مودم خلوي، فسيحتاج المنتج النهائي تسجيلاً لدى الهيئة العامة لتنظيم الاتصالات والحكومة الرقمية قبل بيعه أو استخدامه في الإمارات، وهي عملية تدرجها TDRA ضمن خدمتها الخاصة بالمعدات المعتمدة. هذه خطوة اعتماد واختبار، لا ميزة برمجيات ثابتة، لكنها تؤثر في اختيارات الوحدة والهوائي الآمنة مبكراً في التطوير، فاطرحها قبل قفل التصميم.
تقع هذه الصفحة ضمن فئة إنترنت الأشياء والأنظمة المدمجة والروبوتات لدينا، جزء من قسم توظيف مطورين في دبي الأوسع. إن كان العمل يتمحور أكثر حول بناء صورة لينكس مخصصة بدلاً من برمجيات ثابتة على المعدن العاري أو نظام تشغيل بزمن حقيقي، تغطي صفحة مطور الأنظمة المدمجة لدينا ذلك بدلاً من ذلك. يُغطى الإعداد المبكر على عتاد جديد كلياً في صفحة مطور البرمجيات الثابتة لدينا، والعمل المستمر على التحديث والأمن والاعتماد في صفحة مهندس البرمجيات الثابتة لدينا. إن احتاج جهازك معالجة بيانات قريبة من مكان توليدها بدلاً من إرسال كل شيء للسحابة، راجع صفحة مهندس حوسبة الحافة لدينا، ولمنتج بحساسات متصلة تُبلّغ لوحة معلومات، قد تناسب صفحة مطور إنترنت الأشياء لدينا أكثر.
إجابات واضحة
تتداخل المسميات عملياً وتستخدمها شركات مختلفة بشكل مختلف. في هذا الموقع، نتعامل مع عمل البرمجيات الثابتة كأول وأقرب طبقة للسيليكون في جهاز جديد، وهندسة البرمجيات المضمّنة كالمهمة المستمرة لبناء منطق التطبيق والتعريفات ومهام نظام التشغيل بزمن حقيقي التي تعمل فوقها. أخبرنا ماذا تبني وسنطابق مجموعة المهارات الصحيحة.
يحتاجون قراءة ورقة بيانات ومخطط تخطيطي بشكل جيد بما يكفي للتحدث مع مهندس عتاد عن وظائف الأطراف ومستويات الجهد والتوقيت، لكنهم ليسوا عادة من يصمم لوحة دارة. في فريق صغير يؤدي الشخص نفسه أحياناً كلا الأمرين، ويستحق السؤال عن ذلك مباشرة.
غالباً ما يعمل جهاز بسيط بمهمة أو مهمتين جيداً على المعدن العاري، دون نظام تشغيل إطلاقاً. يكسب نظام تشغيل بزمن حقيقي مثل FreeRTOS أو Zephyr تكلفته بمجرد أن تتنافس عدة مهام على المعالج، وتحتاج توقيتاً يمكن التنبؤ به، أو تريد شبكات وأنظمة ملفات جاهزة كمكونات.
نعم. الكثير من العمل المضمّن في دبي هو صيانة أو توسيع منتج شُحن بالفعل، وعادة ما يبدأ بمهندس يقرأ الكود القائم وسلسلة الأدوات قبل كتابة أي شيء جديد.
تبقى C الخيار الافتراضي على متحكمات دقيقة محدودة الموارد، وC++ شائعة على أجزاء أقدر. يدعم بعض المورّدين الآن Rust لبرمجيات ثابتة جديدة، رغم أن معظم قواعد الكود المضمّنة القائمة في الإنتاج لا تزال C.
المصادر
سعر ثابت ومكتوب
وصلنا طلبك. نعمل الآن على كتابة عرض السعر.
خلال ساعات العمل ستصلك خلال 45 دقيقة. تحقق من بريدك الإلكتروني لرسالة التأكيد.