Closed dozack closed 2 years ago
Hello dear dozack,
Actually LVGL use DMA2D with polling mechanism to fill buffer, blend a map and copy a map. STM32H7 is not multicore therefore lvgl is not working when we are using DMA2D with polling mechanism. So using DMA2D with polling mechanism in disp_flush is safe.
If you want to use DMA2D with interrupts, you must use semaphore/mutex mechanism.
Thanks.
Thanks for response, thats what i wanted to know. I will close the issue now.
Not really an issue, but i wanted to discuss DMA2D usage for
disp_flush()
operation. In some older example repositories, i found comment, that you use DMA2Stream0 for it in order to save DMA2D for lvgl internal procedures enabled by#define LV_USE_GPU_STM32_DMA2D 1
I followed that recommendation and still use regular DMA for
disp_flush()
even though i have seen DMA2D usage in multiple examples.So I wanted to ask, what lvgl is really using DMA2D for and if its really safe to also use it for
disp_flush()
operation (and with interrupts, i am not very happy with polling style apps but i understand these are just examples).Thank you.
https://github.com/lvgl/lv_port_stm32h745i_disco/blob/88e342bb24e9f84e4f9183d0e6ebbae13506f170/CM7/Core/Src/Lvgl_Porting/lvgl_port_lcd.c#L160
https://github.com/lvgl/lv_port_stm32h745i_disco/blob/88e342bb24e9f84e4f9183d0e6ebbae13506f170/CM7/lv_conf.h#L139