Optiboot ist ungefähr der kleinste verfügbare Bootloader.
Es gibt jedoch einen viel leistungsstärkeren Bootloader (mit integrierter Konsole für Hardwaretests, RAM- und Flash-Inhaltsprüfung usw.) mit einem weiterentwickelten und robusteren stk500v2-Kommunikationsprotokoll zwischen avrdude und dem AVR-Bootloader.
Ich habe es auf dem ATmega2560 und auf dem ATmega1284p verwendet. Es funktioniert sowohl für die 3-Byte- als auch für die 2-Byte-Programmzähler-MCU.
Ich habe eine STK500v2 Bootloader- Version auf Sourceforge .
Dieser Bootloader basiert auf dem von Mark Sproul aktualisierten Peter Fleury STK500v2 Bootloader. Ich habe Änderungen vorgenommen, damit es mit dem Goldilocks-Board (einem ATmega1284p) unterstützt wird.
Die Hauptfunktion besteht darin, das STK500v2- Protokoll zum Hochladen des Flash-Images auf das Arduino zu verwenden. Dieses Protokoll ist robuster und bietet bessere Fehlerfunktionen als das avr109- Protokoll. Abgesehen davon wird das avr109-Protokoll in der Arduino-Welt als "Arduino" bezeichnet, da es DTR umschaltet (um die Karte zurückzusetzen und automatisch in den Bootloader zu gelangen), und das STK500v2-Protokoll wird in der Arduino-Welt aus demselben Grund "Wiring" genannt Grund.
Der Fleury / Sproul STK500v2-Bootloader funktioniert aufgrund der größeren Flash-Größe mit dem ATmega2560, der über ein 3-Byte-Programmregister verfügt. Es werden aber auch normale 2-Byte-Karten unterstützt (alles andere wirklich).
Für Boards mit viel Flash (wie Goldilocks 1284p) gibt es einen Hardwaremonitor , mit dem Flash, SRAM und Hardware abgefragt werden können. Sie können Verbindungen ohne zusätzlichen Code überprüfen und den tatsächlichen Inhalt von Flash und EEPROM überprüfen. Da der 1284p 2 USART unterstützt, habe ich die Möglichkeit zum Debuggen auf USART1 hinzugefügt , damit der Upload-Prozess über USART0 nicht gestört wird.