2020-06-21 10:40 PM
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.
2020-06-24 07:42 AM
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)
2020-06-24 08:02 AM
OK, into the SystemInit function, the VTOR register is initialiser with FLASH_BASE and VECT_TAB_OFFSET.
where this data are set ?
2020-06-24 08:05 AM
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.
2020-06-24 10:41 PM
Good, this fix works fine.
Is it planned to take this fix in future issue of STM32CubeIDE ?
Thanks for your help.