We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
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
#define NVIC_VectTab_FLASH (0x00000000) #define AP_START_SECTOR 0x00010000 void NVIC_SetVectorTable(unsigned long NVIC_VectTab, unsigned long Offset) { SCB->VTOR = NVIC_VectTab | (Offset & (unsigned int)0x1FFFFF80); } int main (void) { void (*user_code_entry)(void); // your code here . . . // the jump to new vector table. NVIC_SetVectorTable(NVIC_VectTab_FLASH, AP_START_SECTOR); user_code_entry = (void (*)(void))((AP_START_SECTOR)+1); // jumps to new position of vector class user_code_entry(); }