diff --git a/env_support/cmsis-pack/LVGL.lvgl.8.3.10.pack b/env_support/cmsis-pack/LVGL.lvgl.8.3.11.pack similarity index 93% rename from env_support/cmsis-pack/LVGL.lvgl.8.3.10.pack rename to env_support/cmsis-pack/LVGL.lvgl.8.3.11.pack index 812dd7f92..535d45cc9 100644 Binary files a/env_support/cmsis-pack/LVGL.lvgl.8.3.10.pack and b/env_support/cmsis-pack/LVGL.lvgl.8.3.11.pack differ diff --git a/env_support/cmsis-pack/LVGL.lvgl.pdsc b/env_support/cmsis-pack/LVGL.lvgl.pdsc index 7c52bd065..8c4dde888 100644 --- a/env_support/cmsis-pack/LVGL.lvgl.pdsc +++ b/env_support/cmsis-pack/LVGL.lvgl.pdsc @@ -36,10 +36,17 @@ https://github.com/lvgl/lvgl.git - + + - LVGL 8.3.11 + - Add LittleFS Library to LVGL8 + - Backport Tiny TTF to LVGL8 + - Some minor fixes + + - LVGL 8.3.10 - Some minor fixes + - LVGL 8.3.10 - Add snapshot, fragment, imgfont, gridnav, msg and monkey @@ -303,7 +310,7 @@ --> - + LVGL (Light and Versatile Graphics Library) is a free and open-source graphics library providing everything you need to create an embedded GUI with easy-to-use graphical elements, beautiful visual effects and a low memory footprint. @@ -436,7 +443,7 @@ - + @@ -721,9 +728,26 @@ + + + + Add Tiny TTF Library + + + + + + + +/*! \brief enable Tiny TTF Library */ +#define LV_USE_TINY_TTF 1 + + + + Add RLOTTIE support, an extra librbary is required. @@ -735,7 +759,7 @@ /*! \brief enable RLOTTIE support */ -#define LV_USE_RLOTTIE 1 +#define LV_USE_RLOTTIE 1 @@ -750,7 +774,7 @@ /*! \brief enable ffmpeg support */ -#define LV_USE_FFMPEG 1 +#define LV_USE_FFMPEG 1 @@ -765,7 +789,7 @@ /*! \brief enable ffmpeg support */ -#define LV_USE_IME_PINYIN 1 +#define LV_USE_IME_PINYIN 1 @@ -811,7 +835,7 @@ /*! \brief enable the Grid Navigation support*/ -#define LV_USE_GRIDNAV 1 +#define LV_USE_GRIDNAV 1 @@ -826,7 +850,7 @@ /*! \brief enable the image font support*/ -#define LV_USE_IMGFONT 1 +#define LV_USE_IMGFONT 1 @@ -841,7 +865,7 @@ /*! \brief enable the monkey service support*/ -#define LV_USE_MONKEY 1 +#define LV_USE_MONKEY 1 @@ -856,7 +880,7 @@ /*! \brief enable the message service support*/ -#define LV_USE_MSG 1 +#define LV_USE_MSG 1 @@ -885,7 +909,7 @@ /*! \brief enable demo:bencharmk */ -#define LV_USE_DEMO_BENCHMARK 1 +#define LV_USE_DEMO_BENCHMARK 1 @@ -905,7 +929,7 @@ /*! \brief enable demo:widgets support */ -#define LV_USE_DEMO_WIDGETS 1 +#define LV_USE_DEMO_WIDGETS 1 diff --git a/env_support/cmsis-pack/LVGL.pidx b/env_support/cmsis-pack/LVGL.pidx index ecc110e1c..0ee6be1d8 100644 --- a/env_support/cmsis-pack/LVGL.pidx +++ b/env_support/cmsis-pack/LVGL.pidx @@ -2,8 +2,8 @@ LVGL https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/ - 2023-09-19 + 2023-12-09 - + \ No newline at end of file diff --git a/env_support/cmsis-pack/README.md b/env_support/cmsis-pack/README.md index 5a73e4e6b..911d38dee 100644 --- a/env_support/cmsis-pack/README.md +++ b/env_support/cmsis-pack/README.md @@ -46,12 +46,33 @@ remove the misleading guide above this code segment. - LV_USE_GPU_SWM341_DMA2D - LV_USE_GPU_ARM2D - LV_USE_IME_PINYIN + - LV_USE_PNG + - LV_USE_BMP + - LV_USE_SJPG + - LV_USE_GIF + - LV_USE_QRCODE + - LV_USE_FREETYPE + - LV_USE_TINY_TTF + - LV_USE_RLOTTIE + - LV_USE_FFMPEG + - LV_USE_SNAPSHOT + - LV_USE_MONKEY + - LV_USE_GRIDNAV + - LV_USE_FRAGMENT + - LV_USE_IMGFONT + - LV_USE_MSG + - LV_USE_IME_PINYIN 5. Update macro `LV_ATTRIBUTE_MEM_ALIGN` and `LV_ATTRIBUTE_MEM_ALIGN_SIZE` to force a WORD alignment. ```c #define LV_ATTRIBUTE_MEM_ALIGN_SIZE 4 #define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4))) ``` Update macro `LV_MEM_SIZE` to `(64*1024U)`. + +Update macro `LV_FONT_MONTSERRAT_12` to `1`. + +Update macro `LV_FONT_MONTSERRAT_12` to `1`. + 6. Update Theme related macros: ```c @@ -89,25 +110,41 @@ Update macro `LV_MEM_SIZE` to `(64*1024U)`. #define LV_TICK_CUSTOM 1 #if LV_TICK_CUSTOM extern uint32_t SystemCoreClock; - #define LV_TICK_CUSTOM_INCLUDE "perf_counter.h" - - #if __PER_COUNTER_VER__ < 10902ul - #define LV_TICK_CUSTOM_SYS_TIME_EXPR ((uint32_t)get_system_ticks() / (SystemCoreClock / 1000ul)) - #else - #define LV_TICK_CUSTOM_SYS_TIME_EXPR get_system_ms() - #endif + #define LV_TICK_CUSTOM_INCLUDE "perf_counter.h" + #define LV_TICK_CUSTOM_SYS_TIME_EXPR get_system_ms() #endif /*LV_TICK_CUSTOM*/ #else #define LV_TICK_CUSTOM 0 #if LV_TICK_CUSTOM #define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the system time function*/ #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current system time in ms*/ + /*If using lvgl as ESP32 component*/ + // #define LV_TICK_CUSTOM_INCLUDE "esp_timer.h" + // #define LV_TICK_CUSTOM_SYS_TIME_EXPR ((esp_timer_get_time() / 1000LL)) #endif /*LV_TICK_CUSTOM*/ #endif /*__PERF_COUNTER__*/ ``` -9. Thoroughly remove the `DEMO USAGE` section. -10. Thoroughly remove the '3rd party libraries' section. -10. rename '**lv_conf_template.h**' to '**lv_conf_cmsis.h**'. + + +9. Remove all content in `DEMO USAGE` section but keep the following: + +```c +/*Show some widget. It might be required to increase `LV_MEM_SIZE` */ +#if LV_USE_DEMO_WIDGETS + #define LV_DEMO_WIDGETS_SLIDESHOW 0 +#endif + +/*Benchmark your system*/ +#if LV_USE_DEMO_BENCHMARK +/*Use RGB565A8 images with 16 bit color depth instead of ARGB8565*/ + #define LV_DEMO_BENCHMARK_RGB565A8 1 +#endif +``` + + + +10. Thoroughly remove the `3rd party libraries` section. +11. rename '**lv_conf_template.h**' to '**lv_conf_cmsis.h**'. diff --git a/env_support/cmsis-pack/lv_conf_cmsis.h b/env_support/cmsis-pack/lv_conf_cmsis.h index 3c205331c..a65a34592 100644 --- a/env_support/cmsis-pack/lv_conf_cmsis.h +++ b/env_support/cmsis-pack/lv_conf_cmsis.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v8.3.10 + * Configuration file for v8.3.11 */ /* clang-format off */ @@ -76,6 +76,7 @@ /*Input device read period in milliseconds*/ #define LV_INDEV_DEF_READ_PERIOD 30 /*[ms]*/ + /*Use a custom tick source that tells the elapsed time in milliseconds. *It removes the need to manually update the tick with `lv_tick_inc()`)*/ #ifdef __PERF_COUNTER__ @@ -90,12 +91,13 @@ #if LV_TICK_CUSTOM #define LV_TICK_CUSTOM_INCLUDE "Arduino.h" /*Header for the system time function*/ #define LV_TICK_CUSTOM_SYS_TIME_EXPR (millis()) /*Expression evaluating to current system time in ms*/ - /*If using lvgl as ESP32 component*/ - // #define LV_TICK_CUSTOM_INCLUDE "esp_timer.h" - // #define LV_TICK_CUSTOM_SYS_TIME_EXPR ((esp_timer_get_time() / 1000LL)) + /*If using lvgl as ESP32 component*/ + // #define LV_TICK_CUSTOM_INCLUDE "esp_timer.h" + // #define LV_TICK_CUSTOM_SYS_TIME_EXPR ((esp_timer_get_time() / 1000LL)) #endif /*LV_TICK_CUSTOM*/ #endif /*__PERF_COUNTER__*/ + /*Default Dot Per Inch. Used to initialize default sizes such as widgets sized, style paddings. *(Not so important, you can adjust it to modify default sizes and spaces)*/ #define LV_DPI_DEF 130 /*[px/inch]*/ @@ -178,6 +180,7 @@ * GPU *-----------*/ + /*Use STM32's DMA2D (aka Chrom Art) GPU*/ #if LV_USE_GPU_STM32_DMA2D /*Must be defined to include path of CMSIS header of target processor @@ -185,6 +188,13 @@ #define LV_GPU_DMA2D_CMSIS_INCLUDE #endif +/*Enable RA6M3 G2D GPU*/ +#if LV_USE_GPU_RA6M3_G2D + /*include path of target processor + e.g. "hal_data.h"*/ + #define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h" +#endif + /*Use SWM341's DMA2D GPU*/ #if LV_USE_GPU_SWM341_DMA2D #define LV_GPU_SWM341_DMA2D_INCLUDE "SWM341.h" @@ -200,22 +210,6 @@ #define LV_USE_GPU_NXP_PXP_AUTO_INIT 0 #endif -#if LV_USE_GPU_RA6M3_G2D - /*include path of target processor - e.g. "hal_data.h"*/ - #define LV_GPU_RA6M3_G2D_INCLUDE "hal_data.h" -#endif - -/*Use SDL renderer API*/ -#define LV_USE_GPU_SDL 0 -#if LV_USE_GPU_SDL - #define LV_GPU_SDL_INCLUDE_PATH - /*Texture cache size, 8MB by default*/ - #define LV_GPU_SDL_LRU_SIZE (1024 * 1024 * 8) - /*Custom blend mode for mask drawing, disable if you need to link with older SDL2 lib*/ - #define LV_GPU_SDL_CUSTOM_BLEND_MODE (SDL_VERSION_ATLEAST(2, 0, 6)) -#endif - /*------------- * Logging *-----------*/ @@ -231,11 +225,11 @@ *LV_LOG_LEVEL_ERROR Only critical issue, when the system may fail *LV_LOG_LEVEL_USER Only logs added by the user *LV_LOG_LEVEL_NONE Do not log anything*/ - #define LV_LOG_LEVEL LV_LOG_LEVEL_USER + #define LV_LOG_LEVEL LV_LOG_LEVEL_WARN /*1: Print the log with 'printf'; *0: User need to register a callback with `lv_log_register_print_cb()`*/ - #define LV_LOG_PRINTF 1 + #define LV_LOG_PRINTF 0 /*Enable/disable LV_LOG_TRACE in modules that produces a huge number of logs*/ #define LV_LOG_TRACE_MEM 1 @@ -588,7 +582,6 @@ #define LV_USE_THEME_BASIC 0 #define LV_USE_THEME_MONO 0 #endif - /*----------- * Layouts *----------*/ @@ -599,28 +592,86 @@ /*A layout similar to Grid in CSS.*/ #define LV_USE_GRID 1 +/*--------------------- + * 3rd party libraries + *--------------------*/ + +/*File system interfaces for common APIs */ + +/*API for fopen, fread, etc*/ +#define LV_USE_FS_STDIO 0 +#if LV_USE_FS_STDIO + #define LV_FS_STDIO_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_STDIO_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ + #define LV_FS_STDIO_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ +#endif + +/*API for open, read, etc*/ +#define LV_USE_FS_POSIX 0 +#if LV_USE_FS_POSIX + #define LV_FS_POSIX_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_POSIX_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ + #define LV_FS_POSIX_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ +#endif + +/*API for CreateFile, ReadFile, etc*/ +#define LV_USE_FS_WIN32 0 +#if LV_USE_FS_WIN32 + #define LV_FS_WIN32_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_WIN32_PATH "" /*Set the working directory. File/directory paths will be appended to it.*/ + #define LV_FS_WIN32_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ +#endif + +/*API for FATFS (needs to be added separately). Uses f_open, f_read, etc*/ +#define LV_USE_FS_FATFS 0 +#if LV_USE_FS_FATFS + #define LV_FS_FATFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_FATFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ +#endif + +/*API for LittleFS (library needs to be added separately). Uses lfs_file_open, lfs_file_read, etc*/ +#define LV_USE_FS_LITTLEFS 0 +#if LV_USE_FS_LITTLEFS + #define LV_FS_LITTLEFS_LETTER '\0' /*Set an upper cased letter on which the drive will accessible (e.g. 'A')*/ + #define LV_FS_LITTLEFS_CACHE_SIZE 0 /*>0 to cache this number of bytes in lv_fs_read()*/ +#endif + + + +/*FreeType library*/ +#if LV_USE_FREETYPE + /*Memory used by FreeType to cache characters [bytes] (-1: no caching)*/ + #define LV_FREETYPE_CACHE_SIZE (16 * 1024) + #if LV_FREETYPE_CACHE_SIZE >= 0 + /* 1: bitmap cache use the sbit cache, 0:bitmap cache use the image cache. */ + /* sbit cache:it is much more memory efficient for small bitmaps(font size < 256) */ + /* if font size >= 256, must be configured as image cache */ + #define LV_FREETYPE_SBIT_CACHE 0 + /* Maximum number of opened FT_Face/FT_Size objects managed by this cache instance. */ + /* (0:use system defaults) */ + #define LV_FREETYPE_CACHE_FT_FACES 0 + #define LV_FREETYPE_CACHE_FT_SIZES 0 + #endif +#endif + +/*Tiny TTF library*/ +#if LV_USE_TINY_TTF + /*Load TTF data from files*/ + #define LV_TINY_TTF_FILE_SUPPORT 0 +#endif + + +/*FFmpeg library for image decoding and playing videos + *Supports all major image formats so do not enable other image decoder with it*/ +#if LV_USE_FFMPEG + /*Dump input information to stderr*/ + #define LV_FFMPEG_DUMP_FORMAT 0 +#endif + /*----------- * Others *----------*/ -/*1: Enable API to take snapshot for object*/ -#define LV_USE_SNAPSHOT 0 - -/*1: Enable Monkey test*/ -#define LV_USE_MONKEY 0 - -/*1: Enable grid navigation*/ -#define LV_USE_GRIDNAV 0 - -/*1: Enable lv_obj fragment*/ -#define LV_USE_FRAGMENT 0 - -/*1: Support using images as font in label or span widgets */ -#define LV_USE_IMGFONT 0 - -/*1: Enable a published subscriber based messaging system */ -#define LV_USE_MSG 0 - /*1: Enable Pinyin input method*/ /*Requires: lv_keyboard*/ #if LV_USE_IME_PINYIN @@ -645,6 +696,20 @@ /*Enable the examples to be built with the library*/ #define LV_BUILD_EXAMPLES 1 +/*=================== + * DEMO USAGE + ====================*/ + +/*Show some widget. It might be required to increase `LV_MEM_SIZE` */ +#if LV_USE_DEMO_WIDGETS + #define LV_DEMO_WIDGETS_SLIDESHOW 0 +#endif + +/*Benchmark your system*/ +#if LV_USE_DEMO_BENCHMARK +/*Use RGB565A8 images with 16 bit color depth instead of ARGB8565*/ + #define LV_DEMO_BENCHMARK_RGB565A8 1 +#endif /*--END OF LV_CONF_H--*/ diff --git a/library.json b/library.json index 0e89dff3e..11697d759 100644 --- a/library.json +++ b/library.json @@ -1,6 +1,6 @@ { "name": "lvgl", - "version": "8.3.10", + "version": "8.3.11", "keywords": "graphics, gui, embedded, tft, lvgl", "description": "Graphics library to create embedded GUI with easy-to-use graphical elements, beautiful visual effects and low memory footprint. It offers anti-aliasing, opacity, and animations using only one frame buffer.", "repository": { diff --git a/library.properties b/library.properties index 87e1cbc89..bc7411552 100644 --- a/library.properties +++ b/library.properties @@ -1,5 +1,5 @@ name=lvgl -version=8.3.10 +version=8.3.11 author=kisvegabor maintainer=kisvegabor,embeddedt,pete-pjb sentence=Full-featured Graphics Library for Embedded Systems diff --git a/lv_conf_template.h b/lv_conf_template.h index f713719be..bed77fb8f 100644 --- a/lv_conf_template.h +++ b/lv_conf_template.h @@ -1,6 +1,6 @@ /** * @file lv_conf.h - * Configuration file for v8.3.9 + * Configuration file for v8.3.11 */ /* diff --git a/lvgl.h b/lvgl.h index c37b2ee8d..47700d4e6 100644 --- a/lvgl.h +++ b/lvgl.h @@ -15,7 +15,7 @@ extern "C" { ***************************/ #define LVGL_VERSION_MAJOR 8 #define LVGL_VERSION_MINOR 3 -#define LVGL_VERSION_PATCH 10 +#define LVGL_VERSION_PATCH 11 #define LVGL_VERSION_INFO "" /*********************