Hallo Gemeinde,
ich versuche gerade den USB DFU Bootloader (App-Note: AVR1916) zu
verwenden. Dazu habe ich das Bootloader-Binary Binary geflashed und dann
mit FLIP die Application drauf geladen. Funktioniert alles erstmal
prima.
Um ein Update laden zu können möchte ich jetzt wie der App-Note Kapitel
7.1 beschrieben aus der Applikation zum Bootloader springen
(BOOT_SECTION_START + 0x1FC). Dazu habe ich eine Sprungfunktion
definiert:
1 | void (*start_bootloader)(void)=(void(*)(void))(BOOT_SECTION_START/2+0x1FC/2);
|
(Den Funktionsheader habe ich aus einem XPLAIN Beispiel).
Leider funktioniert das so nicht. Er springt nicht zum Bootloader
sondern scheinbar irgendwo ins Nirwana und hängt sich auf.
Hat das schon mal jemand erfolgreich probiert?