cancel
Showing results for 
Search instead for 
Did you mean: 

Problems Initializing NEMA_GFX with LVGL on the STM32H7S78-DK

Heinz_Baumer
Associate II

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?

 

 

 

 

0 REPLIES 0