2025-02-24 02:27 PM - edited 2025-02-24 02:35 PM
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.