2025-11-21 6:11 AM
Hello.
I'm trying to get the LVGL library running on the STM32H7S78.
The simple DMA2D variant (LV_USE_DRAW_DMA2D) with 16-bit color depth works perfectly, but it's not very performant.
Therefore, I'm trying to get the LV_USE_NEMA_GFX variant running instead.
The basis is LVGL version V9.3, which already runs on an STM32U5 with NEMA_GFX.
However, the problem is that it always crashes during initialization in lv_draw_nema_gfx_init().
lv_draw_nema_gfx_unit_t * draw_nema_gfx_unit = lv_draw_create_unit(sizeof(lv_draw_nema_gfx_unit_t));
/*Initiallize NemaGFX*/
nema_init();
draw_nema_gfx_unit->base_unit.dispatch_cb = nema_gfx_dispatch;
draw_nema_gfx_unit->base_unit.evaluate_cb = nema_gfx_evaluate;
draw_nema_gfx_unit->base_unit.delete_cb = nema_gfx_delete;
draw_nema_gfx_unit->base_unit.name = "NEMA_GFX";
/*Create GPU Command List*/
draw_nema_gfx_unit->cl = nema_cl_create();
/*Bind Command List*/
nema_cl_bind_circular(&(draw_nema_gfx_unit->cl));
After calling nema_cl_bind_circular(), the processor jumps to address 0x00000000 or 0xFFFFFFFE.
Since there are no source code for libnemagfx-float-abi-hard.a (used from TouchGFX for the M7), I can't debug the cause of the error.
Does anyone know what could cause an error when calling nema_cl_bind_circular()?
There is plenty of memory available.
I've already moved the nemagfx_pool_mem to PSRAM and, for testing purposes, to internal RAM.
Both times with the same errors.
Does anyone have a working version of LVGL with NEMA-GFX on the STM32H7S78-DK,
or know why these problems occur?
Is libnemagfx-float-abi-hard.a available as source code?