I have the following:

#define BOOTSTART 0x1F800

#define BL_SERIAL 2

#define BL_SMB 4

 

So I can say

 

((void (*)(void))((BOOT_START+BL_SERIAL)/2))();

 

When I want to jump into my bootloader at the serial download entry point.

 

In last years WinAvr that code breaks.  It generates:

 

            call -1023

 

In this years compiler it works.  It generates

 

      ldi r30,lo8(-1023)

      ldi r31,hi8(-1023)

      icall

 

Is there a bug I am missing?  A compiler problem?  Am I being clueless on
how I specify a hard address to call?

_______________________________________________
AVR-GCC-list mailing list
AVR-GCC-list@nongnu.org
http://lists.nongnu.org/mailman/listinfo/avr-gcc-list

Reply via email to