FTD2XX is a closed-source library. A program licensed under the GNU General Public License (such as OpenOCD) cannot be distributed in binary form if linked to FTD2XX during compilation. LibFTDI is licensed under the GNU Lesser General Public License v2.1. Information on LGPL v2.1 is available at http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.

Speed Comparison with OpenOCD

The following tests were performed with OpenOCD v0.4.0, linked with libFDI and FTD2XX, following the instructions on this wiki. All tests were performed with the TinCanTools Hammer and Flyswatter. Each test consisted of 200 immediately consecutive commands. Commands used were register dumps ('reg' command, 200 times) and single steps ('halt', then 'step' command 200 times, then 'resume'). Commands were sent to OpenOCD through scripts via a telnet client. Each test was performed 10 times; the results below show the average time over 10 tests.

The OpenOCD source was modified to report time elapsed after each command, starting from the first command received. Time was reported with the gettimeofday() function defined in sys/time.h on Linux and redefined for Windows in the OpenOCD source file replacements.c. Note that gettimeofday() does not use a high-precision timer, and very small differences in execution time below do not necessarily reflect a meaningful difference in actual performance. The source modification also disabled the output of the 'reg' command, to prevent the time required to write the contents of 54 registers to the screen (nontrivial on Windows) from eclipsing the time required for OpenOCD to execute the commands.

Note that the data below is only useful got comparing libFDTI and FTD2XX, not to compare each drivers' performance on Windows vs Linux. The Ubuntu installation used in this test was installed inside Windows, which slows it down considerably.

Windows Test

Windows tests were performed on Windows XP64 SP3. These tests show a 13% faster execution time for the 'step' command with the proprietary FTD2XX library. Both performed roughly equally with the 'reg' command.

Test

LibFTDI

FTD2XX

reg

413 ms

409 ms

step

14048 ms

12384 ms

Linux Test

Linux tests were performed with Ubuntu 10.04 LTS installed inside Windows. These tests show the 'reg' command as 9% faster with the proprietary FTD2XX library. The 'step' command performed similarly with both libraries.