Совместно используемая библиотека ARM v5 (ftd2xx) на платформе ARM v7
Мне нужно запустить программу, которая использует ftd2xx на моем BeagleBoard xM rev C, работающем под управлением Ubuntu 12.04. Я пытаюсь использовать библиотеку ARM libftd2xx.so при условииВот, libFTDI не вариант.
Разница, которую я заметил, связана с бегомreadelf -hA
на libftd2xx.so против других библиотек на BeagleBoard, которые работают. Специфичный для арки раздел дает имя ОС как "ARM926EF-S» для ftd2xx вместо "7-А» для других библиотек и CPU_arch as "v5TEJ» вместо "v7" .I»
Если предположить, что это означает, что библиотека предназначена для набора инструкций ARM v5, а BeagleBoard работает под управлением ARM v7. Есть ли способ заставить ftd2xx работать?
Редактировать: яМне сказали, что ARM7 обратно совместим с ARM5, но это не решает мою проблему.
Еще одна вещь, которую стоит отметить, это то, что работаетldd libftd2xx.so
на BeagleBoard не перечисляет зависимости, но распечатываетnot a dynamic executable
тогда как он работает на других библиотеках.
РЕДАКТИРОВАТЬ 2:
Проблема, кажется, с мягким против жесткого плавания ABI. У меня есть изображение gnueabihf на BeagleBoard xM. Когда я пытаюсь скомпилировать пример программы со статическим libftd2xx.a, я получаю много из них:
/usr/bin/ld: error: static_link_uses VFP register arguments, libftd2xx.a(file.o) does not<br><br>/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,<br><br>from main.c:12:<br><br>/usr/include/features.h:324:26 fatal error: bits/predef.h: No such file or directory<br><br>compilation terminated
Я также пытался скомпилировать сarm-linux-gnueabi
вместоarm-linux-gnueabihf
, но полученная программа не выполняется на BeagleBoard. Что я могу сделать, или это невозможно?
--------- РЕШЕНИЕ ----------------
После некоторых неприятностей, FTDI предоставил мне версию своей библиотеки, которая работает. Я предоставляю это здесь после того, как много людей индивидуально просили это: