I have classic bootloader/firmware scheme (bootloader uploaded by uP core, then it uploads firmware). The uP has 62kBytes of program memory in total (ADuC 841), 56kB for firmware, 6kB bootloader and 2kB core. Bootloader uses interrupts to communicate on i2c and serial line. Now, the situation: When bootloader programs the 56kB of firmware memory, it has to erase it first. It erases first 56kB of memory, but the problem is that interrupt vectors are at address 0x0000 (=in firmware code space), so they are erased too. Is there any register or instruction or ASM/C function/directive to tell uP where to look for the interrupt vectors, so I can locate them in bootloader part of memory? I know that there is an option in Keil to say where to store interrupt vectors, but that is just one part of the job, the uP has to know where to look for the as well...
Thanks Petr
I describe, in pasudocode int0 you can expand yourself in bootloader org 3 if boot jmp INT3 else jump APPBASE+3 endif
in the app org APPBASE jump start jump int0 orh 0xb jump int1
Erik