Optiboot to najmniejszy dostępny program ładujący.
Ale istnieje o wiele bardziej wydajny (z wbudowaną konsolą do testowania sprzętu, sprawdzania pamięci RAM i Flash itp.) Bootloader z bardziej rozwiniętym i niezawodnym protokołem komunikacyjnym stk500v2 między avrdude a bootloaderem AVR.
Użyłem go na ATmega2560 i ATmega1284p. Działa zarówno dla 3-bajtowego, jak i 2-bajtowego licznika programu MCU.
Mam wersję programu rozruchowego STK500v2 na Sourceforge .
Ten bootloader oparty jest na bootloaderze Peter Fleury STK500v2, zaktualizowanym przez Marka Sproula. Dokonałem edycji, aby obsługiwała go płyta Goldilocks (ATmega1284p).
Kluczową funkcją jest użycie protokołu STK500v2 do przesłania obrazu Flash do Arduino. Ten protokół jest bardziej niezawodny i daje lepsze możliwości błędów niż protokół avr109 . Nawiasem mówiąc, protokół avr109 nazywa się „Arduino” w świecie Arduino, ponieważ przełącza DTR (aby zresetować płytę i automatycznie wejść do bootloadera), a protokół STK500v2 nazywa się „okablowaniem” w świecie Arduino, z tego samego powodu powód.
Program ładujący Fleury / Sproul STK500v2 został zaprojektowany do współpracy z ATmega2560, który ma 3-bajtowy rejestr programu, ze względu na większy rozmiar Flash. Ale obsługuje również normalne 2-bajtowe tablice (wszystko inne naprawdę).
W przypadku płyt z dużą ilością Flasha (jak Goldilocks 1284p) istnieje monitor sprzętowy , za pomocą którego można sprawdzać Flash, SRAM i sprzęt; możesz sprawdzić połączenia bez dodatkowego kodu i sprawdzić rzeczywistą zawartość Flasha i EEPROM. Ponieważ 1284p obsługuje 2 USART, dodałem możliwość debugowania na USART1 , aby proces przesyłania przez USART0 nie był zakłócany.