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.