www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik AVR Bootloader


Autor: Sam (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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?

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Kann man den Bootloader zwecks update sich selbst überschreiben lassen?

Nein.

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Sam, schau in die Datenblätter der AVRs, da steht alles drinnen.

...

Autor: Sam (Gast)
Datum:

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

Autor: Oliver Ju. (skriptkiddy)
Datum:

Bewertung
0 lesenswert
nicht 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?fami...

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.