ESP32-S3 with ESP-IDF v5.4.1 LVGL 9.2.0 Custom memory allocator
记录ESP32-S3 with ESP-IDF v5.4.1 LVGL 9.2.0 Custom memory allocator, 原因是GUI guider创建多个页面,使用时经常出现crash,怀疑是否是将内部内存消耗殆尽
We enabled CONFIG_LV_USE_CUSTOM_MALLOC in the LVGL configuration to override LVGL’s default memory allocation with our custom implementation using heap_caps_malloc(size, MALLOC_CAP_SPIRAM) to allocate all LVGL memory in PSRAM
github issue tracker
我的解决方案
根据上述github issue中所描述,这种方案不是一个好的选择,在clean之后,代码层面就会reset。
配置
修改标准C functions malloc/realloc/free源码
#include <esp_heap_caps.h>
void * lv_malloc_core(size_t size)
{return heap_caps_malloc(size, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT);
}void * lv_realloc_core(void * p, size_t new_size)
{return heap_caps_realloc(p, new_size, MALLOC_CAP_SPIRAM | MALLOC_CAP_8BIT);
}