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