Hi all,
I downloaded D2XX driver from here :
http://www.ftdichip.com/Drivers/D2XX.htm. It is version 1.0.4 for
Linux x86 (32-bit).

I tried compiling OpenOCD with libftd2xx statically (which is by
default). Configuration is failing with :

checking uninstalled ftd2xx distribution...
-L/home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib
/home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a
checking whether ftd2xx library works... configure: error: Cannot
build & run test program using ftd2xx.lib

In config.log I saw :

/home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(ftd2xx.o):
In function `FTCommonOpen':
/home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1654:
undefined reference to `pthread_create'
/home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1656:
undefined reference to `pthread_create'
/home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(ftd2xx.o):
In function `FT_Close':
/home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1812:
undefined reference to `pthread_join'
/home/madamson/Desktop/Mac-Linux sources/libftd2xx/ftd2xx.c:1821:
undefined reference to `pthread_join'

So obviously it was missing libpthrads.

After adding -lpthread to CFLAGS, there is another problem :

/home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(linux_usbfs.o):
In function `find_monotonic_clock':
/home/madamson/Desktop/Mac-Linux
sources/libftd2xx/libusb/libusb/os/linux_usbfs.c:206: undefined
reference to `clock_gettime'
/home/ddraskovic/sandbox/libftd2xx1.0.4/libftd2xx1.0.4/static_lib/libftd2xx.a(linux_usbfs.o):
In function `op_clock_gettime':
/home/madamson/Desktop/Mac-Linux
sources/libftd2xx/libusb/libusb/os/linux_usbfs.c:2146: undefined
reference to `clock_gettime'
/home/madamson/Desktop/Mac-Linux
sources/libftd2xx/libusb/libusb/os/linux_usbfs.c:2148: undefined
reference to `clock_gettime'

So librt is already missing, and I had to add -lrt also to CFLAGS.

After this I was able to sucessfully compile OpenOCD with libftd2xx,
with observation of warnings like this during compile :


ft2232.c: In function ‘ft2232_write’:
ft2232.c:512: warning: format ‘%lu’ expects type ‘long unsigned int’,
but argument 6 has type ‘FT_STATUS’
ft2232.c: In function ‘ft2232_read’:
ft2232.c:555: warning: format ‘%lu’ expects type ‘long unsigned int’,
but argument 6 has type ‘FT_STATUS’
ft2232.c: In function ‘ft2232_init_ftd2xx’:
ft2232.c:2194: warning: format ‘%lu’ expects type ‘long unsigned int’,
but argument 6 has type ‘FT_STATUS’
ft2232.c:2198: warning: format ‘%lu’ expects type ‘long unsigned int’,
but argument 6 has type ‘FT_STATUS’
ft2232.c:2214: warning: format ‘%lu’ expects type ‘long unsigned int’,
but argument 6 has type ‘DWORD’

Same kind of wornings are present when we compile libftd2xx as a shared library.

When I try to start newly compiled OpenOCD binary I am getting :


Debug: 169 18 ft2232.c:2433 ft2232_init() 104248: ft2232 interface
using shortest path jtag state transitions
Debug: 170 18 ft2232.c:2133 ft2232_init_ftd2xx() 104248: 'ft2232'
interface using FTD2XX with 'jtagkey' layout (0403:cff8)
Error: 171 56 ft2232.c:2239 ft2232_init_ftd2xx() 137560: unable to get
latency timer: 4
Debug: 172 56 command.c:638 run_command() 137448: Command failed with
error code -100

Came behavior with libftd2xx as a shared lib.

libftd2xx0.4.16 which I used before does not show this error (but has
some other problems and that's why I want to replace it with new
version or ideally Amontec officiel drivers).

I am using Amontec JTAGKey2 probe. Since Officiel Amontec drivers are
based on version 1.0.4 of D2XX I am getting exactly same error.

What can be wrong here ?

Best regards,
Drasko
_______________________________________________
Openocd-development mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/openocd-development

Reply via email to