سؤال

إذا قيل لي إنني بحاجة لإنشاء برنامج تشغيل لبعض المنتجات (على سبيل المثال ، وحدة تحكم اللعبة) ، كيف يمكنني إنشاء واحد؟ هل هذا شيء يمكنك القيام به بشكل طبيعي في C/C ++؟

وماذا عن البرامج الثابتة للاتصال الخارجي Deviced USB؟ كيف يتم إنشاء هذا عادة؟ هل هذا يتم أيضًا في C/C ++ ، أم لغة المستوى الأدنى؟

شكرًا!

هل كانت مفيدة؟

المحلول

سأضيف إلى إجابة Amardeep الجيدة مع الكتب التالية التي ستساعدك على التفكير في تشغيل برامج تشغيل أجهزة السياق ، وكيف يتم تنظيمها:

لينكس:http://www.amazon.com/undersing-linux-kernel-third-daniel/dp/0596005652

شبابيك:http://www.amazon.com/programming-microsoft-windows-driver-model/dp/0735618038/ref=sr_1_1؟ie=utf8&s=books&qid=1277439434&sr=1-1

Mac OS:http://www.amazon.com/mac-os-internals-systems-approach/dp/0321278542/ref=sr_1_1؟ie=utf8&s=books&qid=1277439467&sr=1-1

نصائح أخرى

تتم كتابة برامج تشغيل الأجهزة لأنظمة تشغيل كمبيوتر سطح المكتب بشكل عام إما في C أو C ++. سيكون لنظام التشغيل الذي ستستهدفه شكل من أشكال بيئة تطوير سائق الإطار أو الجهاز. في كثير من الأحيان يمكن الحصول على مجموعات التطوير هذه مجانًا.

هناك كتب متوفرة لنظام التشغيل Windows و Linux و MacOS X (وغيرها) تفصل عملية إنشاء برنامج تشغيل جهاز.

إذا كان برنامج التشغيل الخاص بك مرتبطًا بجهاز على ناقل أجهزة معين (PCI ، PCI-X ، USB ، SCSI ، SATA ، إلخ) ، يمكنك أيضًا الحصول على كتب حول هذه التكنولوجيا المحددة. يمكن أن يسهل فهم نظام الأجهزة هذا تصميم سائقك بشكل كبير.

مورد جيد آخر هو رمز المصدر المفتوح للأجهزة المماثلة لك. يمكنك الحصول على ذلك من مصدر Linux kernel أو مصدر FreeBSD ودراسة كيفية تطبيق جوانب معينة من نوع الجهاز.

تحرير: لقد نسيت تقريبًا أن أذكر أنك ستحتاج أيضًا إلى أوراق بيانات ، مخططات ، و/أو نظرية لمعلومات التشغيل حول الجهاز نفسه.

أنت تفعل ذلك بأي لغة يمكنها التحدث إلى الواجهة. إذا كان ذلك يتطلب منافذ التثقيف أو العناوين مباشرة ، فأنت تستخدم Assembly أو C. إذا كانت هناك واجهة عالية المستوى مثل libusb ، فيمكنك استخدام أي لغة تحبها تقريبًا.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top