इन-सर्किट-डिबगर और इन-सर्किट एमुलेटर के बीच कार्यात्मक अंतर क्या है?


12

इन-सर्किट एमुलेटर (संक्षिप्त आईसीई) उनके भयानक डिबगिंग सुविधाओं के बारे में दावा करता है, और उच्च मूल्य टैग भी दावा करता है।

इन-सर्किट डिबगर्स (संक्षिप्त ICD) वह अधिकांश सामान कर सकता है जो एक ICE कर सकता है, लेकिन अक्सर बहुत कम खर्च होता है।

मुझे पता है कि दिन में वापस, ICE वास्तव में सॉकेट से समस्या चिप को हटा देगा और इसे एक एमुलेटर केबल से बदल देगा, लेकिन आधुनिक QFN, BGA, और नाजुक TQFP पैकेज के साथ, ऐसा लगता है कि अधिकांश उत्पाद खुद को "ICE" डिबगर्स कहते हैं। एक डीबग हैडर से उसी तरह जुड़े होते हैं, जिस तरह एक आईसीडी होता है।

यहाँ उत्पादों के कुछ उदाहरण दिए गए हैं जो नाम में "ICE" का उपयोग करते हैं:

कई विक्रेताओं के JTAG 'ICE' उत्पाद भी हैं। ध्यान दें कि मैं इन पर छूट नहीं दे रहा हूं क्योंकि वे शारीरिक रूप से सर्किट में नहीं हैं, लेकिन मैं उन्हें छूट देता हूं यदि वे एक सच्चे ICE के रूप में कार्य नहीं करते हैं।

किस तरह के विकास कार्यों के लिए मुझे ICE की आवश्यकता होती है, और मुझे ICD के साथ कब संतुष्ट होना चाहिए? मान लें कि मैं अपने कोड के माध्यम से कदम रखना चाहता हूं, और एलईडी और प्रिंटफ () स्टेटमेंट का उपयोग नहीं करना चाहता।

उन समस्याओं के कुछ उदाहरण हैं जिन्हें आपने ICE के साथ हल किया है, लेकिन (वास्तविक रूप से) इसके बिना हल नहीं किया जा सकता है?

जवाबों:


19

एक ICE (इन-सर्किट एमुलेटर) लक्ष्य चिप को बदल देता है। यह बाकी चिप की तरह वास्तविक चिप की तरह काम करता है, लेकिन इसमें सभी प्रकार के हुक होते हैं, ताकि आप देख सकें कि क्या चल रहा है, ब्रेक पॉइंट सेट करें, नया कोड लोड करें, निशान खींचें, आदि ICD (इन-सर्किट डीबगर) का उपयोग करता है विशेष डिबग हार्डवेयर उस उद्देश्य के लिए लक्ष्य चिप में जोड़ा गया और आपको ICE जैसी क्षमता देने की कोशिश करता है। दुर्भाग्य से, मार्केटिंग के लोगों ने ऊर्जा प्राप्त की है और इन लंबे समय से चली आ रही शर्तों को फिर से परिभाषित करने की कोशिश की है ताकि आप सोच सकें कि उनका उत्पाद अगले एक से बेहतर है। माइक्रोचिप का RealIce इसका विशेष रूप से अहम् उदाहरण है। यह वास्तविक है, लेकिन एक चीज यह एक ICE नहीं है।

एक वास्तविक ICE (RealIce नहीं) सर्किट डिबगिंग वातावरण में सबसे अच्छा है। दुर्भाग्य से ये बहुत दूर चले गए हैं क्योंकि ICE में उपयोग के लिए लक्ष्य चिप का एक विशेष बॉन्डआउट संस्करण बनाने की उच्च लागत है, और यह तथ्य कि गति इतनी अधिक हो गई है कि चिप को बंद करके कुछ भी लेना समस्याग्रस्त है। एक और समस्या यह है कि एक ICE को सॉकेट में टारगेट चिप की आवश्यकता होती है, या टारगेट चिप के स्थान पर एक विशेष एडाप्टर की आवश्यकता होती है जिससे ICE उसकी लाइनों से जुड़ सके।

इसलिए आज हम ICDs के साथ फंस गए हैं। सौभाग्य से वे ज्यादातर चीजें आप एक आईसीई के साथ करना चाहते हैं। उनका एक फायदा यह भी है कि कोड वास्तविक लक्ष्य चिप पर चल रहा है, न कि लक्ष्य चिप की तरह कुछ करने की कोशिश में । नकारात्मक पक्ष यह है कि उन्हें ऑन-चिप संसाधनों की आवश्यकता होती है ताकि आपके कोड और हार्डवेयर के लिए पूरी तरह से पारदर्शी न हों जैसे कि ICE है। आईसीडी को डिबगिंग लाइनों तक पहुंच की आवश्यकता होती है, जिसमें अक्सर कई भूमिकाएं हो सकती हैं। आप डिबगिंग करते समय अन्य पिनों में उन पिन का उपयोग नहीं कर सकते। प्रत्येक भाग में निर्मित डिबग सर्किटरी की मात्रा कुल के एक छोटे से अंश तक रखी जानी चाहिए, लागत बहुत अधिक होगी, इसलिए सुविधाओं से समझौता करना होगा। एक अच्छी सुविधा जो हर चिप पर जोड़ने के लिए बहुत महंगी होगी वह सही ट्रेस क्षमता है, क्योंकि इसके लिए एक बड़े रैम बफर की आवश्यकता होती है।

हर समस्या को अंततः विभिन्न उपकरणों के साथ हल किया जा सकता है। यह नहीं है कि आप इसे हल कर सकते हैं, लेकिन यह कितना समय और कितना प्रयास करता है। जब मैं नियमित रूप से ICE (माइक्रोचिप ICE-2000 और ICE-4000) का उपयोग कर रहा था, तो मैंने अक्सर ट्रेस सुविधा का उपयोग नहीं किया, लेकिन जब मैंने अन्य साधन किए तो काफी अधिक महंगा हो गया। कभी-कभी आपके पास एक बग होता है जहां एक चर में अचानक गलत मान होता है। आप कोड को चरणबद्ध करते हैं और सबकुछ ठीक है और चर को हेरफेर करने वाली दिनचर्या सब कुछ ठीक करने लगती है, लेकिन जब आप इसे चलाते हैं तो अंत में चीजें बकवास हो जाती हैं और आपको लगता है कि चर चकरा गया। कारण एक खराब सूचक, बफर अतिप्रवाह, स्टैक मिसमैच या पसंद के साथ कुछ अन्य कोड है। ICE के साथ आप परिवर्तनशील होने पर एक ब्रेकपॉइंट सेट कर सकते हैं,

ज्यादातर समय, एक आईसीडी पर्याप्त रूप से अच्छा करेगा। विशेष रूप से बड़े चिप्स के साथ, डिबगिंग के लिए समर्पित युगल पिन एक समस्या का ज्यादा हिस्सा नहीं है। आजकल मैं ज्यादातर RealIce का उपयोग डिबगिंग के लिए करता हूं। यह ICD2 की तुलना में बहुत अधिक स्थिर और कम परतदार है। तुम इसके साथ जीना सीखो।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.