2022-03-17 03:07 AM
Created a simple .ioc based on STM32H733 (the same happens with STM32F429) with software packs SEGGER.I-CUBE-embOS and STMicroelectronics.X-CUBE_TOUCHGFX.
Components enabled with default configs (see attached file).
As per https://support.touchgfx.com/4.18/docs/basic-concepts/operating-system#touchgfx-os-wrappers, OSWrappers::initialize() should initialize a semaphore/mutex (e.g. OS_SEMAPHORE_Create(&frame_buffer_sem, 1);).
Upon execution of MX_TouchGFX_Init(); system hangs in OS_Error() because of OS_ERR_INIT_NOT_CALLED.
The proposed workaround is to move calls to OS_Init(); and OS_InitHW(); before peripheral initialization (USER CODE BEGIN/END SysInit section), but this has to be done any time code is regenerated by CubeMX.
STM32CubeMX 6.5.0
MCU package for H7 1.10.0
SEGGER.I-CUBE-embOS 1.2.0
STMicroelectronics.X-CUBE-TOUCHGFX 4.18.1
Alessandro