Küsimus:
Millised on Optiboot bootloaderi alternatiivid?
Cybergibbons
2014-03-16 16:31:30 UTC
view on stackexchange narkive permalink

Peaaegu kõik kaasaegsed Arduino lauad kasutavad Optiboot bootloaderit. Võrreldes varem kasutatud ATmegabootiga on see välkkiirelt väiksem (umbes 1,5KB võrra) ja üleslaadimiskiiruses kiirem (115,2k vs 57,6k) ning käivitab visandi kiiremini (viivitamine pärast lähtestamist on lühem).

Kas Optiboot alglaaduril on alternatiive? Täpsemalt, kas on mingeid väiksemaid (välklambiga) alglaadureid? Millised erinevused neil on?

Kolm vastused:
#1
+8
feilipu
2014-03-28 10:41:17 UTC
view on stackexchange narkive permalink

Optiboot on väikseim saadaolev alglaadur.

Kuid on olemas palju võimsam (sisseehitatud konsooliga riistvara testimiseks, RAM-i ja Flashi sisu kontrollimiseks jne) alglaadur, millel on arenenum ja vastupidavam stk500v2 sideprotokoll avrdude ja AVR alglaaduri vahel.

Olen seda kasutanud ATmega2560-l ja ATmega1284p-l. See töötab nii 3-baidise kui ka 2-baidise programmiloenduri MCU puhul.

Mul on Sourceforge versioon STK500v2 Bootloaderi.

See alglaadur põhineb Peter Fleury STK500v2 alglaaduril, mida on värskendanud Mark Sproul. Olen teinud muudatusi, et see toetaks Goldilocks (ATmega1284p) tahvlit.

Põhifunktsioon on kasutada Flash-pildi Arduinosse üleslaadimiseks protokolli STK500v2 . See protokoll on tugevam ja annab paremaid veavõimalusi kui protokoll avr109 . Kõrvalepõikena nimetatakse avr109 protokolli Arduino maailmas "Arduinoks", kuna see lülitab DTR-i (tahvli lähtestamiseks ja automaatselt alglaadurisse sisenemiseks) ja STK500v2-protokolli nimetatakse Arduino maailmas juhtmestikuks, sama põhjus.

Fleury / Sproul STK500v2 alglaadur on loodud töötama ATmega2560-ga, millel on 3-baidine programmide register, kuna Flash on suurem. Kuid see toetab ka tavalisi 2-baidiseid plaate (kõike muud tegelikult).

Rohke Flash-ga tahvlite jaoks (nt Goldilocks 1284p) on riistvaramonitor , mida saab kasutada päringuid Flash, SRAM ja riistvara kohta; saate kontrollida ühendusi ilma lisakoodita ning kontrollida Flashi ja EEPROMi tegelikku sisu. Kuna 1284p toetab 2 USART-i, lisasin silumisvõimaluse USART1 -le, nii et üleslaadimisprotsessi USART0 kaudu ei häiritaks.

See näib olevat osa FreeRTOS-ist, kas see alglaadur on täiesti sõltumatu FreeRTOS-ist?
See on täiesti sõltumatu. Bootloaderit kasutatakse välgu kirjutamiseks kõigega. FreeRTOS tuleb hiljem pärast main () käivitamist. Ma lihtsalt hoian seda samas hoidlas. Ma ei kirjutanud seda, vaid muutsin oma eesmärkidel.
See tundub huvitav; oleks kasulik, kui saaksite vastuses kokku võtta oma alglaaduri olulised funktsioonid: suurus Flashis, maksimaalne üleslaadimise kiirus, Arduino kuldid, millega see saab töötada, ja veel mõned üksikasjad riistvara testimise kohta).
See on (põhineb) Peter Fleury STK500v2 alglaaduril, mida on värskendanud Mark Sproul. Olen teinud muudatusi, et see toetaks Goldilocksi (ATmega1284p) tahvlit. Põhifunktsioon on välkpildi Arduinosse üleslaadimiseks kasutada protokolli STK500v2. See protokoll on tugevam ja annab paremaid veavõimalusi kui avr109 protokoll. Kõrvalepõikena nimetatakse Arduino maailmas protokolli avr109 nimeks "Arduino", kuna see lülitab DTR-i (tahvli lähtestamiseks ja automaatselt alglaadurisse sisenemiseks) ning STK500v2-protokolli nimetatakse Arduino maailmas juhtmestikuks, sama põhjust.
Fleury / Sproul STK500v2 alglaadur on mõeldud suure välklambi tõttu töötama 3-baidiste programmiregistriga ATmega2560-ga. Kuid see toetab ka tavalisi 2-baidiseid plaate (kõike muud tegelikult). Rohke välguga laudade (nt Goldilocks 1284p) jaoks on riistvaramonitor, mida saab kasutada välgu, RAM-i ja riistvara päringuteks. Ühendusi saate kontrollida ilma lisakoodita ning välgu ja eepromi tegelikku sisu. Kuna 1284p toetab 2 USART-i, lisasin lisavõimaluse silumiseks USART1-s, nii et üleslaadimisprotsessi USART0 kaudu ei häiritaks.
Täname teabe eest, värskendasin teie postitust, kuna arvan, et see teave peaks olema teie vastuse osa. Lisage julgelt lisateavet, kui see teie arvates sobib!
Veel üks küsimus: mainite palju Goldilocks 1284p-d, kuid kõik selle jaoks sobivad funktsioonid töötavad ka Arduino Mega jaoks, eks?
Jah, absoluutselt. See oli mõeldud 3-baidiste programmiloendurite jaoks, näiteks Atmega2560 / 2561, Arduino Mega.
#2
+3
Ashlyn Black
2015-12-12 00:43:38 UTC
view on stackexchange narkive permalink

TinySafeBoot on alternatiiv ATtiny ja ATmega seadmetele.

  • Ühildub paljude ATtiniste ja ATmegadega (vt allpool)

  • Flassi ja EEPROM-i lugemis- / kirjutusjuurdepääs.

  • Kõik jadakommunikatsiooniks saadaval olevad IO-d

  • Ühe juhtmega, ka mitme AVR-ga ühel real

  • Autobauding, vastupidav protokoll.

  • Aktiveeritakse lähtestamise abil Parool (valikuline)

  • Parooli ja ajalõppu saab kasutaja igal ajal muuta.

  • "Hädaabi kustutamine" kaotatud parooli ületamiseks - tapab kõik andmed, kuid jätab alglaaduri puutumatuks.

  • ATtinys: ~ 550 baiti,

  • ATmegas: < 512 baiti (!)

  • ATtiny TSB saab ennast värskendada.

  • Sourcecode on tasuta tarkvara (GPL)

keegi teab, kuidas on TSB Optibootiga võrreldav? Viimane värskendus näib olevat vähemalt 2 aastat tagasi ...
#3
+1
Anonymous Penguin
2014-03-19 00:01:18 UTC
view on stackexchange narkive permalink

Kas Optiboot bootloaderil on alternatiive?

Viga ... mitte tegelikult. Optibootil on tegelikult [mitteametlik] muudatus, mis muudab selle üleslaadimise kiiremaks.

Suure baudikiiruse variatsioonide installimiseks ...

  • Veenduge, et Arduino IDE ei töötaks
  • Laadige 7-Zip arhiiv alla ülaltoodud lingi abil
  • Pakkige kolm faili järgmisse kataloogi: {Arduino installi juur} riistvara \ arduino \ bootloaders \ optiboot \
  • Avage faili boards.txt, mis asub järgmises kataloogis: {Arduino installimise juur} \ hardware \ arduino \

Leidke see jaotis selle seest:

  uno.name = Arduino Unouno.upload.protocol = arduinouno.upload.maximum_size = 32256uno .upload.speed = 115200uno.bootloader.low_fuses = 0xffuno.bootloader.high_fuses = 0xdeuno.bootloader.extended_fuses = 0x05uno.bootloader.path = optibootuno.bootloader.file = optiboot_atmega32bootfun = 0.0 .build.mcu = atmega328puno.build.f_cpu = 16000000Luno.bu ild.core = arduinouno.build.variant = standard  

Lisage järgmine jaotis ...

  uno_uf.name = Arduino Uno / laadige üles Fastuno_uf.upload.protocol \ u003d = 0x3Funo_uf.bootloader.lock_bits = 0x0Funo_uf.build.mcu = atmega328puno_uf.build.f_cpu = 16000000Luno_uf.build.core = arduinouno_uf.build.variant = standard  
  • Muutke kahte esiletõstetud väärtused selle baudikiiruse jaoks, mida kavatsete kasutada: 250000, 500000 või 1000000 Salvestage ja sulgege fail boards.txt
  • Installige uus alglaadur oma lemmikprogrammi pakkuja abil. Ärge unustage: Veenduge, et Arduino Uno / Upload Fast tahvel oleks valitud (Tools / Board) , Vajadusel veenduge, et teie programmeerija jadaport oleks valitud (Tools / Serial Port) , Veenduge, et programmeerija on valitud (Tööriistad / Programmeerija) , Pärast alglaaduri installimist muutke jadaport oma Arduino Uno jadapordiks.

Ülal olev tekst on saidiga ühilduvuse jaoks veidi muudetud. Algne postitus


Lisaks sellele ja ATmegaboot'i alglaadurile ei leia te tegelikult ühtegi alternatiivi. Ma kujutaksin ette, et kui Arduino laadib selle kõigile kunagi toodetud Unodele, on see üsna optimeeritud. Ülaltoodud häkkimine kiirendab üleslaadimise aega, kuid see ei vähenda alglaaduri suurust. Võite ka ooteaja alglaadijast eemaldada, et see käivituks kiiremini.

Kui olete mures välgu maksimeerimise pärast, vaadake: Kuidas tõepoolest kahanda eskiisi ja see vastus [teemal Mida teha, kui Flash-mälu või SRAM-i saab otsa? ].



See küsimus ja vastus tõlgiti automaatselt inglise keelest.Algne sisu on saadaval stackexchange-is, mida täname cc by-sa 3.0-litsentsi eest, mille all seda levitatakse.
Loading...