2010-06-13 12 views
5

मैं पावरपीसी और एआरएम के लिए असेंबलर में प्रोग्रामिंग सीखना चाहता हूं, लेकिन मैं इस उद्देश्य के लिए वास्तविक हार्डवेयर खरीदने में असमर्थ हूं। मैं इसके लिए क्यूईएमयू का उपयोग करने के बारे में सोच रहा हूं। हालांकि मुझे यकीन नहीं है कि यह दोनों आर्किटेक्चरों को पर्याप्त रूप से अच्छी तरह से अनुकरण करता है, कि मैं अपने कार्यक्रमों को मूल असेंबलर में संकलित और चलाऊंगा?क्या एआरएम और पावरपीसी के लिए असेंबलर में प्रोग्रामिंग सीखने के लिए क्यूईएमयू अच्छा है?

+0

चूंकि क्यूमु का उद्देश्य एक प्रोसेसर एमुलेटर होना है, इसलिए संभवतः उन आर्किटेक्चर को "पर्याप्त अच्छी तरह से" अनुकरण करता है, यदि दस्तावेज़ उन्हें समर्थन देने के लिए कहते हैं तो – ShinTakezou

+1

एआरएम यूसी बहुत सस्ते हैं, तो आप हार्डवेयर (और JTAG 'डोंगल') खरीद सकते हैं। । आप eBay से यूएस $ 100 (शिपिंग सहित) के लिए दोनों प्राप्त कर सकते हैं। सस्ते इलेक्ट्रॉनिक्स के लिए आपको चीनी से प्यार करना होगा :) – leppie

+0

वोट आधारित के रूप में बंद करने के लिए वोटिंग। –

उत्तर

7

QEMU परीक्षण कार्यक्रम के लिए अच्छी तरह से काम सुधार (यानी कोड को ठीक से एक वास्तविक एआरएम या PowerPC पर चलाना शामिल है या नहीं), लेकिन यह परीक्षण कार्यक्रम के लिए अच्छा नहीं है दक्षता: अनुकरण चक्र सही नहीं है, और गति मापा जाता QEMU के साथ विश्वसनीय हार्डवेयर पर गति से संबंधित (या यहां तक ​​कि अविश्वसनीय रूप से) विश्वसनीय नहीं हो सकता है।

इसके अलावा, क्यूईएमयू अनियंत्रित मेमोरी एक्सेस को फंस नहीं पाएगा, जो पावरपीसी इम्यूलेशन (पावरपीसी असाइन किए गए एक्सेस को सहन करता है) के लिए कोई समस्या नहीं है, लेकिन एआरएम (एक असाइन किए गए एक्सेस के लिए हो सकता है, उदाहरण के लिए रैम में 32-बिट शब्द पढ़ना पता जो 4 का एक बहु नहीं है, क्यूईएमयू के साथ ठीक काम करेगा लेकिन एक वास्तविक एआरएम प्रोसेसर पर अपवाद ट्रिगर करेगा)।

इन बिंदुओं के अलावा, क्यूईएमयू एआरएम या एमआईपीएस पर असेंबली विकास के लिए ठीक है (मैंने पावरपीसी की कोशिश नहीं की है, क्योंकि मुझे इसके लिए ईबे पर पुराना आईबुक मिला है, लेकिन मैंने क्यूईएमयू के साथ एआरएम और एमआईपीएस असेंबली की है और फिर भाग गया सही हार्डवेयर पर परिणामी कोड, और यह काम किया)। आप या तो पूरे सिस्टम का अनुकरण कर सकते हैं और इसमें डेबियन चला सकते हैं (इस मामले में कंपाइलर, लिंकर, टेक्स्ट एडिटर ... भी इम्यूलेशन में चलाएगा), या "उपयोगकर्ता-मोड इम्यूलेशन" का उपयोग करें जहां एआरएम/एमआईपीएस निष्पादन योग्य है सीधे, एक रैपर के साथ जो मेजबान पीसी के लिए सिस्टम कॉल को परिवर्तित करता है (यह मानता है कि होस्ट एक पीसी चल रहा है)। उत्तरार्द्ध अधिक सुविधाजनक है (आपके पास अपनी सामान्य होम निर्देशिका तक पहुंच है, प्रोग्रामिंग उपकरण मूल हैं ...) लेकिन क्रॉस-डेवलपमेंट टूल इंस्टॉल करने की आवश्यकता है। इसके लिए buildroot देखें (और -static के साथ लिंक करें, यह कई सिरदर्द से बच जाएगा)।

+2

"उदाहरण के लिए रैम में 32-बिट शब्द पढ़ना जो कि 4 से अधिक नहीं है, क्यूईएमयू के साथ ठीक काम करेगा लेकिन एक वास्तविक एआरएम प्रोसेसर पर अपवाद ट्रिगर करेगा)।" असल में, कुछ एआरएम निर्देश सेट संस्करणों में, असाइन किए गए पते का उपयोग करके सामग्री को घुमाता है, हालांकि एआरएमवी 6 और बाद में, सामान्य असाइन किए गए पहुंच को समर्थित किया जाता है (यह कॉन्फ़िगर करने योग्य है)। http://infocenter.arm.com/help/index.jsp?topic=/com.arm.doc.dui0472c/BABFDBCJ.html – rakslice

1

चूंकि मुझे पता चला है कि PowerPC के लिए डेबियन और ARM के लिए QEMU पर चल सकता है, मुझे लगता है कि यह कोई समस्या नहीं होगी।

संबंधित मुद्दे

 संबंधित मुद्दे