2011-08-29 16 views
34

क्या स्रोत-स्तरीय ब्रेकपॉइंट्स सेट करने का कोई तरीका है, वास्तविक हार्डवेयर पर कोड चलाएं, और चर का निरीक्षण करने और जारी रखने में सक्षम हो?Arduino हार्डवेयर पर चल रहे Arduino कोड को आप कैसे डिबग करते हैं?

उत्तर

24

Arduino पर "स्रोत ब्रेकपॉइंट्स" सेट करने का तरीका सीरियल मॉनिटर को उस मूल्य को भेजने के लिए एक सीरियल आउटपुट जोड़ना है जिसे आप सीरियल मॉनिटर को देखना चाहते हैं।

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

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

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

+1

Arduino पर स्रोत breakpoints "" स्थापित करने के लिए जिस तरह से "मूल्य भेजने के लिए एक धारावाहिक उत्पादन को जोड़ने के लिए है आप सीरियल मॉनिटर करने के लिए देखना चाहता हूँ । " क्या होता है यदि आप किसी और चीज़ के लिए अपने सीरियल पोर्ट का उपयोग कर रहे हैं? – Jules

+2

कई विकल्पों में से तीन विकल्प, एवीआर स्टूडियो और जेएजी डिवाइस का उपयोग करके अपने विकास पर्यावरण को अपग्रेड करें, एक आर्डिनो मेगा का उपयोग करें जिसमें एकाधिक सीरियल पोर्ट हैं या सॉफ़्टवेयर सीरियल लाइब्रेरी का उपयोग करें। – Jeff

+0

समाधान मैं वास्तव में उपयोग कर रहा हूं: डिवाइस पर एलसीडी डिस्प्ले चिपकाएं और सीरियल कंसोल की बजाय डिबगिंग के लिए इसका उपयोग करें, लेकिन वे विकल्प भी दिलचस्प हैं। पहले सॉफ्टवेयर धारावाहिक में नहीं आया था, लेकिन यह भविष्य की परियोजनाओं के लिए उपयोगी लग रहा है ... – Jules

30

Visual Micro माइक्रोसॉफ्ट विजुअल स्टूडियो 2015 सामुदायिक संस्करण (फ्री) के लिए प्लगइन Arduino के लिए एक यूएसबी डीबगर प्रदान करता है। यह आपको बिल्कुल वर्णन करने की अनुमति देता है जैसा आप वर्णन करते हैं। (आईडीई इंस्टॉल के दौरान सी ++ स्थापित करने के लिए क्लिक करना न भूलें)

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

Enter image description here

समाचार: जनवरी वर्ष 2016 भी Arduino शून्य के लिए एक GDB डिबगर की रिहाई भी शामिल है। सीरियल/ब्लूटूथ डीबगर के साथ, जीडीबी संस्करण इनो/सीपीपी स्रोत कोड का समर्थन करता है, लेकिन अतिरिक्त रूप से Arduino कोर और पुस्तकालयों के डीबग का समर्थन करता है। यह कई सुविधाओं का समर्थन करता है जैसे: चरणबद्ध, चरणबद्ध, चरण निर्देश या स्रोत रेखा, स्मृति, पंजीयक, स्थानीय, घड़ी, लाइव अभिव्यक्तियां, और स्टैक ट्रेस।

+0

क्या आप इसका उपयोग सी और असेंबली डीबग करने के लिए भी कर सकते हैं? – Pyjong

+0

@pyjong डिफ़ॉल्ट डीबगर सीरियल या वाईफ़ाई का उपयोग करता है जो सी से काम नहीं करेगा, यह केवल आईनो और .cpp के साथ काम करेगा। हालांकि यदि आपका बोर्ड जीडीबी का समर्थन करता है या आपके पास हार्डवेयर डीबगर है तो अन्य विकल्प भी हैं, इसलिए कृपया हमारे मंच में एक थ्रेड खोलें और एक प्रश्न उठाएं। हम इसका जवाब देंगे और सहायता करेंगे। धन्यवाद –

+0

क्या काम करने के लिए हार्डवेयर के लिए कुछ आवश्यकताएं नहीं हैं? जैसे क्या यह एक Arduino Uno पर काम करेगा? (एक लीड हो सकता है * [Arduino के लिए डीबगर] (https://www.codeproject.com/Articles/1037057/Debugger-for-Arduino) * (कोड प्रोजेक्ट)।) –

3

चर का निरीक्षण करने के लिए मैं उन्हें केवल सीरियल मॉनीटर पर प्रिंट करता हूं। यहाँ एक उदाहरण मैं इस समय पर काम कर रहा हूँ है:

# Setup 
Serial.begin(9600); 

# Loop 
Serial.println(String(index) + " : " + String(total) + " : " + String(average)); 

 संबंधित मुद्दे