mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik atmega328p, Probleme mit bootrst fuse


Autor: Micha Menz (grooves1)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo all,

habe vor einiger Zeit mehrer atmega328p bei Reichelt gekauft,
und hab jetzt Probleme mit Bootloaderstart.
Offensichtlich scheint die bootrst fuse nicht richtig zu funktionieren,
der Controller startet immer bei Adresse 0, alle Kombinationen mit
bootrst, bootsz0,1 führen zu nichts.
Ich konnte folgendes feststellen:
die erste Aktion, die der Bootloader macht, ist eine LED anzuschalten.
Adresse der Bootloader-Section ist 0x3f00.
wenn keine Applikation drauf ist, d.h. der gesamte Flash vor dem 
Bootloader ist 0xffff, dann geht die LED nach reset an, da 0xffff 
invalid opcode ist,
wird er übersprungen und irgendwann kommt er auch bei 0x3f00 an und 
startet den Bootloader.
Sobald aber eine Applikation mit endless main loop drauf ist, geht die 
LED nicht mehr an, die Applikation wird gleich gestartet, d.h. der 
Controller geht nach reset nicht nach 0x3f00.

Hat jemand ähnliche Probleme ?
es sieht wirklich so aus als ob die bootrst fuse keine Einfluß auf den 
Resetvector hat.

Grüße,
Micha

Autor: Oliver (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Moin Micha,

hast du die Interrupt Vektoren in den Bootrom gemapped?

Aus dem Datenblatt:
/* Enable change of Interrupt Vectors */
GICR = (1 << IVCE);
/* Move interrupts to boot Flash section */
GICR = (1 << IVSEL);

Gruß, Oliver

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du beachtet, dass 3f00 eine Wortadresse ist?  Im .hex muss also der 
Beginn des Bootcodes auf 0x7e00 sein?

Autor: Micha (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

da ich keine Interrupts verwende ist es eigentlich egal wo die Vectoren 
stehen, es werden auch keine Interrupts enabled.

ja, die Startadresse ist korrekt,
Wordadresse: 0x3f00
Byteadresse: 0x7e00

ich verwende ja den Bootloader schon für andere AVR Typen,
und das hat bisher immer funktioniert.

trotzdem Danke für die Hilfe

Grüße,
Micha

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.