mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Bootloader in ATMEga128 Programmieren


Autor: AROK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe einen ATMega128 und möchte einen Bootloader darauf 
prgrammieren. Leider habe ich bisher nicht ergründen können wie man das 
macht (mit uisp).
Kennt jemand von euch ein Tutorial oder kann mir das kurz erklären?

Danke!

MFG AROK

Autor: Helmut (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Bootloader flashst du wie jedes andere Programm auch. Er liegt im 
Flashspeicher halt nur am Ende des Bereichs. Und um den Bootloader dann 
auch zu nutzen, mußt du noch einige Fuses ändern. Steht aber im 
Datenblatt, welche Fuses das sind.

Autor: AROK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

danke für die Antwort.

Dass er am Ende liegt wußte ich schon, aber im Datenblatt habe ich nicht 
gefunden an welcher Stelle, und ich weiß auch nicht wie ich uisp dazu 
brige es an diese Adresse zu schreiben.

Gibt es nicht irgend ein Dokument wo dieser Vorgang beschrieben ist?

Gruß
AROK

Autor: Wolfgang Weinmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich programmiere den ATMEGA88, aber ich nehme mal an, das das Prinzip 
bei Dir gleich ist. Es gibt beim Bootloader einiges zu beachten:

Wie Helmut sagte ist die Programmierung die gleiche wie beim restlichen 
Flash.

Der Unterschied liegt in den Eigenschaften des Flash-Speichers. Da gibt 
es beim 88er eine NRWW und eine RWW-Sektion. Zu beachten gilt: der Code, 
wo mittels SPM-Befehl das Flash programmiert wird, muß in der 
NRWW-Sektion liegen, sonst hängt sich der uC auf.
Und während der Flash geschrieben wird, darf kein Code in der 
RWW-Sektion ausgeführt werden. Deshalb kann es nötig sein, daß man die 
Interrutvektoren in den Bootloaderbereich verschiebt mittels einer Fuse.

Das Thema ist nicht das leichteste. Am Besten das Manual zu diesem Thema 
des uC ein paarmal durchlesen - irgendwann kapiert man das dann.

Normalerweise sollte bei einem Controller mit einem Bootloader auch ein 
kleines Bootloaderbeispiel im Manual stehen. So ist es zumindest beim 
ATMEGA88

Gruß

Wolfgang
--
www.ibweinmann.de
Ing.-Büro für Mikrocontrollersysteme und Elektronik

Autor: AROK (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hatte eine kueze Version des Datenbalttes. In der Vollversion steht 
alles drin. Hab jetzt die FuseBits gesetzt, Reset-Vektor auf boot, 
Bootsize auf 8k, Lockbits all aus (Wert=1).

Mit den NRWW un dRWW Sektionen hab ich das noch nicht ganz 
verstanden.MAl sehen ob ich das heute noch hinbekomme.

Autor: Wolfgang Weinmann (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

"Ich hatte eine kueze Version des Datenbalttes. In der Vollversion steht
alles drin. Hab jetzt die FuseBits gesetzt, Reset-Vektor auf boot,
Bootsize auf 8k, Lockbits all aus (Wert=1)."

Das mit dem Reset-Vektor kann man machen, muß aber nicht immer sein. Der 
Grund:
Wenn eine Page in der RWW-Sektion geschrieben wird, dann darf kein 
Programmcode in der RWW-Sektion ausgeführt werden. In der RWW-Sektion 
steht das Anwenderprogramm. Wenn Du jetzt zum Beispiel einen 
Timerinterrupt während dem Page-Write hättest,und der Sprung des 
Interruptvektor würde in der RWW-Sektion stehen (nämlich am anfang des 
Speichers), würde somit auch RWW-Code ausgeführt werden. Dann hängt sich 
der uC auf. Wenn Das aber während des Page-Write nicht auftreten kann 
(z.B. mit CLI), dann ist das verschieben der Interruptvektoren in den 
Bootloaderbereich auch nicht nötig. Dann genügt darauf zu achten, daß es 
keinen Sprung in die RWW-Sektion gibt.

Gruß

Wolfgang
--
www.ibweinmann.de
Ing.-Büro für Mikrocontrollersysteme und Elektronik


Mit den NRWW un dRWW Sektionen hab ich das noch nicht ganz
verstanden.MAl sehen ob ich das heute noch hinbekomme.

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.