अंतर सॉफ्टवेयर और कार्यक्षमता में है, जो हार्डवेयर को बहुत प्रभावित करता है।
FTDI JTAG केबल JTAG संकेतों का उत्पादन करने के लिए एक कमांड सेट का उपयोग करता है। ये बहुत ही निम्न स्तर के कमांड हैं, अक्सर सटीक विवरण में जाते हैं कि जेटीजी स्टेटमाइन कैसे काम करता है और संचालित होता है। आपके सेटअप के लिए सही कमांड भेजने का तर्क आपके पीसी पर डीबग होस्ट पर किया जाता है।
यह कार्यात्मक, सस्ता हार्डवेयर, मुफ्त सॉफ्टवेयर (GNU GCC + GDB + OpenOCD), आदि यह काफी लचीला है (निम्न-स्तरीय कमांड सेट के कारण) कि एआरएम डिबगिंग, FPGA प्रोग्रामिंग, या जेनेरिक JAGAG चेन स्कैनिंग के लिए पोर्ट हैं। ।
वाणिज्यिक केबल एक मंच के लिए बहुत अधिक विशिष्ट हैं और अक्सर केबल के भीतर तर्क होते हैं। यह पीसी प्रोग्राम को अधिक सार तरीके से डिवाइस से बात करने की अनुमति देता है जो तेज हो सकता है।
उदाहरण के लिए: JLINK USB प्रोटोकॉल देखें । इसमें EMU_CMD_WRITE_MEM_ARM79 जैसी कमांड हैं। FTDI केबल भी इस कमांड को अंजाम दे सकते हैं, लेकिन पीसी की तरफ इसका अनुवाद निम्न स्तर के JTAG से होता है जो FTDI केबल समझता है। इसका अर्थ यह भी है कि उच्च-स्तरीय कमांड (कुछ मेमोरी लिखें) को कई और उप-कमांडों में तोड़ दिया जाता है, जो कि JLINK अपने स्वयं के केबल पर कर सकता है। इसके परिणामस्वरूप बेहतर विलंबता (यूएसबी की सीमाओं को ध्यान में रखते हुए) और / या उच्च गति हो सकती है।
यह आईडीई वाणिज्यिक विक्रेताओं पर भी निर्भर करता है कि वे किस केबल का समर्थन करते हैं, और यह अधिक संभावना है कि एक वाणिज्यिक केबल समर्थित है। दूसरी ओर, यह अधिक संभावना है कि फ्री आईडीई सस्ते एफटीडीआई डीबग केबलों का समर्थन करेगा।
कुछ व्यावसायिक सॉफ़्टवेयर में सॉफ़्टवेयर कोड ब्रेकप्वाइंट के लिए समर्थन भी होता है, जहाँ आप हार्डवेयर के लिए अनुमति से अधिक कोड ब्रेकप्वाइंट सेट कर सकते हैं।
कुछ माइक्रोकंट्रोलरों की ट्रेस कार्यक्षमता का उपयोग करके 4-बिट समानांतर बस को पकड़ने के लिए बहुत तेज़ हार्डवेयर की आवश्यकता होती है। इस सुविधा में सक्षम हार्डवेयर में अक्सर ऐसा करने के लिए एक FPGA होता है।