Der Unterschied liegt in der Software und Funktionalität, was sich stark auf die Hardware auswirkt.
Die FTDI-JTAG-Kabel verwenden einen Befehlssatz zur Erzeugung von JTAG-Signalen. Hierbei handelt es sich um Befehle auf sehr niedriger Ebene, die häufig genau auf die Funktionsweise und Bedienung der JTAG-Statemaschine eingehen. Die Logik zum Senden der richtigen Befehle für Ihr Setup erfolgt auf dem Debug-Host Ihres PCs.
Dies ist funktionale, billige Hardware, freie Software (GNU GCC + GDB + OpenOCD) usw. Sie ist flexibel genug (aufgrund des Befehlssatzes auf niedriger Ebene), dass es Ports für ARM-Debugging, FPGA-Programmierung oder generisches JTAG-Ketten-Scannen gibt .
Die kommerziellen Kabel sind viel spezifischer für eine Plattform und enthalten häufig Logik innerhalb des Kabels. Dadurch kann das PC-Programm abstrakter mit dem Gerät kommunizieren, was schneller sein kann.
Beispiel: Sehen Sie sich das JLINK USB-Protokoll an . Es enthält Befehle wie EMU_CMD_WRITE_MEM_ARM79. Die FTDI-Kabel können diesen Befehl auch ausführen, er wird jedoch auf der PC-Seite in die Low-Level-JTAG-Befehle übersetzt, die das FTDI-Kabel versteht. Dies bedeutet auch, dass der übergeordnete Befehl (etwas Speicher schreiben) in viele weitere Unterbefehle unterteilt ist, die der JLINK auf dem Kabel selbst ausführen kann. Dies kann zu einer besseren Latenz (unter Berücksichtigung der Einschränkungen von USB) und / oder einer höheren Geschwindigkeit führen.
Es liegt auch an den kommerziellen IDE-Anbietern, welches Kabel sie unterstützen, und es ist wahrscheinlicher, dass ein kommerzielles Kabel unterstützt wird. Andererseits ist es wahrscheinlicher, dass die kostenlosen IDEs die billigen FTDI-Debug-Kabel unterstützen.
Einige kommerzielle Softwareprodukte unterstützen auch Software-Code-Haltepunkte, bei denen Sie mehr Code-Haltepunkte festlegen können, als die Hardware zulässt.
Die Verwendung der Trace-Funktionalität einiger Mikrocontroller erfordert sehr schnelle Hardware, um einen 4-Bit-Parallelbus zu erfassen. Hardware, die diese Funktion unterstützt, enthält häufig ein FPGA, um dies zu tun.