mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Booter fuse Atmega48 gibt es nicht?


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
Autor: stefan (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,


habe einen geschriebenen Bootloader im .hex Format
Kann mir jemand sagen wie ich den im Atmel Studio 6 programmieren kann.
in den Fuse sehe ich die einstellungen nicht das ich den aktivieren 
kann.

Grüße und hoffe auf Hilfe, bin Anfänger

Stefan

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Richtig. Der Bootresetvektor (und Flash Self-Programming) kann erst ab 
dem Mega88 benutzt werden. Der Mega48 bietet diese Option nicht.

: Bearbeitet durch User
Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... (und Flash Self-Programming) kann erst ab dem Mega88
> benutzt werden
Ich denke doch, schließlich gibt es im Datenblatt das Kapitel 
'Self-Programming the Flash, ATmega 48A/48PA', allerdings gibt es keinen 
eigenen Bereich dafür, 'no separate Boot Loader Section'.
  Es ist jetzt die Frage, für welchen Controller dieser "geschriebene 
Bootloader" gedacht ist.

Autor: Matthias S. (Firma: matzetronics) (mschoeldgen)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Jo, Self-Programming habe ich jetzt nicht nochmal extra nachgeschlagen. 
Extra Bootvektor gibts aber beim Mega48(A) nicht, das ist sicher.

Autor: Stefan S. (stefangem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der bootloader ist direkt für den atmega48pb.
Nur stellt sich eine Frage wie bekomme ich den drauf.
Ich kann doch nur mit atmel Studio 6 die Firmware programmieren die ich 
auch noch dafür habe als hex file.

: Bearbeitet durch User
Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> ... bootloader ... wie bekomme ich den drauf
Na, mit einem Programmiergerät; entsprechende Hilfe gibt es sicher hier 
in der Artikelsammlung.
  Bedenken kommen mir jedoch, wenn ich ausschließlich von "Hex-Files" 
lese - ob das etwas wird, so ganz ohne weitere Kenntnisse?

Autor: Stefan S. (stefangem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich habe einen avr mkii USB mit dem promme ich meine Sachen immer im 
atmel Studio.
Nur einen bootloader habe ich noch nicht geprommt.
Da fehlt mir das Wissen halt.

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ach so! Nun, ein Bootloader ist erstmal ein Programm wie jedes andere 
auch, wird also auch so behandelt.

Autor: Stefan S. (stefangem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK wenn ich den genauso promme und ich mache später die Firmware drauf 
wird dann der bootloader nicht überschrieben

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn die Firmware dann mit dem Bootloader in den ATmega48PB gebracht 
wird, ja. Der Bootloader darf sich ja nicht überschreiben, sonst wäre er 
sinnlos.

Autor: S. Landolt (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
PS:
Natürlich muss diese Firmware berücksichtigen, dass es den Bootloader 
gibt, denn beim ATmega48 gibt es nur den Resetvektor, bekanntlich fehlt 
der Bootvektor; speziell bei Interrupts wird das wichtig.

Autor: Stefan S. (stefangem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Also ganz so einfach wird das wohl dann nicht.
Ich dachte ich promme erst den bootloader genauso wie eine Firmware dann 
stelle ich die Fuse um und danach mit Studio die Firmware prommen.
Aber die fuse wie Bootsz zeigt atmel studio ja schon gar nicht an.
Ich wollte das übrigens alles über ISP machen.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Um welchen konkreten Bootloader geht es, und wo ist dessen 
Dokumentation?

Autor: c-hater (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
S. Landolt schrieb:

> Natürlich muss diese Firmware berücksichtigen, dass es den Bootloader
> gibt, denn beim ATmega48 gibt es nur den Resetvektor

Nein, das muss sie nur dann, wenn sie sozusagen "am Bootloader vorbei" 
gebrannt werden soll. Ansonsten nicht, dann kümmert sich der Bootloader 
um alle nötigen Maßnahmen (wenn er denn was taugt).

Allerdings: wenn sie am Boolader vorbei gebrannt werden soll, ist es 
i.d.R. nötig, zuvor den Flash zu löschen, damit die Anwendung 
funktionieren kann. Sofern das Löschen des Flashs über Chip-Erase 
erfolgt (und nicht über eine entsprechende Funktion des Bootloaders) ist 
der Bootloader aber wech'...
D.h.: die Applikation darf auch in diesem Fall nix berücksichtigen, denn 
es gibt dann nix mehr, was zu berücksichtigen wäre.

Sprich: es gibt (von eher exotischen Sonderfällen abgesehen) nur ein 
Szenario, in dem die App die Existenz des Bootladers berücksichtigen 
muss:
Wenn sie zusammen mit dem Bootloader in einem Rutsch gebrannt werden 
soll. Dann muß mindestens der Resetvector auf Init des Bootloaders 
zeigen. Und der eigentliche Inhalt ihres Resetvektors muss in den 
entsprechenden Backup-Bereich des Bootloaders verfrachtet werden.

Sprich: der Linker muss dann das tun, was normalerweise der Bootloader 
tut.

Autor: Stefan S. (stefangem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Beitrag "TMC262 Stepper Shield"

Von der Seite. Da ist zwar eine Anleitung mit dabei aber da wird es mit 
avrdude gemacht

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die Dokumentation des Bootloaders (PDF File im ZIP File) sagt klar, dass 
man die Boot Fuses einstellen muss. Die gibt es beim ATmega48 aber 
nicht.

Da der Autor "Peter Dannegger" hier im Forum erreichbar ist, schlage ich 
vor, dass du ihn persönlich kontaktierst und fragst, was er sich vor 11 
Jahren dabei gedacht hat.

Viel Glück

Autor: Holger L. (max5v)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Peter D. (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Stefanus F. schrieb:
> Da der Autor "Peter Dannegger" hier im Forum erreichbar ist, schlage ich
> vor, dass du ihn persönlich kontaktierst und fragst, was er sich vor 11
> Jahren dabei gedacht hat.

Der Trick ist recht einfach. Der Bootloader schnappt sich den RJMP der 
Applikation an der Adresse 0x0000 und verschiebt ihn ans Ende der 
letzten Page der Applikation. Dafür schreibt er an 0x0000 einen RJMP zu 
sich selber.
D.h. die Applikation muß mit einem RJMP starten, was bei C-Compilern für 
die ATmega/ATtiny <= 8kB immer der Fall ist.

Damit bei einem Stromausfall während des Programmierens der Bootloader 
nicht unerreichbar wird, muß er die Pages der Applikation abwärts 
löschen, d.h. den Sprung zu sich selber zuletzt. Fällt genau dann der 
Strom aus, ist der Bereich bis zum Bootloader komplett mit 0xFFFF 
gefüllt, was wie ein NOP wirkt. D.h. auch im worst-case bleibt der 
Bootloader immer erreichbar.

Autor: Stefanus F. (Firma: Äppel) (stefanus)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Alle Achtung, du kannst dich noch erinnern!

Autor: Stefan S. (stefangem)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke an alle das teste ich mal wie in den Beitrag

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.