سؤال

أنا مبتدئ كامل لعالم الذراع. يجب أن أكون قادرًا على كتابة رمز C ، وتجميعه ، ثم تنزيله في محاكي ARM ، والتنفيذ. أحتاج إلى استخدام برنامج التحويل البرمجي GCC 4.1.2 لتجميع رمز C.

هل يمكن لأي شخص أن يوجهني في الاتجاهات الصحيحة للمشكلات التالية؟

ما سلسلة الأدوات لاستخدامها؟

ما المحاكي لاستخدامه؟

هل هناك دروس أو أدلة على إعداد سلسلة الأدوات؟

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

المحلول

من السهل جدًا بناء برنامج التحويل البرمجي المتقاطع في مجلس التعاون الخليجي بنفسك. مكتبة دول مجلس التعاون الخليجي ومكتبة C وغيرها من الأشياء ليست كثيرًا ، وهي مكتبة مضمنة وأصعب قليلاً. يعتمد على مدى تضمينك. لدي القليل من الفائدة لمكتبة GCCLIB أو AC ، لذا قم بلف أعمالك الخاصة رائعة بالنسبة لي.

بعد سنوات عديدة من القيام بذلك ، ربما يكون هذا هو العصر ، أنا الآن فقط أذهب للحصول على أدوات مصادر التعليمات البرمجية. نسخة لايت تعمل بشكل رائع. يعمل كل من Yagarto أو Devkitarm أو Winarm أو شيء من هذا القبيل (الموقع مع أمثلة Zillion) بشكل جيد. لدى Emdebian أيضًا مجموعة أدوات جيدة تم تصميمها مسبقًا. هناك عدد من هذه الأماكن إن لم يكن جميعهم لديهم معلومات حول كيفية قيامهم ببناء أدواتهم من مصادر GNU.

لقد سألت عن مجلس التعاون الخليجي ، ولكن ضع في اعتبارك أن LLVM منافس قوي ، وبقدر ما يذهب التجميع المتقاطع ، لأنه دائمًا ما يتجمع بين المترجمات ، فهو أحد المترجمات المتشابكة أسهل بكثير لتنزيلها والبناء فيها من GCC. الإصدار الأخير هو إنتاج رمز (للذراع) الذي يتنافس مع GCC للأداء. لا تعتبر GCC بأي حال من الأحوال قائدًا في الأداء ، ومترجميين آخرون استخدمتهم دوائر تشغيل حوله ، ولكنها كانت تتحسن مع كل إصدار (حسنًا ، تنتج إصدارات 3.x أحيانًا رمزًا أفضل من الإصدارات 4.x ، لكنك تحتاج إلى 4 .x لأحدث النوى و thumb2). حتى لو ذهبت مع GCC ، جرب الإصدار المستقر من LLVM من وقت لآخر.

QEMU محاكي جيد ، اعتمادًا على ما تفعله في GBA Simulator Virtual Virtual Advance أمر جيد. هناك اثنين من المحاكيات NDS أيضا. GDB وغيرها من الأماكن لديها ما يبدو أن الأسلحة الخاصة به. لقد وجدت صعوبة في استخراجها واستخدامها ، لذلك كتبت بلدي ، لكنني كنت كسولًا فقط نفذت مجموعة تعليمات الإبهام ، اتصلت بي الإبهام. سهل الاستخدام. أسهل بكثير من Qemu و Armulator لإضافة الأجهزة الطرفية إلى ومشاهدة وتصحيح الرمز الخاص بك. ymmv.

هممم لقد نشرت إجابة مماثلة لشخص ما مؤخرًا. Google: Arm Verilog وفي Umich ستجد ملف ISC.TGZ حيث يعد ARM10 سلوكيًا (كما فيك لا يمكنك صنع شريحة منه ، لذلك يمكنك العثور على نموذج Verilog على الشبكة). وهو أمر جيد بالنسبة لشخص يرغب في تعلم مجموعة تعليمات ، فإن مشاهدة التعليمات البرمجية الخاصة بك على مستوى البوابة تكون جيدة كما هي. كن حذرًا ، مثل المخدرات ، يمكنك أن تدمن ثم قضاء وقت صعب عندما تعود إلى السيليكون حيث يكون لديك صفر نسبيًا في الكود الخاص بك أثناء تنفيذه. في مكان ما في Stackoverflow ، نشرت الخطوات المعنية للحصول على نموذج ARM10 وملف آخر أو اثنين لتحويله إلى محاكي ARM باستخدام ICARUS Verilog. GTKWAVE هي أداة جيدة ومجانية لفحص ملفات الموجة (VCD).

قبل كل شيء ستحتاج إلى ذراع الذراع. (دليل المرجع المعماري للذراع). ما عليك سوى Google وتجدها على موقع ARM على الويب. هناك رمز زائف لكل تعليمات تعلمك ما يفعلونه. استخدم Thumbulator أو Armulator أو غيرها إذا كنت بحاجة إلى فهم المزيد (Mame لديه قلب ذراع فيه أيضًا). لا أقدم أي ضمانات بأن الإبهام يتم تصحيحه بنسبة 100 ٪ أو دقيقة ، فقد أخذت بعض البرامج الشائعة وقارنت ناتجها بالسيليكون على حد سواء الذراع وغير الأسلحة لتصحيح النواة.

نصائح أخرى

أدوات يمكنك استخدام yagarto http://www.yagarto.de/

المحاكي يمكنك استخدام بروتيس إيزيس http://www.labcenter.com/index.cfm(هناك نسخة تجريبية)

والبرامج التعليمية ، حسنا ، Google لهم =)

حظا طيبا وفقك الله!

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