Forum: Mikrocontroller und Digitale Elektronik Bootloader kein Zugang mehr


von Mr. AVR (Gast)


Lesenswert?

Hallo,

ich habe einen Bootloader für die Megas. Der Funktioniert auch.
Eine Firmware ebenfalls. Controller ist ATMega644P.

Komischerweise habe ich, nur bei dieser CPU, das Problem, dass ich 
nachdem ich 1x die Firmware per Bootloader über Bluetooth (Uart) 
geändert habe, keinen Zugriff mehr auf den Bootloader habe. Bei bspw. 
dem Mega328P wo ich den Bootloader auch nutze, klappt es beliebig oft.

Woran kann das liegen? Nach dem updaten habe ich mit Atmel Studio 
veryfing des Flashes gemacht - complete (also Firmware 100% correct 
geändert).

Der Bootloader an sich wird funktionieren, er ist auch noch im Flash 
unberührt vorhanden nach dem Updaten (auch nochmal gegen geprüft, alles 
korrekt).

Im Hauptprogramm springe ich so zum Bootloader (klappt wie gesagt 1x).

void (*jmp_to_bootloader) (void) = 0x7000;


Diese Sprungfunktion rufe ich auf, vorher schalte ich noch wdt_disable, 
und cli(). Genauso mache ich es aber auch anderen Controllern wo es 
geht.

Ich habe, auch wenn der Bootloader nur 1,7kb groß ist, 8kb Bootsection 
genommen.

von Sascha W. (sascha-w)


Lesenswert?

Mr. AVR schrieb im Beitrag #5375780:
> Im Hauptprogramm springe ich so zum Bootloader (klappt wie gesagt 1x).
>
> void (*jmp_to_bootloader) (void) = 0x7000;
wo im Hauptprogramm? Am Anfang? 0x7000 passt aber nicht für jeden 
Controller.
Un an was merkst du das der Bootloader nicht aufgerufen wird?
I.d.R. stellt man per Fuse ein das der AVR nach dem Reset die 
Bootloaderadresse anspringt, dann geht das nämlich auch noch wenn beim 
Flashen des Hauptprogramms mal was schief läuft.

Sascha

von Stefan F. (Gast)


Lesenswert?

Ohne konkrete Hinweise, um welchen Bootloader es sich handelt und den 
Quelltext deines Programms können wir Dir keine vernünftige Antwort 
geben.

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.