Es gibt zwei alte und aktuelle ATmega328P-Bootloader. Was ist der Unterschied zwischen diesen Bootloadern?
Mir ist bekannt, dass von Arduino verkaufte Nanos die neuen Bootloader verwenden, aber ich konnte keine Versionshinweise zum Bootloader finden.
bootloader
Claus
quelle
quelle
???/bootloaders/atmega/ATmegaBOOT_168_atmega328.hex
und der neue???/bootloaders/optiboot/optiboot_atmega328.hex
-???
hängt von Ihrem System ab, sollte aber leicht zu finden sein - online, siehe github.com/Optiboot/optibootAntworten:
Der Bootloader, der derzeit auf den offiziellen Arduino Nano-Boards ausgeliefert und über die Tools> Prozessor> ATmega328P der Arduino IDE ausgewählt wird, nachdem Tools> Board> Arduino Nano ausgewählt wurde, ist dieselbe Version von Optiboot, die von Arduino / Genuino Uno verwendet wird: https://github.com /arduino/ArduinoCore-avr/blob/master/boards.txt#L152
https://github.com/arduino/ArduinoCore-avr/blob/master/boards.txt#L72
Der über Tools> Prozessor> ATmega328P (Alter Bootloader) ausgewählte Bootloader ist der Bootloader "ATmegaBOOT" .
Wie in der Nano-Hardwaredefinition verwendet, gibt es zwei signifikante Unterschiede zwischen den beiden Bootloadern:
Es gibt einen weiteren sehr signifikanten Unterschied zwischen den beiden Bootloadern, von dem Sie mit der neuen Arduino Nano-Board- / Hardware-Definition leider nicht profitieren werden: Optiboot passt in einen 0,5-kB-Boot-Bereich, während ATmegaBOOT einen 2-kB-Boot-Bereich benötigt. Leider hat Arduino vergessen, die BOOTSZ-Sicherung entsprechend auszutauschen, und so ging die Möglichkeit, 1,5 kB wertvollen Flash-Speicher für die Benutzer des Nano freizugeben, verloren. Die Bereitschaft von Arduino, wissentlich fehlerhafte Hardware freizugeben, hat einen historischen Präzedenzfall .
Die Versionshinweise von Arduino haben sich noch nicht an die Tatsache angepasst, dass Hardwarepakete seit Arduino IDE 1.6.2 unabhängig von IDE-Versionen veröffentlicht werden können. In den IDE-Versionshinweisen für die nächste IDE-Version finden Sie einen Hinweis zur Bootloader-Änderung:
https://github.com/arduino/Arduino/commit/ec179e5af67b7f1eeb5e46d22034798f8b24b7cb
Ansonsten können Sie den Commit-Verlauf einsehen:
https://github.com/arduino/ArduinoCore-avr/commit/1b14cc07331268e95eddcce2cc67e29ed667e62f
quelle