Potrzebuję uruchomić program, który używa ftd2xx na moim BeagleBoard xM rev C z systemem Ubuntu 12.04. Próbuję użyć biblioteki ARM libftd2xx.so pod warunkiem . libFTDI nie jest opcją.Wspólna biblioteka ARM v5 (ftd2xx) na platformie ARM v7 - dysk twardy vs miękki numer
Różnica, którą zauważyłem, pochodzi z działającego readelf -hA
na libftd2xx.so w porównaniu z innymi bibliotekami BeagleBoard, które działają. Sekcja specyficzna dla archa daje nazwę OS jako "ARM926EF-S" dla ftd2xx zamiast "7-A" dla innych bibliotek i CPU_arch jako "v5TEJ" zamiast "v7".
Zakładam, że oznacza to, że biblioteka jest przeznaczona dla zestawu instrukcji ARM v5, a BeagleBoard działa z ARM v7. Czy jest jakiś sposób, aby uruchomić ftd2xx?
Edycja: Powiedziano mi, że ARM7 jest wstecznie zgodny z ARM5, ale to nie rozwiązuje mojego problemu.
Inną rzeczą, na którą trzeba zwrócić uwagę, jest to, że uruchomienie ldd libftd2xx.so
na BeagleBoard nie wyświetla zależności, ale wypisuje not a dynamic executable
, podczas gdy działa na innych bibliotekach.
EDIT 2:
Problem wydaje się być miękką vs ciężko pływaka ABI. Mam obraz gnueabihf na BeagleBoard xM. Kiedy próbuję skompilować przykładowy program ze statycznym libftd2xx.a, mam wiele z nich:
/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)
Gdy próbuję skompilować z mfloat-abi=soft
lub mfloatabi=softfp
, mam
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
Próbowałem również przejść kompilację z arm-linux-gnueabi
zamiast arm-linux-gnueabihf
, ale wynikowy program nie jest wykonywany na BeagleBoard. Czy jest coś, co mogę zrobić, czy to niemożliwe?
--------- ROZWIĄZANIE ----------------
Po pewnym kłopoty FTDI mi z twardej wersji pływaka ich biblioteki, która Prace. Przytaczam go tutaj po wielu ludzi indywidualnie zwróciła go:
https://s3.amazonaws.com/hayk-public/arm926-hf.zip
Co dokładnie nie działa? gdzie uruchamiasz 'ldd', na hoście? spróbuj 'readelf | grep Shared'. Możesz potrzebować ldd z obsługą ramienia lub czymś podobnym. (http://stackoverflow.com/questions/6150000/cross-compiler-ldd) Powinieneś spróbować wykopać więcej informacji, takich jak używanie strac, sprawdzanie dzienników itp. Czy przeczytałeś README ze strony ftdi? – auselen
Uruchamiam 'ldd' na BeagleBoard, więc powinien już być przez wersję ARM (działa na bibliotekach ARM w/usr/lib). Przeczytałem readme i skontaktowałem się z FTDI bez skutku. Patrzyłem na strace, ale nie wiem, jak to interpretować. –
Wklej strace do czegoś, a następnie ... – auselen