Hello, I am Davide Masi and I work on Fujitsu based on ARM Cortex M3.
How do I relocate the interrupt vector table from address 0x0000 to a different address, for examples in RAM? Where can I find examples or AN about the problem?
Thanks
Sorry but I can not to reallocate the vector table What steps should I follow to reallocate the table of vectors?
just adapt code already pasted
Sorry but I can not to reallocate the vector table
What do you mean? Did you try? What exactly happened?
What steps should I follow to reallocate the table of vectors?
Step one:
*(int volatile*)0xE000ED08 = 0x12340000; /* where 0x12340000 is the new location of the vector table */
That's it. There is no step two.
Cortex-M unlike ARM7 has a register called VTOR; the Vector Table Offset Register.
When the interrupt controller on a Cortex-M device is 'triggered' it will start at this location for interrupt handler addresses.
This is not possible on ARM7 although some hardware manufacturers have provided additional features to give some of this functionality on ARM7 devices.
Often, on Cortex-M devices the bootloader is designed and compiled/linked to run from 0x0 and when it jumps to the main application (compiled andlinked to run at another location) it first sets the VTOR before jumping to the main application.