Solved
How to load code directly in RAM using ST-Link and STM32CubeIDE?
..
..
Ok, so the problem was that SCB->VTOR was not correctly set (even before HAL_Init() it still pointed to the beginning of FLASH - 0x0800...)
After HAL_Init() I've set
SCB->VTOR = (uint32_t)(0x24040000);
and SysTick interrupt works fine now.
Edit:
Ok, so a better implementation imo is to have in *FLASH.ld:
_eflash = ORIGIN(FLASH);
And in *.c something like:
extern uint32_t _eflash;
SCB->VTOR = (uint32_t)(_eflash);
Enter your E-mail address. We'll send you an e-mail with instructions to reset your password.