"Schneller" Arduino Bootloader

7

Der Arduino-Bootloader hat eine Wartezeit, um das Hochladen von "Skizzen" (Code) zu erleichtern. Dies führt zu einer Verzögerung von einigen Sekunden vor dem Start des Hauptcodes.

Ich möchte die Bootloader-Datei (speziell für das Arduino Mega) ändern, um diese Zeit auf weniger als 1000 Millisekunden zu reduzieren .

Ich bin mir nicht sicher, wie ich damit anfangen soll - Könnte mich jemand in die richtige Richtung weisen?

(Hinweis: Mir ist bekannt, dass ich stattdessen nur die meiner Firmware entsprechende Hex-Datei direkt hochladen kann. In diesem Fall möchte ich jedoch den Bootloader beibehalten.)

Brettbiss
quelle

Antworten:

6

Eine Übersicht über den Bootloader finden Sie auf der Seite Bootloader-Entwicklung .

Der aktuelle Quellcode ist verfügbar und kann hier durchsucht werden . Um die Wartezeit (oder das Verhalten des Wartens) zu ändern, sehen Sie sich die Datei ATmegaBOOT.c an .

In Zeile 91 wird MAX_ERROR_COUNTdefiniert und verwendet, um zu bestimmen, wann die eigentliche Anwendung auf Ihrem Arduino gestartet werden soll. Um die Wartezeit zu verkürzen, würde ich MAX_ERROR_COUNTzunächst einen niedrigeren Wert einstellen .


Nachdem Sie Ihren Kommentar gepostet haben, habe ich mir den Quellcode noch einmal angesehen.

In Zeile 433 wird die "Forever-Schleife" gestartet und in Zeile 436 wird die Funktion getch()aufgerufen. In dieser Funktion gibt es eine weitere Schleife, die nach einem empfangenen Zeichen sucht. Wenn innerhalb einer bestimmten Zeitspanne kein Zeichen empfangen wird, wird der Anwendungscode aufgerufen. Die Dauer der Zeitspanne wird bestimmt durch MAX_TIME_COUNT.

Ändern MAX_TIME_COUNTscheint also geeigneter zu sein als Ändern MAX_ERROR_COUNT.

PetPaulsen
quelle
Vielleicht ist in derselben Datei auch die Codezeile relevant, in der Folgendes angegeben ist? Obwohl es auskommentiert
Boardbite
@Inga - Du hast recht! Ich habe meine Antwort aktualisiert.
PetPaulsen