Optiboot è il bootloader più piccolo disponibile.
Tuttavia, esiste un bootloader molto più potente (con console integrata per test hardware, controllo dei contenuti RAM e Flash, ecc.) Con un protocollo di comunicazione stk500v2 più sviluppato e robusto tra avrdude e il bootloader AVR.
L'ho usato su ATmega2560 e su ATmega1284p. Funziona sia con MCU contatore programmi a 3 byte che a 2 byte.
Ho una versione Bootloader STK500v2 su Sourceforge .
Questo bootloader è basato sul bootloader Peter Fleury STK500v2, aggiornato da Mark Sproul. Ho apportato modifiche per supportarlo con la scheda Goldilocks (una ATmega1284p).
La funzione chiave è utilizzare il protocollo STK500v2 per caricare l'immagine Flash su Arduino. Questo protocollo è più robusto e offre migliori capacità di errore rispetto al protocollo avr109 . Per inciso, il protocollo avr109 è chiamato "Arduino" nel mondo Arduino, perché attiva / disattiva DTR (per ripristinare la scheda e inserire automaticamente il bootloader), e il protocollo STK500v2 è chiamato "Wiring" nel mondo Arduino, a causa dello stesso Motivo.
Il bootloader Fleury / Sproul STK500v2 è progettato per funzionare con l'ATmega2560 che ha un registro di programma a 3 byte, a causa delle dimensioni del flash più grandi. Ma supporta anche normali schede da 2 byte (tutto il resto in realtà).
Per le schede con abbondanza di Flash (come Goldilocks 1284p), esiste un monitor hardware che può essere utilizzato per eseguire query su Flash, SRAM e hardware; è possibile verificare le connessioni senza codice aggiuntivo e verificare il contenuto effettivo di Flash ed EEPROM. Poiché il 1284p supporta 2 USART, ho aggiunto la possibilità di avere il debug su USART1 , in modo che il processo di caricamento tramite USART0 non sia disturbato.