سؤال

أريد أن أتعلم البرمجة في Assembler for PowerPC و ARM ، لكنني غير قادر على شراء أجهزة حقيقية لهذا الغرض. أفكر في استخدام QEMU لذلك. ومع ذلك ، لست متأكدًا مما إذا كان هذا يحاكي كلا البنى بشكل جيد ، فأنا سأقوم بتجميع برامجي وأديرها في التجميع الأصلي؟

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

المحلول

Qemu يعمل بشكل جيد لبرنامج الاختبار تصحيح (أي ما إذا كان الكود سيعمل بشكل صحيح على ذراع فعلي أو powerpc) ولكنه ليس جيدًا لبرنامج الاختبار نجاعة: المحاكاة ليست دقيقة الدورة ، ولا يمكن أن تكون السرعة المقاسة بـ QEMU مرتبطة بشكل موثوق (أو حتى بشكل غير مؤهل) بالسرعة على الأجهزة الحقيقية.

وأيضًا ، لن تقوم QEMU بتقسيم الوصول إلى الذاكرة غير المحاذاة ، وهو ما لا يمثل مشكلة لمضاهاة PowerPC (يتحمل PowerPC الوصول غير المحسس مضاعف 4 ، سيعمل بشكل جيد مع QEMU ولكنه سيؤدي إلى استثناء على معالج ذراع حقيقي).

بصرف النظر عن هذه النقاط ، فإن QEMU على ما يرام لتطوير التجميع على ARM أو MIPS (لم أحاول PowerPC ، لأنني وجدت iBook قديمًا على موقع eBay لذلك ؛ لكنني قمت بتجميع الذراع و MIPS مع QEMU ثم قمت بتشغيل الكود الناتج على أجهزة حقيقية ، وهذا يعمل). يمكنك إما محاكاة نظام كامل وتشغيل Debian فيه (وفي هذه الحالة ، سيتم تشغيل المترجم أو الرابط أو محرر النصوص ... مباشرة ، مع غلاف يقوم بتحويل المكالمات إلى المكالمات الخاصة بالكمبيوتر المضيف (هذا يفترض أن المضيف هو جهاز كمبيوتر يعمل Linux). هذا الأخير أكثر ملاءمة (يمكنك الوصول إلى الدليل الرئيسي العادي الخاص بك ، أدوات البرمجة أصلية ...) ولكنك تتطلب تثبيت أدوات التطوير المتقاطع. يرى Buildroot لذلك (والارتباط مع -static, ، هذا سوف يتجنب العديد من الصداع).

نصائح أخرى

منذ أن وجدت علامات على دبيان ل PowerPC ولل ذراع يمكن تشغيله على QEMU ، أفترض أن هذه لن تكون مشكلة.

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