Callback for dma block transfers


Some microcontroller/processors have various types of dma transfer, ie:

  • ram to ram
  • register to ram(single pixel transfer with no source address increment).
  • flash to ram.
  • and so on.

There are callback registration functions on lvgl for these purposes ?


Hi @Baldhead

I think that for I read on documentation when you do the port lvgl for your hardware should assign lvgl functions for that use your hardware functions implemented. So, you can use all types of DMA that you like


I did not find anything about it in the documentation.

No “generic” callback for “generic” microcontrollers/processors.


To support memory-to-memory DMA you would have to configure a custom memcpy function for LVGL. There isn’t a callback in the display driver for these.

RAM to register or register to RAM is not supported directly by LVGL because it works with many other types of displays, however, in flush_cb, you can use whatever DMA type you wish to copy the pixels.


I am thinking about speed up the rendering process of the lvgl library.

Rendering in the buffers passed by the user to the lvgl library.

During rendering the most time-consuming operation is filling the screen (i.e. the buffer) with a color or copying an image to the screen.
Both operations can be replaced by a gpu_fill_cb and gpu_blend_cb.