मुझे मेरे Arduino को "बूटलोडर को जलाने" के लिए निर्देश दिया गया था जो मुझे मिल रही एक त्रुटि को ठीक करने के लिए था। मैं यह कैसे कर सकता हूँ? (और वास्तव में बूटलोडर क्या है?)
मुझे मेरे Arduino को "बूटलोडर को जलाने" के लिए निर्देश दिया गया था जो मुझे मिल रही एक त्रुटि को ठीक करने के लिए था। मैं यह कैसे कर सकता हूँ? (और वास्तव में बूटलोडर क्या है?)
जवाबों:
बूटलोडर एक छोटा प्रोग्राम है जो हमेशा (लगभग) एक अरुडिनो पर होता है। यह आपके द्वारा बनाए गए स्केच को अपलोड करने और शुरू करने का प्रबंधन करता है, और जब भी बोर्ड रीसेट करता है तो पिन 13 एलईडी को ब्लिंक करता है।
बूटलोडर को जलाने के लिए:
Tools ► Board ►
आईडीई में जला रहे हैं । यदि आप प्रोग्राम को सही तरीके से अपलोड कर सकते हैं, तो भी इसे दोबारा जांचें; अपलोड करने के लिए हमेशा सही बोर्ड की आवश्यकता नहीं होती है।Tools ► Programmer ►
।Tools ► Burn Bootloader
, और प्रतीक्षा करें। यह एक मिनट से अधिक नहीं लेना चाहिए, और अक्सर केवल कुछ सेकंड लगते हैं।सूत्रों का कहना है:
{line 1} or other dedicated ISP programmer.
और वास्तव में बूटलोडर क्या है?
बूटलोडर प्रोग्राम मेमोरी के "उच्च" भाग में रहने वाला कोड का एक छोटा सा टुकड़ा है। जब आप नए स्केच अपलोड करते हैं तो आम तौर पर इसे मिटाया नहीं जाता है। इसका उद्देश्य इसे एक रीसेट के तुरंत बाद सक्रिय किया जाना है (फ़्यूज़ को बूटलोडर पते पर कोड शुरू करने के लिए कॉन्फ़िगर किया गया है बजाय 0x0000 पते के)। बूटलोडर थोड़े समय (जैसे एक सेकंड) इंतजार करेगा यह देखने के लिए कि क्या "प्रोग्रामिंग" डेटा सीरियल पोर्ट पर आ रहा है।
यदि ऐसा है, तो यह उस डेटा को पढ़ता है, और इसे फ्लैश मेमोरी के बाकी हिस्सों को फिर से शुरू करने के लिए डिकोड करता है। अपलोडिंग प्रोग्राम (सामान्य रूप से अवॉयड) के संयोजन में काम करते हुए नया स्केच सीरियल पोर्ट के माध्यम से भेजा जाता है। बूटलोडर फ्लैश मेमोरी के पृष्ठों को मिटा देता है, और उन्हें नए कोड के साथ बदल देता है। एक बार हो जाने के बाद, यह नए कोड को निष्पादित करता है।
यदि कोई निर्देश नहीं आता है, तो बूटलोडर बोर्ड पर मौजूदा स्केच को निष्पादित करने के लिए 0x0000 को संबोधित करता है।
बूटलोडर को प्रोग्राम करने के लिए एक वैकल्पिक विधि एक स्केच का उपयोग करना है जो मैंने थोड़ी देर पहले लिखा था जो एक पर चलता है:
"प्रोग्रामिंग" बोर्ड स्केच चलाता है जिसमें कई बोर्डों के लिए बूट-लोडर होते हैं जो इसमें हार्ड-कोडित होते हैं। आप प्रोग्रामिंग बोर्ड को 6 हुक-अप तारों के साथ लक्ष्य बोर्ड (बूटलोडर को चाहने वाला बोर्ड) से जोड़ते हैं।
वह विशेष तस्वीर एक यूनो प्रोग्रामिंग को एक दूसरे से दर्शाती है।
आप स्केच चलाते हैं (इसे कमांड देने के लिए सीरियल मॉनिटर के माध्यम से)। पहले यह लक्ष्य चिप की पहचान करता है:
Atmega chip programmer.
Written by Nick Gammon.
Entered programming mode OK.
Signature = 0x1E 0x95 0x0F
Processor = ATmega328P
Flash memory size = 32768 bytes.
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xCF
Bootloader address = 0x7E00
Bootloader length = 512 bytes.
Type 'L' to use Lilypad (8 MHz) loader, or 'U' for Uno (16 MHz) loader ...
Type 'G' to program the chip with the bootloader ...
आप इसे प्रोग्राम करने के लिए G दबाते हैं ।
Erasing chip ...
Writing bootloader ...
Committing page starting at 0x7E00
Committing page starting at 0x7E80
Committing page starting at 0x7F00
Committing page starting at 0x7F80
Written.
Verifying ...
No errors found.
Writing fuses ...
LFuse = 0xFF
HFuse = 0xDE
EFuse = 0xFD
Lock byte = 0xCF
Done.
Type 'C' when ready to continue with another chip ...
एक ऊनो के लिए यह एक सेकंड लगता है। एक मेगा2560 प्रोग्राम करने के लिए 3 सेकंड लगते हैं।
Atmega बूटलोडर प्रोग्रामर पर विस्तृत निर्देश
कोड को जीथब से डाउनलोड किया जा सकता है : निकगैमोन / आर्दुइनो_स्केट्स