मुझे एक प्रोग्राम चलाने की ज़रूरत है जो मेरे बीगलबॉर्ड xM rev C पर ftd2xx का उपयोग करता है उबंटू 12.04 चला रहा है। मैं एआरएम लाइब्रेरी libftd2xx.so प्रदान करने की कोशिश कर रहा हूं। libFTDI एक विकल्प नहीं है।एआरएम v5 साझा पुस्तकालय (ftd2xx) एआरएम v7 मंच पर - हार्ड बनाम मुलायम फ्लोट मुद्दा
जो अंतर मैंने देखा है वह readelf -hA
पर libftd2xx.so पर चल रहा है जो बीगल बोर्ड पर अन्य पुस्तकालय बनाम काम करता है। आर्क-विशिष्ट अनुभाग ओएस नाम को अन्य पुस्तकालयों और CPU_arch के बजाय "v5TEJ" के बजाय "v -TE" के रूप में "7-ए" के बजाय ftd2xx के लिए "ARM926EF-S" के रूप में देता है।
मुझे लगता है कि इसका मतलब है कि पुस्तकालय एआरएम v5 निर्देश सेट के लिए है, और बीगल बोर्ड एआरएम v7 चला रहा है। काम करने के लिए ftd2xx पाने का कोई तरीका है?
संपादित करें: मुझे बताया गया है कि एआरएम 7 एआरएम 5 के साथ पिछड़ा संगत है, लेकिन यह मेरी समस्या का समाधान नहीं करता है।
नोट करने की एक और बात यह है कि BeagleBoard पर ldd libftd2xx.so
चल रहा है निर्भरता की सूची नहीं है, लेकिन not a dynamic executable
प्रिंट करता है, जबकि यह अन्य पुस्तकालयों पर काम करता है।
संपादित करें 2:
मुद्दा एक नरम बनाम मुश्किल नाव ABI साथ हो रहा है। मेरे पास BeagleBoard xM पर एक gnueabihf छवि है। जब मैं स्थिर libftd2xx.a साथ एक उदाहरण कार्यक्रम को संकलित करने का प्रयास करें, मैं इनमें से अधिकतम मिलती है:, मैं
/usr/bin/ld: error: static_link_uses VFP register arguments, libftd2xx.a(file.o) does not
/usr/bin/ld: failed to merge target specific data of file libftd2xx.a(file.o)
अगर मैं mfloat-abi=soft
या mfloatabi=softfp
साथ संकलित करने के लिए कोशिश
In file included from /usr/include/stdio.h:28:0,
from main.c:12:
/usr/include/features.h:324:26 fatal error: bits/predef.h: No such file or directory
compilation terminated
मैंने arm-linux-gnueabihf
के बजाय arm-linux-gnueabi
के साथ संकलन पार करने का भी प्रयास किया, लेकिन परिणामी प्रोग्राम बीगल बोर्ड पर निष्पादित नहीं होता है। क्या मैं कुछ भी कर सकता हूं या यह असंभव है?
--------- समाधान ----------------
कुछ परेशानी के बाद, FTDI मुझे अपने पुस्तकालय की एक हार्ड नाव संस्करण के साथ प्रदान जो काम करता है। मैं इसे यहाँ प्रदान कर रहा हूँ के बाद कई लोगों को व्यक्तिगत रूप से यह अनुरोध किया है:
https://s3.amazonaws.com/hayk-public/arm926-hf.zip
यह क्या है जो वास्तव में काम नहीं कर रहा है? मेजबान पर आप 'ldd' कहां चलाते हैं? 'readelf | grep साझा' कोशिश करें। आपको हाथ समर्थन या कुछ के साथ एक अजीब की आवश्यकता हो सकती है। (http://stackoverflow.com/questions/6150000/cross-compiler-ldd) आपको स्ट्रैक का उपयोग करने, लॉग की जांच आदि जैसी जानकारी के लिए और अधिक खोदने का प्रयास करना चाहिए। क्या आपने ftdi साइट से README पढ़ा था? – auselen
मैं बीगल बोर्ड पर 'ldd' चलाता हूं, इसलिए यह पहले से ही एक एआरएम संस्करण से होना चाहिए (यह/usr/lib में एआरएम पुस्तकालयों पर काम करता है)। मैंने रीडेम पढ़ा और एफटीडीआई से कोई फायदा नहीं हुआ। मैंने स्ट्रेस को देखा है, लेकिन मुझे नहीं पता कि इसे कैसे समझना है। –
पेस्ट स्ट्रेस कहीं और ... – auselen