From e2ec9f36aab8db8df2a804c17495925d15f3dfcb Mon Sep 17 00:00:00 2001 From: Rdzleo Date: Tue, 10 Mar 2026 17:36:18 +0800 Subject: [PATCH] =?UTF-8?q?1=E3=80=81=E5=90=AF=E7=94=A8LVGL=20GIF=E8=A7=A3?= =?UTF-8?q?=E7=A0=81=E5=99=A8=EF=BC=88CONFIG=5FLV=5FUSE=5FGIF=3Dy=EF=BC=89?= =?UTF-8?q?=EF=BC=8C=E6=94=AF=E6=8C=81=E5=90=A7=E5=94=A7=E6=A8=A1=E5=BC=8F?= =?UTF-8?q?GIF=E5=9B=BE=E7=89=87BLE=E4=BC=A0=E8=BE=93=E5=92=8C=E6=92=AD?= =?UTF-8?q?=E6=94=BE=EF=BC=9B=202=E3=80=81LVGL=E5=86=85=E5=AD=98=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=88=87=E6=8D=A2=E4=B8=BA=E7=B3=BB=E7=BB=9Fmalloc?= =?UTF-8?q?=EF=BC=88CONFIG=5FLV=5FMEM=5FCUSTOM=3Dy=EF=BC=89=EF=BC=8C?= =?UTF-8?q?=E4=BD=BFgifdec=E5=A4=A7=E5=9D=97=E5=88=86=E9=85=8D=E8=B5=B0PSR?= =?UTF-8?q?AM=E9=81=BF=E5=85=8D=E5=86=85=E9=83=A8=E5=A0=86=E4=B8=8D?= =?UTF-8?q?=E8=B6=B3=EF=BC=9B=203=E3=80=81pages.h=20stub=E5=A4=B4=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E8=A1=A5=E5=85=85pages=5Fcleanup=5Fgif()=E5=A3=B0?= =?UTF-8?q?=E6=98=8E=EF=BC=8C=E4=BF=AE=E5=A4=8Dui=5FScreenImg.c=E7=BC=96?= =?UTF-8?q?=E8=AF=91=E9=9A=90=E5=BC=8F=E5=A3=B0=E6=98=8E=E9=94=99=E8=AF=AF?= =?UTF-8?q?=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.6 --- main/pages/include/pages.h | 4 ++++ sdkconfig | 8 +++----- sdkconfig.defaults.esp32s3 | 7 +++++++ 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/main/pages/include/pages.h b/main/pages/include/pages.h index 6ee9ff7..b1696d7 100644 --- a/main/pages/include/pages.h +++ b/main/pages/include/pages.h @@ -19,4 +19,8 @@ void init_spiffs_image_list(void); void free_spiffs_image_list(void); bool set_image_index_by_name(const char *name); +#if LV_USE_GIF +void pages_cleanup_gif(void); +#endif + #endif // _PAGES_STUB_H_ diff --git a/sdkconfig b/sdkconfig index f9310f1..f575e23 100644 --- a/sdkconfig +++ b/sdkconfig @@ -2813,9 +2813,8 @@ CONFIG_LV_COLOR_CHROMA_KEY_HEX=0x00FF00 # # Memory settings # -# CONFIG_LV_MEM_CUSTOM is not set -CONFIG_LV_MEM_SIZE_KILOBYTES=32 -CONFIG_LV_MEM_ADDR=0x0 +CONFIG_LV_MEM_CUSTOM=y +CONFIG_LV_MEM_CUSTOM_INCLUDE="stdlib.h" CONFIG_LV_MEM_BUF_MAX_NUM=16 # CONFIG_LV_MEMCPY_MEMSET_STD is not set # end of Memory settings @@ -2880,7 +2879,6 @@ CONFIG_LV_ASSERT_HANDLER_INCLUDE="assert.h" # Others # # CONFIG_LV_USE_PERF_MONITOR is not set -# CONFIG_LV_USE_MEM_MONITOR is not set # CONFIG_LV_USE_REFR_DEBUG is not set # CONFIG_LV_SPRINTF_CUSTOM is not set # CONFIG_LV_SPRINTF_USE_FLOAT is not set @@ -3054,7 +3052,7 @@ CONFIG_LV_USE_GRID=y # CONFIG_LV_USE_PNG is not set # CONFIG_LV_USE_BMP is not set # CONFIG_LV_USE_SJPG is not set -# CONFIG_LV_USE_GIF is not set +CONFIG_LV_USE_GIF=y # CONFIG_LV_USE_QRCODE is not set # CONFIG_LV_USE_FREETYPE is not set # CONFIG_LV_USE_TINY_TTF is not set diff --git a/sdkconfig.defaults.esp32s3 b/sdkconfig.defaults.esp32s3 index 76927d2..250dad6 100644 --- a/sdkconfig.defaults.esp32s3 +++ b/sdkconfig.defaults.esp32s3 @@ -25,3 +25,10 @@ CONFIG_ESP_SYSTEM_EVENT_TASK_STACK_SIZE=4096 # 编译优化使用 -Os(减小固件体积) CONFIG_COMPILER_OPTIMIZATION_SIZE=y +# 启用 LVGL GIF 解码器(吧唧模式 GIF 图片播放) +CONFIG_LV_USE_GIF=y + +# LVGL 使用标准 malloc(大块分配走 PSRAM,gifdec 需要 ~500KB) +CONFIG_LV_MEM_CUSTOM=y +CONFIG_LV_MEM_CUSTOM_INCLUDE="stdlib.h" +