2012-06-12 10 views
11

मैं एआरएम कॉर्टेक्स-एम 3 और कॉर्टेक्स-एम 4 का उपयोग कर रहा हूं। मैं जीसीसी के fixed-point type extension का उपयोग करना चाहता हूं। मैं summon-arm-toolchain का उपयोग कर रहा हूं।एआरएम कॉर्टेक्स-एम पर जीसीसी फिक्स्ड-पॉइंट प्रकार एक्सटेंशन का उपयोग कैसे करें?

error: fixed-point types not supported for this target 

जीसीसी वास्तव में कॉर्टेक्स- एम 3/एम 4 के लिए तय सूत्री प्रकार का समर्थन नहीं करता, या मैं कुछ यहाँ याद आ रही है: कोड

_Fract f = 0.1; 

की निम्न पंक्ति निम्नलिखित संकलन त्रुटि फेंकता है?

+2

मुझे संदेह है कि आपका जीसीसी बस निश्चित बिंदु के समर्थन के बिना बनाया गया था, शायद टूलचैन को थोड़ा सा डिबलोट करने के लिए। आप अपना खुद का जीसीसी बनाने की कोशिश कर सकते हैं ... –

+2

@ आर .., हे, मुझे यह भी पता नहीं था कि जीसीसी * एक निश्चित बिंदु विस्तार था। मिठाई। चीजें 1 99 5 से बदल गईं। –

+0

@ आर मैंने एक ARM7TDMI के लिए एक अलग टूलचेन, [gnuarm] (http://www.gnuarm.com/) की कोशिश की। मैंने इस टूलचेन के स्रोतों से _gcc4.4.2_ संकलित किया। मुझे अभी भी एक ही संकलन त्रुटि मिलती है। – user1069152

उत्तर

11

बस रिकॉर्ड के लिए, मैं अपने स्वयं के प्रश्न का उत्तर दूंगा।

टी एल; डॉ: निश्चित बिंदु प्रकार विस्तार जीसीसी (संस्करण 4.6 और बाद में) की एम्बेडेड शाखा में एआरएम कॉर्टेक्स एम/आर वास्तुकला के लिए समर्थित है। उस जीसीसी शाखा के आधार पर एक टूलचेन here पाया जाता है।

लांग जवाब:

लेखन के समय, डिफ़ॉल्ट Linaro-जीसीसी-4.5-2011.02 (या वैकल्पिक रूप जीसीसी-4.5.2) द्वारा summon-arm-toolchain डाउनलोड। यह नहीं डिफ़ॉल्ट रूप से निश्चित-बिंदु प्रकार एक्सटेंशन द्वारा सक्षम किया गया है। मैंने पैरामीटर --enable-fixed-point को configure में जोड़ने का प्रयास किया, लेकिन मुझे इस bug द्वारा संकलित संकलन त्रुटि मिली। मैंने (linaro-) gcc के एक और हालिया संस्करण का उपयोग करने का प्रयास किया, लेकिन summon-arm-toolchain को इस नए संस्करण में अपने स्वयं के प्रदान किए गए जीसीसी पैच को लागू करने में समस्याएं थीं। मैंने सफलता के बिना इस टूलचेन (जो linaro-gcc-4.6-2011.10 का उपयोग करता है) की dev शाखा का उपयोग करने का भी प्रयास किया। ऐसा लगता है कि इस बिंदु पर, निश्चित बिंदु बिंदु एआरएम कॉर्टेक्स-एम/आर के लिए समर्थित नहीं है, न ही लिनारो-जीसीसी द्वारा, न ही मुख्य जीसीसी की शाखा।

मैंने फिर gcc-arm-embedded toolchain की कोशिश की, जो पर आधारित जीसीसी की शाखा पर आधारित है। मैं अपने निश्चित बिंदु प्रकार समस्याओं के बिना नमूना प्रोग्राम संकलित करने में सक्षम था, लक्ष्य एआरएम कॉर्टेक्स-एम 3 और कॉर्टेक्स-एम 4 के लिए। कॉर्टेक्स-एम/आर के लिए इस एक्सटेंशन के लिए समर्थन 2011 के अंत में जोड़ा गया था, जैसा कि this thread पर देखा जा सकता है।

5

GCC Wiki के अनुसार, आप इसे कॉन्फ़िगर करते समय जीसीसी के पैरामीटर के रूप में --enable-fixed-point पास करके निश्चित बिंदु एक्सटेंशन सक्षम कर सकते हैं।

आगे, इस जीसीसी bug और this पर एक टिप्पणी के अनुसार।

fixed point support is only currently supported for the MIPS target.

+0

क्या यह विकल्प जीसीसी संकलित करते समय पारित किया जाना चाहिए, या आपके आवेदन को संकलित करते समय? मैंने बस जीसीसी संस्करण 4.6.1 (सोर्सरी कोडबेंच लाइट 2011.09-69) के साथ यह कोशिश की, और 'arm-none-eabi-gcc.exe: त्रुटि: अपरिचित विकल्प' --enable-fixed-point'' –

+0

आपको निश्चित रूप से आवश्यकता है ऐसा करने के दौरान ऐसा करने के लिए ./configure जीसीसी यानी जीसीसी संकलित करना। मुझे यकीन नहीं है कि आपके आवेदन को संकलित करते समय भी इसकी आवश्यकता है लेकिन मुझे विश्वास है। कृपया मेरे संपादित उत्तर में लिंक भी देखें। – Akhil

+0

मैं वास्तव में पुष्टि नहीं कर सकता कि समस्या थी, क्योंकि मैं उस --enable-fixed-point का उपयोग कर जीसीसी (जिसे summon-arm-toolchain द्वारा उपयोग किया जाता है) संकलित नहीं कर सका। ऐसा लगता है कि [इस टूलचेन] का उपयोग करके एआरएम कॉर्टेक्स-एमएक्स पर फिक्स्ड-पॉइंट प्रकार एक्सटेंशन का उपयोग करना संभव है (https://launchpad.net/gcc-arm-embedded) – user1069152

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