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


von Micha M. (grooves1)


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

von Oliver (Gast)


Lesenswert?

Moin Micha,

hast du die Interrupt Vektoren in den Bootrom gemapped?

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

Gruß, Oliver

von Hc Z. (mizch)


Lesenswert?

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

von Micha (Gast)


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

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.