Sự khác biệt là ở phần mềm & chức năng, ảnh hưởng rất lớn đến phần cứng.
Cáp FTDI JTAG sử dụng bộ lệnh để tạo tín hiệu JTAG. Đây là những lệnh cấp độ rất thấp, thường đi sâu vào chi tiết chính xác cách thức hoạt động của JTAG stHRachine và được vận hành. Logic gửi các lệnh chính xác cho thiết lập của bạn được thực hiện trên máy chủ gỡ lỗi trên PC của bạn.
Đây là chức năng, phần cứng giá rẻ, phần mềm miễn phí (GNU GCC + GDB + OpenOCD), v.v ... Nó đủ linh hoạt (vì bộ lệnh cấp thấp) có các cổng để gỡ lỗi ARM, lập trình FPGA hoặc quét chuỗi JTAG chung .
Các cáp thương mại cụ thể hơn nhiều đối với một nền tảng và thường chứa logic trong cáp. Điều này cho phép chương trình PC nói chuyện với thiết bị theo cách trừu tượng hơn có thể nhanh hơn.
Ví dụ: nhìn vào giao thức JLINK USB . Nó chứa các lệnh như EMU_CMD_WRITE_MEM_ARM79. Cáp FTDI cũng có thể thực hiện lệnh này, nhưng nó được dịch ở phía PC sang lệnh JTAG cấp thấp mà cáp FTDI hiểu được. Điều đó cũng có nghĩa là lệnh cấp cao (ghi một số bộ nhớ) được chia thành nhiều lệnh phụ khác, mà JLINK có thể tự thực hiện trên cáp. Điều này có thể dẫn đến độ trễ tốt hơn (có tính đến các hạn chế của USB) và / hoặc tốc độ cao hơn.
Điều này cũng tùy thuộc vào các nhà cung cấp thương mại IDE mà họ hỗ trợ cáp và nhiều khả năng cáp thương mại được hỗ trợ. Mặt khác, nhiều khả năng IDE miễn phí sẽ hỗ trợ các cáp gỡ lỗi FTDI giá rẻ.
Một số phần mềm thương mại cũng chứa hỗ trợ cho các điểm dừng mã phần mềm, nơi bạn có thể đặt nhiều điểm dừng mã hơn phần cứng cho phép.
Sử dụng chức năng theo dõi của một số bộ vi điều khiển đòi hỏi phần cứng rất nhanh để thu được bus song song 4 bit. Phần cứng có khả năng của tính năng này thường chứa một FPGA để làm như vậy.