-
-
Notifications
You must be signed in to change notification settings - Fork 214
Closed
Labels
Description
Hi, I've been running into what seems to be memory issues causing an MBED OS crash with LVGL. I was looking around to see draw buffer allocations and ran into this code. I am confused on the purpose of the 2nd draw buffer malloc when it is never used, is this an oversight?
Additionally, should this malloc size be multiplied by sizeof(lv_color_t) for the ideal lvgl recommendation of 1/10th buffer size
ArduinoCore-mbed/libraries/Arduino_H7_Video/src/Arduino_H7_Video.cpp
Lines 108 to 130 in f7ff411
#if (LVGL_VERSION_MAJOR == 9) | |
/* Create a draw buffer */ | |
static lv_color_t * buf1 = (lv_color_t*)malloc((width() * height() / 10)); /* Declare a buffer for 1/10 screen size */ | |
if (buf1 == NULL) { | |
return 2; /* Insuff memory err */ | |
} | |
static lv_color_t * buf2 = (lv_color_t*)malloc((width() * height() / 10)); /* Declare a buffer for 1/10 screen size */ | |
if (buf2 == NULL) { | |
return 2; /* Insuff memory err */ | |
} | |
lv_display_t *display; | |
if(_rotated) { | |
display = lv_display_create(height(), width()); | |
lv_display_set_rotation(display, LV_DISPLAY_ROTATION_270); | |
//display->sw_rotate = 1; | |
} else { | |
display = lv_display_create(width(), height()); | |
} | |
lv_display_set_buffers(display, buf1, NULL, width() * height() / 10, LV_DISPLAY_RENDER_MODE_PARTIAL); /*Initialize the display buffer.*/ | |
lv_display_set_flush_cb(display, lvgl_displayFlushing); | |
lvgl_inc_thd.start(inc_thd); |