AVRDudeR - IDE में एवरूड को एम्बेड करें


Arduino मेरे जैसा एक अच्छा होममेड प्लेटफॉर्म है।
आरामदायक, सब कुछ पहले से ही इसमें है।

क्या समस्या है?

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

Arduino IDE के बिना Arduino

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

यदि आप विवरणों में रुचि नहीं रखते हैं, तो सीधे बिंदु पर जाएं, डाउनलोड करें और कॉन्फ़िगर करें

एवीआर स्टूडियो एक अच्छा वातावरण है, हालांकि संस्करण 4 बल्कि आदिम है, और 5 वीं भारी है। न तो एक लेकिन फर्मवेयर प्रोग्रामर को पता है कि फ्लैश कैसे करना है। घात।
मैंने एक बूटलोडर प्रोजेक्ट लिया, जो AVRISP प्रोग्रामर बनने के बहाने AVR स्टूडियो के साथ संगत है। AVR स्टूडियो में इसके साथ इंटरफेस सबसे सफल था।

क्या करें?

AVRDUDE है - एक मुफ्त फ्लैशर जो ATMEL माइक्रोकंट्रोलर्स के लिए लगभग सभी प्रोग्रामर के साथ काम करता है। लेकिन वह सांत्वना है। यह कोई समस्या नहीं है, एक cmd या बैट फ़ाइल और सभी चीजें लिखी हैं, संकलन और पूरे व्यवसाय के बाद इसे चलाएं। लेकिन मैं, जैसे कई, एक से अधिक बोर्ड हैं। और प्रत्येक Arduino बोर्ड को सिस्टम में एक अलग COM पोर्ट के रूप में देखा जाता है। हर प्रोग्रामर भी। बोर्डों में अलग-अलग माइक्रोकंट्रोलर (Atmega168P, Atmega328P) हैं। घर-निर्मित Arduino- संगत मदरबोर्ड के अलावा या यहां तक ​​कि एक नंगे माइक्रोकंट्रोलर और हार्नेस के साथ।
हर बार जब मैं बैट फ़ाइल में चढ़ता हूं और विभिन्न बोर्डों के लिए सेटिंग्स को संपादित करता हूं या फर्मवेयर के लिए इसे चलाने के लिए किसी अन्य एप्लिकेशन पर स्विच करता हूं, तो यह देखने के लिए कि क्या मैंने कोड में कुछ बाइट्स बदल दिए हैं, मैं व्यक्तिगत रूप से ऊब गया हूं, और बहुत सारी त्रुटियां हैं, इसलिए मैं लंबे समय तक नियंत्रक को नहीं मारूंगा। इससे भी बदतर, एवरड्यूड का केवल एक अलग संस्करण एफटीबीबी प्रोग्रामर के साथ काम करता है, इसके लिए पैच किया गया और आर्कडिनो के बारे में कुछ भी नहीं पता। इसलिए, यदि हम इसके माध्यम से फ्लैश करते हैं, तो हमें एक और बैट फ़ाइल रखने की आवश्यकता है।
कोड :: ब्लॉक आईडीई में, जिसे मुझे प्रारूपण क्षमताओं और कोड के साथ काम करने की सुविधा के मामले में अधिक पसंद आया, स्थिति थोड़ी बेहतर है, जब तक कि आप बाहरी उपयोगिता के लिए मापदंडों को पारित नहीं कर सकते।

स्वचालन आवश्यक मापदंडों के साथ अवहेलना शुरू करते हैं


मैं इस स्थिति से थक गया हूं और मैंने एक छोटा प्रोग्राम लिखा है जो कमांड लाइन पर 2 पैरामीटर प्राप्त करता है:
- कॉन्फ़िगरेशन फ़ाइल का नाम
- फर्मवेयर फ़ाइल नाम

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

यदि रुचि है, तो AVRDudeR डाउनलोड करें

आईडीई में एकीकृत करना बहुत आसान है (अब की तुलना में बात करें):
टूल मेनू में दो मेनू आइटम जोड़ें - सेटिंग्स बदलने और फर्मवेयर के लिए

सेटिंग्स बदलने के लिए, हम लिखते हैं:

फर्मवेयर के लिए:

वास्तव में, वे सेटिंग्स में पंजीकृत हैं: पहला पैरामीटर avrdude.ini फ़ाइल है, जिसे हम प्रोजेक्ट फ़ोल्डर में स्थापित करते समय सहेजते हैं, दूसरा पैरामीटर फर्मवेयर फ़ाइल का नाम है।

सेटअप प्रक्रिया इस तरह दिखती है:


अब, इस परियोजना को संकलित करते हुए, मेनू टूल्स में चुनें-> R AVRDudeR: फ्लैश और आपका काम हो गया।

Avrdude के दोनों संस्करण पहले से ही संग्रह में हैं, आपको AVRDudeR में कुछ भी कॉन्फ़िगर या पंजीकृत करने की आवश्यकता नहीं है।

सेटिंग्स के बारे में थोड़ा:


MCU - माइक्रोकंट्रोलर (कमांड लाइन avrdude प्रोग्राम के लिए अनुकूल नाम और कोड mcu.lst से लेता है)
प्रोग्रामर एक प्रोग्रामर है। FTBB, Arduino एक ISP प्रोग्रामर (ArduinoISP) के रूप में उपयुक्त फर्मवेयर के साथ, या सीधे Arduino से जुड़ा हुआ है। (प्रोग्रामर.लस्ट फ़ाइल में प्रोग्रामर लाइन के लिए मेनू आइटम और कोड का पाठ)
पोर्ट : ठीक है, वास्तव में प्रोग्रामर या Arduino का COM पोर्ट (इसलिए, आपको कॉन्फ़िगरेशन के दौरान बोर्ड को कनेक्ट करने की आवश्यकता है)।
बॉड दर : बंदरगाह की गति। Arduino के लिए UNO - 57600, UNO - 115200 तक। आपके बूटलोडर में आप जानते हैं कि आपने किसे कॉन्फ़िगर किया है, लेकिन FTBB मोड के लिए इस पैरामीटर को अनदेखा किया जाता है।
यार प्रकार : यहीं और चुनने के लिए कौन सा अवशिष्ट - सामान्य या FTBB प्रोग्रामर का उपयोग करें।
जैकडॉ शो रिजल्ट - फर्मवेयर के साथ एक विंडो खोलें जहां फर्मवेयर प्रक्रिया दिखाई देती है, अगर आपको कोई दिलचस्पी नहीं है और आपको यकीन है कि सब कुछ सही ढंग से काम कर रहा है, तो इसे मत डालें, प्रोग्राम केवल एक संदेश प्रदर्शित करेगा जब avrdude काम पूरा करता है और खुद को बंद कर देता है।


प्रोग्राम को सीधे फर्मवेयर अपलोड करने के लिए इस्तेमाल किया जा सकता है, बिना एम्बेड किए।
फर्मवेयर क्षेत्र में बस डबल-क्लिक करें, फर्मवेयर फ़ाइल का चयन करें (या बस अपने हाथों से फ़ाइल में पथ डालें) और फ्लैश फ़र्मवेयर पर क्लिक करें। कॉन्फ़िगरेशन फ़ाइल भी इस मामले में काम करती है।

यदि किसी अन्य प्रोग्रामर के माध्यम से कंट्रोलर को दूसरे पोर्ट में बदला या कनेक्ट किया जाता है, तो टूल का चयन करें-> R AVRDuder: इस प्रोजेक्ट के लिए सेटिंग्स के साथ सेटअप और फ़ाइल (या डिफ़ॉल्ट सेटिंग्स यदि कोई प्रॉब्लम नहीं है तो प्रॉजेक्ट फ़ोल्डर खुलता है)। हम पोर्ट या प्रोग्रामर, कंट्रोलर या वहां क्या बदल गए हैं और avrduder.ini को प्रोजेक्ट फ़ोल्डर में वापस सेव करते हैं। वह सब है।

यदि आप एक ही बोर्ड / प्रोग्रामर के साथ काम करते हैं, तो avrdude.ini को प्रोजेक्ट से प्रोजेक्ट में आसानी से खींचा जा सकता है। बस इसे नए प्रोजेक्ट के फ़ोल्डर में कॉपी करें और आप कुछ भी कॉन्फ़िगर नहीं कर सकते।
अरे हाँ, मैं कोड में थोड़ा भूल गया था: ब्लॉक मैंने जीएनयू एवीआर जीसीसी कंपाइलर का चयन किया और एवीआर टूल्स के लिए केवल फ़ोल्डर निर्दिष्ट किया। और परियोजना इस तरह स्थापित की गई थी:

तब कंपाइलर .elf.hex फ़ाइल बनाता है, जिसे हम फ्लैश कर रहे हैं। यदि यह आपके साथ अलग है, तो AVRDudeR में दिए गए दूसरे पैरामीटर को बदल दें ताकि यह फर्मवेयर फ़ाइल के नाम को स्थानांतरित कर दे।

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

Source: https://habr.com/ru/post/In140276/


All Articles