cancel
Showing results for 
Search instead for 
Did you mean: 

No SysTick interrupt generated after __libc_init_array call on C++ environment

VHEMaster
Associate III

Initially, there was CubeIDE project for STM32H747XI without TouchGFX and without C++ accordingly. Everything was ok, startup, linker or HAL init sequence were not touched. Everything worked (DSI, LTDC, I2C, etc.)

Time later, I added TouchGFX into project with CubeIDE integrated method (just enable it in software components) and regenerated the code. So C++ appeared, and after that no SysTick is generated.

Accordingly, it doesn't call HAL_IncTick that is very important for HAL functionality. That is causing whole code unworkable because at least DSI init sequence uses HAL_Delay.

So initial failure was at HAL_SYSCFG_EnableVREFBUF func (called by HAL_Init): HAL_GetTick always returned zero.

For experiment, I moved __libc_init_array after HAL_Init: there was SysTick interrupts! so it returned, but after __libc_init_array call - no another SysTick interrupts!

So the issue is inside of __libc_init_array?

Why can it cause this issue and how can it be fixed?

IOC file attached.

0 REPLIES 0