वाणिज्यिक JTAG डिबगर और एक खुले स्रोत FT2232H ओपनऑसीडी डीबगर के बीच क्या अंतर है?


10

मैंने कुछ कमर्शियल जेटीजी डिबगर्स देखे हैं जैसे:

  1. iC6000 ऑन-चिप विश्लेषक (अरोरा प्रोटोकॉल समर्थन के साथ)
  2. लुटेरबैक - माइक्रोप्रोसेसर विकास उपकरण

और OpenOCD FT2232H- आधारित JTAG डिबगर:

  1. मक्खीमार
  2. NGX ARM USB JTAG

FT2232H JTAG डिबगर्स की तुलना में ये वाणिज्यिक डिबगर बड़े बॉक्स क्यों हैं, जिनमें सिर्फ एक छोटे क्रेडिट कार्ड का आकार पीसीबी है? वाणिज्यिक डिबगर के अंदर कौन सा अतिरिक्त हार्डवेयर मौजूद है और डिबगिंग के किस भाग में ये मदद कर सकते हैं?


3
मैं इस प्रश्न को ऑफ-टॉपिक के रूप में बंद करने के लिए मतदान कर रहा हूं क्योंकि आवश्यक जानकारी निर्माताओं की वेब साइटों पर है।
लियोन हेलर

हो सकता है कि मैं एक अलग तरीके से सवाल
पूछूं

जवाबों:


7

JTAG केबल्स को हर तरह के सामान के आसपास बनाया जा सकता है। Xilinx JTAG केबल, उदाहरण के लिए, एक सरू चिप और एक FPGA है। Atmel केबल्स में आमतौर पर USB सपोर्ट वाला AVR माइक्रोकंट्रोलर होता है। वे आमतौर पर कुछ इंटरफ़ेस / स्तर अनुवाद / सुरक्षा / अलगाव घटक भी शामिल करेंगे। यह वास्तव में निर्माता पर निर्भर करता है, वे सभी मालिकाना और पारस्परिक रूप से असंगत हैं। आम तौर पर आपको केबल की आवश्यकता होती है जो आपके द्वारा उपयोग किए जाने वाले सॉफ़्टवेयर के साथ काम करता है। यदि आप सभी की जरूरत OpenOCD है, तो एक FTDI आधारित केबल ठीक है। लेकिन अगर आप Xilinx ChipScope का उपयोग करना चाहते हैं? फिर आपको Xilinx या एक चीनी नॉकऑफ़ से वास्तविक चीज़ के लिए भुगतान करने की आवश्यकता है।

आपके पास जो लिंक हैं वे साधारण जेटीजी केबल के लिए नहीं हैं, वे कहीं अधिक विशिष्ट हैं। मैं व्यक्तिगत रूप से इन्हें परीक्षण उपकरण का एक पूर्ण-टुकड़ा मानूंगा। वे मूल रूप से विशेष प्रोटोकॉल विश्लेषक हैं। वे विशेष ट्रेस हार्डवेयर के साथ इंटरफ़ेस करने के लिए डिज़ाइन किए गए हैं जो परीक्षण के तहत डिवाइस में शामिल हैं। ट्रेस हार्डवेयर JTAG से अलग है। इसका उद्देश्य सभी निष्पादन कोर के पार चल रहे सॉफ़्टवेयर (यानी सभी शाखाएं) का पूरा निष्पादन ट्रेस रिकॉर्ड करना है और इसे उच्च गति बस में बाहरी ट्रेस संग्रह प्रणाली (प्रश्न में बॉक्स) के पास करना है। फिर ट्रेस का ऑफ़लाइन विश्लेषण किया जाता है। यह डीबगिंग के समान नहीं है जो ब्रेकप्वाइंट सेट करके और कोड के माध्यम से कदम रखकर JTAG पर किया जा सकता है। ट्रेस संग्रह को रनिंग प्रोग्राम (कोई ब्रेकप्वाइंट या जोड़ा गया कोड) के लिए पूरी तरह से पारदर्शी माना जाता है। चूंकि परीक्षण के तहत प्रोसेसर प्रति सेकंड कई सौ मिलियन निर्देशों को निष्पादित कर सकता है, इसलिए ट्रेस को संग्रहीत करते हुए इसे बहुत सारे बैंडविड्थ और तेज मेमोरी की आवश्यकता होती है। लिंक किए गए उपकरण ऑरोरा प्रोटोकॉल (शायद दूसरों के बीच) का समर्थन करते हैं, जो कि 8 बी / 10 बी एनकोडेड हाई स्पीड सीरियल प्रोटोकॉल है, कुछ हद तक यूएसबी 3, सीरियल एटीए, सीरियल गीगाबिट / 10 जी ईथरनेट और पीसीआई के समान है। यह 6.25 Gbps पर डेटा ट्रांसफर करने में सक्षम है, पीसी से यूएसबी लिंक जितना संभव हो सकता है, उससे अधिक है, इसलिए कैप्चर किए गए डेटा को ऑफ़लाइन विश्लेषण के लिए ऑनबोर्ड रैम में संग्रहित किया जाना चाहिए। इन उपकरणों में उच्च अंत FPGAs के साथ आंतरिक उच्च गति deserializers के साथ डेटा को पकड़ने के लिए काफी तेज़ (कई GB) तेज DRAM शामिल होंगे,


IC6000 पर निशान के लिए 8GB, आपके ग्राममा के पीसी से अधिक :-) और अरोड़ा केबल के माध्यम से 6.25 Gbps बैंडविड्थ।
फिज़ी

6

अंतर सॉफ्टवेयर और कार्यक्षमता में है, जो हार्डवेयर को बहुत प्रभावित करता है।

FTDI JTAG केबल JTAG संकेतों का उत्पादन करने के लिए एक कमांड सेट का उपयोग करता है। ये बहुत ही निम्न स्तर के कमांड हैं, अक्सर सटीक विवरण में जाते हैं कि जेटीजी स्टेटमाइन कैसे काम करता है और संचालित होता है। आपके सेटअप के लिए सही कमांड भेजने का तर्क आपके पीसी पर डीबग होस्ट पर किया जाता है।

यह कार्यात्मक, सस्ता हार्डवेयर, मुफ्त सॉफ्टवेयर (GNU GCC + GDB + OpenOCD), आदि यह काफी लचीला है (निम्न-स्तरीय कमांड सेट के कारण) कि एआरएम डिबगिंग, FPGA प्रोग्रामिंग, या जेनेरिक JAGAG चेन स्कैनिंग के लिए पोर्ट हैं। ।

वाणिज्यिक केबल एक मंच के लिए बहुत अधिक विशिष्ट हैं और अक्सर केबल के भीतर तर्क होते हैं। यह पीसी प्रोग्राम को अधिक सार तरीके से डिवाइस से बात करने की अनुमति देता है जो तेज हो सकता है।

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

यह आईडीई वाणिज्यिक विक्रेताओं पर भी निर्भर करता है कि वे किस केबल का समर्थन करते हैं, और यह अधिक संभावना है कि एक वाणिज्यिक केबल समर्थित है। दूसरी ओर, यह अधिक संभावना है कि फ्री आईडीई सस्ते एफटीडीआई डीबग केबलों का समर्थन करेगा।

कुछ व्यावसायिक सॉफ़्टवेयर में सॉफ़्टवेयर कोड ब्रेकप्वाइंट के लिए समर्थन भी होता है, जहाँ आप हार्डवेयर के लिए अनुमति से अधिक कोड ब्रेकप्वाइंट सेट कर सकते हैं।

कुछ माइक्रोकंट्रोलरों की ट्रेस कार्यक्षमता का उपयोग करके 4-बिट समानांतर बस को पकड़ने के लिए बहुत तेज़ हार्डवेयर की आवश्यकता होती है। इस सुविधा में सक्षम हार्डवेयर में अक्सर ऐसा करने के लिए एक FPGA होता है।


बैंडविड्थ के कुछ भी नहीं कहने के लिए ये संभाल सकते हैं; उच्च अंत वाले Xilinx के बारे में जो ओपी से पूछताछ करता है (iC6000) अरोरा प्रोटोकॉल के साथ 6.25 Gbps के निशान लगा सकता है, जो (1) फ्लाईस्वाटर्स द्वारा समर्थित नहीं है और यहां तक ​​कि अगर यह होता है, तो ये बैंडविड्थ क्या संभालेंगे? और आंतरिक मेमोरी में ये हैं: iC6000 पर निशान के लिए 8GB।
फिज़ी
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.