2014-10-21 5 views
5

मैं कॉर्टेक्स-एम 4 एफ के लिए एक परियोजना बनाने की कोशिश कर रहा हूं। चिप में एक एफपीयू है, इसलिए मैं -mfpu=fpv4-sp-d16 -mfloat-abi=hard के साथ निर्माण कर रहा हूं और मैं अंतरिक्ष बचाने के लिए किसी भी पुस्तकालय का उपयोग नहीं कर रहा हूं, इसलिए मैं -nostdlib -fno-builtin करता हूं।`__aeabi_ddiv 'और दोस्तों के बिना अनिर्धारित संदर्भ - stdlib के बिना इमारत लेकिन साथ -mfloat-abi = hard

अब मैं चल बिन्दु आपरेशनों का उपयोग करना चाहते हैं, लेकिन जब ऐसा करने से मैं एक लिंकर त्रुटि मिलती है:

led1642gw_gain.c:(.text.led_calculateGain+0xc): undefined reference to `__aeabi_f2d' 
led1642gw_gain.c:(.text.led_calculateGain+0x24): undefined reference to `__aeabi_ddiv' 
led1642gw_gain.c:(.text.led_calculateGain+0x36): undefined reference to `__aeabi_dsub' 
led1642gw_gain.c:(.text.led_calculateGain+0x48): undefined reference to `__aeabi_ddiv' 
led1642gw_gain.c:(.text.led_calculateGain+0x54): undefined reference to `__aeabi_d2f' 
led1642gw_gain.c:(.text.led_calculateGain+0x9e): undefined reference to `__aeabi_f2d' 
led1642gw_gain.c:(.text.led_calculateGain+0xb6): undefined reference to `__aeabi_ddiv' 
led1642gw_gain.c:(.text.led_calculateGain+0xc8): undefined reference to `__aeabi_dsub' 
led1642gw_gain.c:(.text.led_calculateGain+0xda): undefined reference to `__aeabi_ddiv' 
led1642gw_gain.c:(.text.led_calculateGain+0xe6): undefined reference to `__aeabi_d2f' 
led1642gw_gain.c:(.text.led_calculateGain+0x10c): undefined reference to `__aeabi_f2d' 

कि क्यों है? अगर मैं सही ढंग से समझता हूं, तो उसे लाइब्रेरी फ़ंक्शंस पर भरोसा नहीं करना चाहिए, लेकिन इसके लिए एआरएम मूल एफपीयू निर्देशों का उपयोग करना चाहिए।

उत्तर

4

आपका कोर सिंगल-प्रेसिजन फ्लोटिंग पॉइंट निर्देशों का समर्थन करता है हालांकि आपका कोड डबल-प्रेसिजन फ्लोटिंग पॉइंट के साथ काम करता है।

आप देख सकते हैं कि सभी गायब __aeabi सामान में 'डी' (जैसा कि डबल में है) का उल्लेख है।

यदि आपके कोड में फ़्लोटिंग पॉइंट अक्षर हैं, तो सी मानक द्वारा उन्हें डबल माना जाता है। आप उन्हें शाब्दिक के अंत में f या F जोड़कर एकल-परिशुद्धता सीमा में मजबूर कर सकते हैं।

2.13.3 Floating literals: The type of a floating literal is double unless explicitly specified by a suffix. The suffixes f and F specify float...

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