AVR Bootloader

Gast #1984116
Lesenswert?

Hi.
Bei den ATmegas kann man ja einen Bootloader einrichten.
Geht das auch bei den "alten normalen" AVR's und bei den neuen Tinys?

Kann man den Bootloader zwecks update sich selbst überschreiben lassen? 
Kann man den gesamten Prozessorspeicher überschreiben?
Oder kann man nur außerhalb des Bootloaderbereiches schreiben?
#1984165
Lesenswert?

Sam schrieb:
> Geht das auch bei den "alten normalen" AVR's und bei den neuen Tinys?
Geht prinzipiell bei allen AVR, welche die "SPM"-Instruktion 
unterstüzen. Wenn die AVR einen Bootloader-Bereich vorgesehen haben, 
dann ist es recht einfach nen Bootloader zu implementieren. Haben sie 
keinen, dann muss man am Resetvektor drehen, um den Bootloader als 
erstes zu starten [1]. Um zu schauen, welche AVR die 
"Self-Program-Memory"-Instruktion haben, muss man mal bei Atmel 
vorbeischauen [2].


> Kann man den Bootloader zwecks update sich selbst überschreiben lassen?
Nich so einfach möglich. Der Bootloader nimm ja schließlich das 
Programmieren vor, und wenn du ihn löscht, kann das Programmieren nicht 
mehr von statten gehen - logisch. Halte es aber für Prinzipiell möglich 
einen neuen Bootloader via Bootloader zu flashen. Stelle es mir aber 
nicht so einfach vor. Dazu müsste man vorher ne Art Booloader an eine 
andere Stelle im Flash schreiben, dessen erste Instruktion anspringen 
und dann das eigentliche Update in der Bootloader-Sektion vorzunehmen. 
Dann wieder in den frisch geflashten Bootloader hupsen, um das 
eigentliche Programm zu flashen und den temporären Bootloader zu 
überschreiben. Ist aber nur Theorie; hab ich noch nie gemacht.


> Kann man den gesamten Prozessorspeicher überschreiben?
Du meinst sicherlich den Flash. Und hier gilt das selbe Problem wie 
eben: Wenn der Bootloader weg ist, dann kann er nicht programmieren. 
Leider kann man beim AVR keine Instruktionen aus dem RAM ausführen. Das 
würde einem das Leben hier deutlich erleichtern.


>Oder kann man nur außerhalb des Bootloaderbereiches schreiben?
Du kannst da reinschreiben, wenn es deine Fuse-Einstellung zulässt. Aber 
auch hier gilt: Das zerstört den Bootloader.



[1] Beitrag "Bootolader für ATMega48"
[2] 
http://atmel.com/dyn/products/param_table.asp?family_id=607&OrderBy=part_no&Direction=ASC

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren