السلام عليكم ...سؤالي يتمحور على برمجة الهاردوير وكيف تتحكم في عناصر الادخال والاخراج مثل الماوس والطابعة ...الخ

تعديل إداري: عنوان أوضح + وسوم

تم قبول هذا الجواب كحل

19:17 - 6.06.2015 - #رابط هذا الرد
من بين مكونات العتاد الالكتروني - مثل الحواسيب والآلات عموما - توجد سجلات - Registers تكون معدة من طرف المصنع للقيام بعمليات محددة حسب محتواها. هذه السجلات تكون قابلة للقراءة والكتابة عبر عناوين يتم تحديدها حسب توثيق المصنع.
المبرمج يعمل أولا على برمجة ما يسمى HAL (Hardware Abstract Layer)، أي مكتبة من الدوال للكتابة والقراءة من السجلات. بعد ذلك يمكنه اسخدام هذه المكتبة في برنامج بدل الاظطرار كل مرة للتعامل مع سجلات العتاد مباشرة.
مثال:
لنقل أنه لديك آلة لها سجل يقول، حسب المصنع، أنه لو كان البت الخامس انطلاقا من العنوان 0x2236 يساوي 0 فإن الآن تتوقف، ولو كان يساوي 1 فإن الآلة تتحرك.
جزء من HAL سيكون هو برمجة دالتين:
دالة لإيقاف الآلة يكتب فيها المبرمج 0 في البت الخامس انطلاقا من العنوان 0x2236
دالة لتشغيل الآلة يكتب فيها المبرمج 1 في البت الخامس انطلاقا من العنوان 0x2236

في برنامجه يمكنه من بعد فقط استدعاء الدالة المناسبة لتوقيف أو تشغيل الآلة.

بالنسبة لمكونات العتاد فهذه الأشياء هي ما تقوم به التعريفات - Drivers. حيث أنها تعد بمثابة HAL يستخدم من نظام التشغيل للقيام بالعمليات المرادة.

لغات البرمجة منخفضة المستوى، مثل C تستخدم لبرمجة هذه المكونات.

المشروع التالي برمجة لآلة تقوم بفرز عناصر على حسب نوعها وارتفاعها. المشروع بلغة C++ على نظام QNX. يمكنك الاطلاع على بنيته ومحتواه، ففيه كنا عملنا على تطبيق ما سبق أن شرحته.
تم تصغير هذا الرد حاليا إظهار
ردود (4)
  • تم قبول هذا الجواب كحل

    00:21 - 7.06.2015 - #رابط هذا الرد
    ابوبكر كتب:

    بالمناسبة هل ستتواجد في المستقبل مثل هاذي المواضيع ؟


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

    22:32 - 4.06.2015 - #رابط هذا الرد
    السؤال واسع ويصعب الإجابة عنه بدقة بهذه الصيغة.

    هل تقصد كيف يمكن برمجة العتاد في لغات برمجة عالية المستوى، مثل جافا أم تقصد كيف يمكن برمجة العتاد بعد أن يتم تصنيعه؟

    تحديد ما تريد مع ذكر مثال لما تريد برمجته يمكن أن يفيد في إعطائك إجابة دقيقة.
    تم تصغير هذا الرد حاليا إظهار
  • تم قبول هذا الجواب كحل

    15:53 - 6.06.2015 - #رابط هذا الرد
    نعم كما قلت انت .... كيف يتم برمجة العتاد بعد ان يتم تصنيعه ..هاذا من جهة ومن جهة اخرى كيف تتحكم بالمداخل والمخارج للحاسوب -المنافذ-.... شكرا سي محمد
    تم تصغير هذا الرد حاليا إظهار
  • تم قبول هذا الجواب كحل

    21:18 - 6.06.2015 - #رابط هذا الرد
    جميل جدا سي محمد ....شكرا على التجاوب .... بالمناسبة هل ستتواجد في المستقبل مثل هاذي المواضيع ؟
    تم تصغير هذا الرد حاليا إظهار
أضف ردك