मैं लिनक्स पीसी पर gdb के साथ एक Arduino Uno को कैसे डिबग करूं?


10

मैं लिनक्स पीसी पर gdb के साथ एक Arduino Uno डिबग (सोर्स कोड सिंगल स्टेप) कैसे करूं? कृपया ध्यान दें कि मुझे शराब या वर्चुअलबॉक्स में AVR स्टूडियो का उपयोग करना पसंद नहीं है।

प्रश्न 1: शारीरिक संबंध

मैं यूनो बोर्ड से कैसे और क्या कनेक्ट करूं? मेरा अनुमान है कि चूंकि Uno बोर्ड ATmega328 से आबाद है, इसलिए सिंगल स्टेप सोर्स कोड उपलब्ध होना चाहिए? मुझे यह भी अनुमान है कि मैं ICR हेडर के ऊपर AVR JTAGICE mkII या AVR ड्रैगन का उपयोग कर सकता हूं ?

प्रश्न 2: GDB सर्वर

तब मैंने देखा कि AVARICE जैसी कुछ परियोजनाएँ हैं जो gdb फ़ंक्शन को jtag प्रदान करती हैं, लेकिन अन्य परियोजनाएँ हो सकती हैं?

प्रश्न 3: योगिनी कहाँ है?

और अगर मैं इसे उठाकर चल रहा हूं, तो Arduino IDE डिबग प्रतीकों के साथ योगिनी फ़ाइल की तरह उत्पन्न आउटपुट को कैसे छिपाता है (एक होना चाहिए)? या क्या मुझे एक क्लासिक मेकफाइल उत्पन्न करने की आवश्यकता है जो कि सिर्फ आर्डिनो लिब का उपयोग करता है?

मैंने क्या / कैसे उपयोग किया जाए, इसके बारे में कुछ जानकारी खोजने की कोशिश की, लेकिन मुझे केवल उन सुराग मिले हैं जिन्होंने मुझे बताया था कि मैं क्या कर सकता हूं। क्या कोई मुझे सही दिशा में धकेल सकता है?


जवाबों:


3

IDE के पुराने संस्करण में संकलित बटन पर क्लिक करने पर शिफ्ट कुंजी दबाकर आप संकलक कलाकृतियों को पा सकते हैं (पढ़ें 1.0)। नए संस्करणों में (पढ़ें> = 1.0) संकलन के दौरान वर्बोज़ आउटपुट प्रदर्शित करने के लिए वरीयताओं के संवाद के तहत एक विकल्प है (स्क्रीनशॉट देखें)। वर्बोज़ आउटपुट के साथ फ़ोल्डर जहां सभी कंपाइलर आउटपुट समाप्त होते हैं, कंसोल में (बार-बार) प्रिंट होता है। आपको कम से कम शुरुआत करनी चाहिए।

स्क्रीनशॉट arduino संकलन के दौरान वर्बोज़ आउटपुट दिखाते हैं

एक ओर ध्यान दें, इस विषय पर सभी प्रकार के चैटर अरडिनो डेवलपर्स सूची में पहले जून 2012 में थे और किसी ने Arduino डेवलपर्स सूची के लिए एक घोषणा को Arduino के लिए GDB डिबगिंग के बेहतर / एकीकृत तरीके से पोस्ट किया था, लेकिन मैंने इसकी जांच नहीं की यह बहुत आगे है। मुझे लगता है कि परियोजना को VisualMicro (?) कहा जाता है । ऐसा लगता है कि यह एक विजुअल स्टूडियो प्लगइन के रूप में बनाया गया है, इसलिए शायद यह लिनक्स के माहौल में आपके लिए मददगार न हो, और यह उसी के ऊपर बीटा में है, लेकिन मैं आपको तय करने देता हूं।


मैंने "संकलन के दौरान वर्बोज़ आउटपुट को सक्षम करें" सक्षम किया और वे /tmp/build3652385594823436592.tmp/ जैसी कुछ चीजों का उपयोग करते हैं, जैसा कि उनके बिल्ड डायर का भी है, योगिनी को -g ध्वज के साथ बनाया गया था ताकि इसमें डीबग प्रतीक शामिल हों। इसका मतलब है कि मुझे निर्माण कलाकृतियों का पता चला है, अब मुझे सिर्फ काम करने के लिए jtag प्राप्त करने की आवश्यकता है।
जोहान

3

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

नोट: इन उपकरणों के साथ आपके पास एक भौतिक कनेक्शन नहीं है क्योंकि सभी हार्डवेयर नकली हैं।


2

यह एक इसी तरह के प्रश्न में संदर्भित एक लिनक्स जर्नल लेख में उत्तर दिया गया है: जेटैग डीबगिंग एवीआर

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

उम्मीद है की यह मदद करेगा!

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