Forum: Mikrocontroller und Digitale Elektronik AVR Bootloader


von Peter D. (peda)


Lesenswert?

Ich habe mir meinen eigenen Bootloader geschrieben.

Nach jedem Reset wartet er 0,2s, ob da ein bestimmtes Wort über die
serielle reinkommt.

Wenn nicht, dann startet er die Anwendung ab 0x0000.
Dabei wird auch kein Portpin aktiv.

Ohne Schlüsselwort bleibt der Bootloader komplett stumm, nur die
zusätzlich Resetverzögerung von 0,2s verrät seine Anwesenheit.

Die Baudratenerkennung erfolgt automatisch (1200...115200Baud).
Bei den hohen Baudraten kann es aber zu Fehlern kommen, wenn man nicht
die Standardfrequenzen wie 7,3728MHz usw. verwendet.
Dann einfach eine niedrigere Baudrate nehmen.


Zum Schnellprogrammieren habe ich mir ein Kommandozeilentool
geschrieben, damit man es bequem im Make-File oder in der Compile-Batch
mit aufrufen kann.

Nach dem Aufruf sendet das Tool ständig das Paßwort an den ATMega, bis
der antwortet.
Also erst das Tool starten und dann den Resettaster drücken, sonst sind
die 0,2s ja vorbei.


Bei 115200Baud ergeben sich folgende Programmierzeiten:

15kB (ATMega16): 2,8s
7kB  (ATMega8):  1,5s

Für den Bootloader werden 512Worte belegt, deshalb die 1kB weniger.

Der Bootloader programmiert auch nur Pages, in denen sich was geändert
hat.


Falls jemand Interesse hat, kann ich es ja mal in die Codesammlung
stellen sobald das wieder möglich ist.


Peter

von Christian (Gast)


Lesenswert?

Na klar, rein damit ! Würd mich interessieren wie du das gemacht hast !

von john (Gast)


Lesenswert?

Moin peter

ich habe auch interesse !!!
wenn das mit der code sammlung nicht geht, könntest du mir vielleicht
die source e-mailen, das währe super nett (john@holy-gamers.de)

gruß john

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.