Esp32 DRAM segment data does not fit, while using CANVAS

I understand that the DRAM size is limited, and I can’t allocate a 240x240 buffer for my canvas in there. But I couldn’t able to find out how to solve this issue. How can i put the canvas buffer inside external PSRAM? What is the proper work around?
Also I couldn’t find any options to increase LV_MEM_SIZE inside “memory managers settings” in menuconfig.

EDIT: I have found a work around, pretty generic one for esp32 & PSRAM. I have enabled " Allow .bss segment placed in external memory" in menuconfig and added EXT_RAM_ATTR with the buffer declaration. Here is how it looks like now:
static EXT_RAM_ATTR lv_color_t cbuf[LV_CANVAS_BUF_SIZE_TRUE_COLOR(MENU_CANVAS_HEIGHT, MENU_CANVAS_WIDTH)];

What about ps_malloc?

If you mean setting LV_MEM_CUSTOM_ALLOC,
haven’t tried it, but I have tried heap_caps_malloc, didn’t help though. I will check it, but right now I am happy with the current solution.
if that worked, every single obj will use PSRAM? Or there is some logic inside memory management of lvgl too?

I meant using ps_malloc only for the canvas.

1 Like

oh, right. Will try.