cancel
Showing results for 
Search instead for 
Did you mean: 

Systick interrupt not working on BOOT_ADD1 context

ABITT.1
Associate III

Hi,

I develop a software using delay (and do Systick resource). This software works fine when it's mapped @0x08000000 and using BOOT_ADD0.

But, when I maps it @0x08008000 and use BOOT_ADD1, no Systick raises !

Somebody has already resolve this problem.

Thanks in advance.

23 REPLIES 23
ABITT.1
Associate III

Thank you for your question.

Finally, it's this register which have a bad value.

after modify it with the 0x08008000 value, it works fine :)

I looking for the good way to program this register, with the good value (corresponding to the mapping setup done into the LD file)

ABITT.1
Associate III

OK, into the SystemInit function, the VTOR register is initialiser with FLASH_BASE and VECT_TAB_OFFSET.

where this data are set ?

berendi
Principal

Assuming your startup assembly code is not much different from mine, replace the statement that sets SCB->VTOR (in system_stm32*.c) with this:

extern uint32_t *g_pfnVectors;
SCB->VTOR = (uint32_t)&g_pfnVectors;

it puts the address of the actual vector table in SCB->VTOR, regardless of where it ends up in memory.

ABITT.1
Associate III

Good, this fix works fine.

Is it planned to take this fix in future issue of STM32CubeIDE ?

Thanks for your help.