Forum: Mikrocontroller und Digitale Elektronik AVR Bootloader


von Sam (Gast)


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?

von holger (Gast)


Lesenswert?

>Kann man den Bootloader zwecks update sich selbst überschreiben lassen?

Nein.

von Hannes L. (hannes)


Lesenswert?

Sam, schau in die Datenblätter der AVRs, da steht alles drinnen.

...

von Sam (Gast)


Lesenswert?

Haben nur die aktuellen Megas einen bootloader oder auch die alten AVR's 
und Tiny's?

von Oliver J. (skriptkiddy)


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

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.