Gast
#411592
Hallo,
ich möchte aus meiner Software für einen Mega88 eine Funktion an einer
festen Adresse im Bootloaderbereich anspringen, die nicht Teil meiner
Software ist. Ich habe das über einen Funktionszeiger versucht, jedoch
bringt das nicht den gewünschten Erfolg.
void (*jump_to_bootloader)( void ) = BOOTLDRSTART;
//Aufruf über jump_to_bootloader()
Nach langem Probieren habe ich eine Lösung gefunden, indem ich eine
Dummy-Funktion an diese fixe Adresse gebunden habe und den für diese
Funktion entstehenden Code nicht ins Flash übertrage.
void jump_to_bootloader(void) _attribute_ ((section
(".bootldrstart")));
void jump_to_bootloader(void)
{
asm("nop");
}
//Aufruf über jump_to_bootloader()
Diese Lösung finde ich nur etwas unschön. Hat jemad einen besseren
Vorschlag oder eine Lösung für das Funktionszeigerproblem?
Gruß,
Axel