Forum : ST7/STM8
Post Information | Post |
---|---|
July 14, 2009 - 7:10pm
|
I have a bootloader located at 0x8000. I would like to locate my application and its vector table starting at 0xA000 and am having trouble relocating the vector table. I would like the vector table to start at 0xA000 with the code to follow In my linker options I have defined: CODE(0xA000) My map file shows the following: * * * * * * * * C O D E M E M O R Y * * * * * * * * I tried modifying the startup.asm file as follows: from: to: My map file now shows the following: * * * * * * * * C O D E M E M O R Y * * * * * * * * I have a timer interrupt declared as: void timer_handler_5_ms(void) interrupt 13 How can I inform the linker that I want the vector table located at 0xA000, instead of 0x8000 such that the above interrupt handler is placed at 00A03CH rather than 00803CH? Please respond ASAP as this is time critical. John |
Hi John,
Although the linker does its job, the interrupt vectors other than main are directly emitted (as absolute code) by the compiler.
So you need to use the INTVECTOR(0xA000) compiler directive so that your absolute segment ?IT?VECTOR#13 will be at the required address.
Regards,
Bruno