لخص المعرفة الأساسية للأنظمة المضمنة ولغات البرمجة والأدوات الفعالة والمحتويات الأخرى.
سمعت مؤخرًا صديقًا يقول شيئًا جيدًا جدًا:
iPhone عبارة عن ذراع مضمّن يعمل على نظام التشغيل ، ويمكن أيضًا فهم CUDA على أنها مضمنة غير متجانسة.
من هذا المنظور ، كيف يمكنك أن تصبح مهندسًا مدمجًا ممتازًا من خلال فصل علوم الكمبيوتر عن المضمن ، واتصال التقنيات فقط مثل متحكمها ، وذراع ، و FPGAs ، وما إلى ذلك ، وتعلم المجالات التقنية الضيقة فقط؟
التوثيق الفني وسجلات الدراسة:
أساسيات النظام المدمجة:
التعلم الآلي:
لغة البرمجة:
بناء البيئة والأدوات:
الأساس النظري:
سيقوم هذا المستودع بتحديث المعرفة المتعلقة بالحقل المدمج لفترة طويلة. من خلال تلخيص وصقل المعرفة التي لديك ، يمكنك دائمًا معرفة المزيد من المهارات المفيدة.
لدي مؤخرًا وجهة نظر جديدة حول وضع المهندسين المضمّن.
يبدأ خريجي التخصصات الكبرى الإلكترونيات في التعلم من مستوى الماكينة ، مثل صانعي المتحكم ومبادئ الحواسيب الصغيرة ، ثم ينتقلون إلى مستوى اللغة ، مثل لغة C و Python ، ثم تعلم هياكل البيانات والخوارزميات. يبدو هذا الطريق جيدًا ومناسبًا للبدء ، ولكن هناك مشاكل خطيرة في هذا الطريق.
غالبًا ما تكون المشكلات التي واجهتها في العمل المضمن شاملة ، مما يعني أن البدء من مستوى اللغة أو مستوى الخوارزمية غالبًا ما لا يمكن أن يحل المشكلة ، وأحيانًا يجب أن تعمق في مستوى الماكينة. لذا فإن السؤال هو ، ما هي المستويات الموجودة للنظام المضمن بأكمله ، أو ما هي المستويات الموجودة لنظام الكمبيوتر بأكمله؟ للحصول على فهم لإطار نظام المعرفة بأكمله وموقفك ، يجب أن يكون لديك فهم أعمق لمبادئ تكوين الكمبيوتر.
الكتاب الذي أوصي به هنا هو الإصدار الثالث من "الفهم المتعمق لأنظمة الكمبيوتر" التي كتبها راندال إي براينت وديفيد ر. أوهالارون. الدورة المقابلة التي يمكن العثور عليها هي دورة "أساسيات أنظمة الكمبيوتر" التي يدرسها البروفيسور يوان تشونفينج على منصة MOOC ، والتي تساعدنا على إنشاء فهم لطبقة تجريد نظام الكمبيوتر بأكملها وتعزيز قدرتنا الشاملة على حل المشكلات المضمنة.

يجب أن يكون لدى المهندسين المدمجون عمقًا كافيًا في تراكمهم الفني.
بعد عدة سنوات من التطوير الهندسي ، تلامس مع المعالجات المختلفة وقمت بتنفيذ وحدة المعالجة المركزية البسيطة التي تبلغ 16 بت بنفسي. أدركت تدريجياً أن استخدام بعض وحدات المعالجة المركزية ليس هو المعرفة الأكثر أهمية ، ولكن المحتوى الأكثر أهمية هو مبادئ تكوين الكمبيوتر وبنية الكمبيوتر (X86 ARM RISC-V). يمكن أن يتيح لنا الفهم العميق للمعرفة الأساسية للكمبيوتر فهم نفس الحجم عند تعلم أجهزة الحوسبة الجديدة ، ولن نجد صعوبة في تعلم بعض تقنيات الحوسبة غير المتجانسة الجديدة ، مثل GPU و TPU و NPU.
تعد لغات البرمجة المختلفة أدوات أساسية للمهندسين. لكنني أعتقد أن الشيء الأكثر أهمية هو لغة البرمجة نفسها ، ولكن فكرة تصميم اللغة والسيناريوهات المعمول بها. يصبح من السهل جدًا فهم ما وراء لغة البرمجة وتعلم واستخدام لغة جديدة.
إن مشكلة نظام تحديد المواقع السريعة هي القدرة الضرورية لكل مهندس مضمن ، فكيف يتم تصحيحه بشكل فعال؟ ناقشت هذه المسألة ذات مرة مع زميل خبير حقيقي ، وقال: هل يمكنني القول أنني أعتمد بشكل أساسي على التفكير؟ من الواضح أن هذه الإجابة قصيرة جدًا ، لكن علينا أن نعترف بأن التصحيح يعتمد بالفعل على التفكير.
لقد قرأت مؤخرًا كتابًا بعنوان "كيفية حلها" الذي أعطاني بعض الإلهام وجعلني أدرك أن هذه مشكلة في التفكير.
إذا أراد المهندسون تحسين قدرات تصحيح الأخطاء ، فيجب أن يفكروا في كثير من الأحيان في هذه المشكلة: يبدو هذا الحل ممكنًا ويبدو أنه صحيح ، ولكن كيف يمكنهم التفكير في مثل هذا الحل؟ يبدو أن هذه التجربة ممكنة ، والتي يبدو أنها حقيقة ، ولكن كيف تم اكتشاف هذه الحقيقة؟ وكيف يمكنني التفكير فيها أو اكتشفهم بنفسي؟ في العمل ، يجب ألا تبذل قصارى جهدك فقط لفهم حلول الأخطاء المختلفة ، ولكن أيضًا تفهم دوافع وخطوات هذا الحل ، وبداية قصارى جهدك لشرح هذه الدوافع والخطوات للآخرين.