ऑप्टिबूट बूटलोडर के लिए क्या विकल्प हैं?


12

लगभग सभी आधुनिक Arduino बोर्ड Optiboot बूटलोडर का उपयोग करते हैं । पहले इस्तेमाल किए गए ATmegaboot की तुलना में, यह फ़्लैश टर्म्स (लगभग 1.5KB) से छोटा है और अपलोड स्पीड (115.2k बनाम 57.6k) में तेज है और आपका स्केच क्विकर शुरू करता है (रिसेट के बाद इंतजार करने में देरी कम होती है)।

क्या ऑप्टिबूट बूटलोडर का कोई विकल्प है? विशेष रूप से, क्या कोई छोटा (फ्लैश शब्दों में) बूट लोडर है? उनमें क्या अंतर है?

जवाबों:


8

Optiboot उपलब्ध सबसे छोटे बूटलोडर के बारे में है।

लेकिन, एक अधिक विकसित और मजबूत stk500v2 संचार प्रोटोकॉल के साथ avrdude और AVR बूटलोडर के बीच एक अधिक शक्तिशाली (हार्डवेयर परीक्षण, रैम और फ्लैश सामग्री की जाँच, आदि के लिए इनबिल्ट कंसोल के साथ) बूटलोडर है।

मैंने इसे ATmega2560 और ATmega1284p पर उपयोग किया है। यह 3 बाइट और 2 बाइट प्रोग्राम काउंटर MCU दोनों के लिए काम करता है।

मैं Sourceforge पर एक STK500v2 बूटलोडर संस्करण है ।

यह बूटलोडर पीटर फ्लेरी STK500v2 बूटलोडर पर आधारित है, जिसे मार्क स्पोरल ने अपडेट किया है। मैंने इसे गोल्डिलॉक्स (एक ATmega1284p) बोर्ड के साथ समर्थन करने के लिए संपादन किया है।

मुख्य विशेषता यह है कि Arduino पर फ़्लैश छवि अपलोड करने के लिए STK500v2 प्रोटोकॉल का उपयोग करें । यह प्रोटोकॉल अधिक मजबूत है और avr109 प्रोटोकॉल की तुलना में बेहतर त्रुटि क्षमता देता है। एक तरफ के रूप में avr109 प्रोटोकॉल को Arduino दुनिया में "Arduino" कहा जाता है, क्योंकि यह DTR (बोर्ड को रीसेट करने और अपने आप बूटलोडर में प्रवेश करने के लिए) टॉगल करता है, और STK500v2 प्रोटोकॉल को Arduino दुनिया में "वायरिंग" कहा जाता है, उसी के कारण कारण।

फ़्ल्यूरी / स्प्राउल STK500v2 बूटलोडर को ATmega2560 के साथ काम करने के लिए डिज़ाइन किया गया है, जिसमें 3 बाइट प्रोग्राम रजिस्टर है, क्योंकि बड़ा फ़्लैश आकार है। लेकिन, यह सामान्य 2 बाइट बोर्ड (वास्तव में बाकी सब) का भी समर्थन करता है।

फ्लैश के बहुत से बोर्ड (जैसे गोल्डिलॉक्स 1284 पी) के लिए, एक हार्डवेयर मॉनिटर है जिसका उपयोग फ्लैश, एसआरएएम और हार्डवेयर को क्वेरी करने के लिए किया जा सकता है; आप अतिरिक्त कोड के बिना कनेक्शन की जांच कर सकते हैं, और फ्लैश और ईप्रॉम की वास्तविक सामग्री की जांच कर सकते हैं। क्योंकि 1284p 2 USART का समर्थन करता है , इसलिए मैंने USART1 पर डिबगिंग करने की क्षमता जोड़ी , ताकि USART0 के माध्यम से अपलोड प्रक्रिया में गड़बड़ी न हो।


यह FreeRTOS का हिस्सा लगता है, क्या यह बूटलोडर FreeRTOS से पूरी तरह से स्वतंत्र है?
jfpoilpret

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

यह दिलचस्प लगता है; यह उपयोगी होगा यदि आप अपने जवाब में अपने बूटलोडर की महत्वपूर्ण विशेषताओं को जोड़ सकते हैं: फ्लैश में आकार, अधिकतम गति अपलोड करें, Arduino boars इसके साथ काम कर सकते हैं, और हार्डवेयर परीक्षण के बारे में कुछ और विवरण)।
jfpoilpret

यह मार्क फ्लेर द्वारा अद्यतन पीटर फ़्ल्यूरी STK500v2 बूटलोडर पर आधारित है। मैंने इसे गोल्डिलॉक्स (एक ATmega1284p) बोर्ड के साथ समर्थन करने के लिए संपादन किया है। प्रमुख विशेषता यह है कि फ़्लैश इमेज को Arduino पर अपलोड करने के लिए STK500v2 प्रोटोकॉल का उपयोग करें। यह प्रोटोकॉल अधिक मजबूत है और avr109 प्रोटोकॉल की तुलना में बेहतर त्रुटि क्षमता देता है। एक तरफ के रूप में avr109 प्रोटोकॉल को Arduino दुनिया में "Arduino" कहा जाता है, क्योंकि यह DTR (बोर्ड को रीसेट करने और अपने आप बूटलोडर में प्रवेश करने के लिए) टॉगल करता है, और STK500v2 प्रोटोकॉल को Arduino दुनिया में "वायरिंग" कहा जाता है, उसी के कारण कारण।
फीलिपु

1
जानकारी के लिए धन्यवाद, मैंने आपकी पोस्ट अपडेट कर दी है क्योंकि मुझे लगता है कि यह जानकारी सीधे आपके उत्तर का हिस्सा होनी चाहिए। यदि आप फिट देखते हैं तो अधिक जानकारी जोड़ने के लिए स्वतंत्र महसूस करें!
jfpoilpret

3

TinySafeBoot ATtiny और ATmega उपकरणों के लिए एक विकल्प है।

  • ATtinys और ATmegas के बहुत से संगत (नीचे देखें)

  • Flash और EEPROM तक पहुंच पढ़ें / लिखें।

  • धारावाहिक संचार के लिए उपलब्ध सभी आई.ओ.

  • एक तार, एक लाइन पर कई AVRs के साथ भी

  • ऑटोबुडिंग, बीहड़ प्रोटोकॉल।

  • रीसेट + पासवर्ड (वैकल्पिक) द्वारा सक्रिय

  • पासवर्ड और टाइमआउट उपयोगकर्ता कभी भी बदल सकता है।

  • खोए हुए पासवर्ड को दूर करने के लिए "आपातकालीन मिटाएँ" - सभी डेटा को मारता है लेकिन बूटलोडर को बरकरार रखता है।

  • ATtinys: ~ 550 बाइट्स,

  • ATmegas: <512 बाइट्स (!)

  • ATtiny के लिए TSB खुद को अपडेट कर सकता है।

  • Sourcecode मुफ्त सॉफ्टवेयर (GPL) है


किसी को पता है कि TSB ऑप्टिबूट की तुलना कैसे करता है? अंतिम अद्यतन कम से कम 2 साल पहले लगता है ...
जॉनी क्यों

1

क्या ऑप्टिबूट बूटलोडर का कोई विकल्प है?

इर ... वास्तव में नहीं। अपलोड करते समय इसे तेज़ बनाने के लिए ऑप्टिबूट में वास्तव में एक [अनौपचारिक] संशोधन है

उच्च बॉड दर भिन्नताएं स्थापित करने के लिए…

  • सुनिश्चित करें कि Arduino IDE नहीं चल रहा है
  • उपरोक्त लिंक का उपयोग करके 7-ज़िप संग्रह डाउनलोड करें
  • निम्न निर्देशिका के लिए तीन फ़ाइलों को निकालें: {Arduino Installation Root}\hardware\arduino\bootloaders\optiboot\
  • निम्नलिखित निर्देशिका में स्थित बोर्ड्स। Txt फ़ाइल खोलें: {Arduino Installation Root}\hardware\arduino\

इसके अंदर यह अनुभाग खोजें:

uno.name=Arduino Uno
uno.upload.protocol=arduino
uno.upload.maximum_size=32256
uno.upload.speed=115200
uno.bootloader.low_fuses=0xff
uno.bootloader.high_fuses=0xde
uno.bootloader.extended_fuses=0x05
uno.bootloader.path=optiboot
uno.bootloader.file=optiboot_atmega328.hex
uno.bootloader.unlock_bits=0x3F
uno.bootloader.lock_bits=0x0F
uno.build.mcu=atmega328p
uno.build.f_cpu=16000000L
uno.build.core=arduino
uno.build.variant=standard

निम्न अनुभाग जोड़ें ...

uno_uf.name=Arduino Uno / Upload Fast
uno_uf.upload.protocol=arduino
uno_uf.upload.maximum_size=32256
uno_uf.upload.speed=250000
uno_uf.bootloader.low_fuses=0xff
uno_uf.bootloader.high_fuses=0xde
uno_uf.bootloader.extended_fuses=0x05
uno_uf.bootloader.path=optiboot
uno_uf.bootloader.file=optiboot_atmega328_250000.hex
uno_uf.bootloader.unlock_bits=0x3F
uno_uf.bootloader.lock_bits=0x0F
uno_uf.build.mcu=atmega328p
uno_uf.build.f_cpu=16000000L
uno_uf.build.core=arduino
uno_uf.build.variant=standard
  • आपके द्वारा उपयोग की जाने वाली बॉड दर के लिए दो हाइलाइट किए गए मानों को बदलें: 250000, 500000, या 1000000 सेव करें। ads.txt फ़ाइल को सहेजें और बंद करें
  • अपने पसंदीदा ISP प्रोग्रामर का उपयोग करके, नया बूटलोडर स्थापित करें। यह न भूलें: सुनिश्चित करें कि Arduino Uno / अपलोड फास्ट बोर्ड चयनित है (उपकरण / बोर्ड) , यदि उपयुक्त हो, तो सुनिश्चित करें कि आपके प्रोग्रामर का सीरियल पोर्ट चयनित है (उपकरण / सीरियल पोर्ट) , सुनिश्चित करें कि प्रोग्रामर का चयन किया गया है (टूल / प्रोग्रामर) ) , बूटलोडर स्थापित करने के बाद, अपने Arduino ऊनो के सीरियल पोर्ट के लिए सीरियल पोर्ट को बदलने

साइट के साथ संगतता के लिए पाठ के ऊपर थोड़ा संशोधित। मूल पोस्ट


इसके अलावा, और ATmegaboot बूटलोडर, आप वास्तव में कोई विकल्प नहीं पा सकते हैं। मुझे लगता है कि अगर Arduino सभी Unos पर कभी भी लोड करता है, तो यह बहुत अनुकूलित है। उपरोक्त हैक अपलोड समय को गति देता है, लेकिन यह बूटलोडर के आकार को कम नहीं करता है। आप बूटलोडर पर प्रतीक्षा समय को भी हटा सकते हैं ताकि इसमें एक तेज स्टार्टअप हो।

यदि आप फ्लैश को अधिकतम करने के बारे में चिंतित हैं, तो देखें: वास्तव में एक स्केच को कैसे सिकोड़ें और इस उत्तर पर [ अगर मैं फ्लैश मेमोरी या एसआरएएम से बाहर निकलता हूं तो मैं क्या कर सकता हूं? ]।

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