LVGL lvgl 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. https://raw.githubusercontent.com/lvgl/lvgl/master/env_support/cmsis-pack/ https://github.com/lvgl/lvgl/issues/new/choose LICENCE.txt https://github.com/lvgl/lvgl.git - LVGL 9.1.1-dev - LVGL 9.1.0 - See Change Log - LVGL 8.4.0 - Some minor fixes - LVGL 9.0.0 - Implements a New Render Architecture that enables parallel processing - Accelerates SW-Render with NEON and Helium technology for Cortex architectures. - Adds supports for GPUs: VG-Lite, PXP, Dave2D and etc. - Adds display drivers - Adds Demos for benchmarks, render test etc, - Other fixes - 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 - Other minor fixes - LVGL 8.3.8 - Add renesas-ra6m3 gpu adaptation - Improve performance and add more features for PXP and VGLite - Minor updates - LVGL 8.3.7 release - Various fixes - LVGL 8.3.6 release - Various fixes - LVGL 8.3.5 release - Use LVGL version as the cmsis-pack version - Fix GPU support for NXP PXP and NXP VGLite - Rework stm32 DMA2D support - Various fixes - LVGL 9.0.0-dev - The final update for 2022, Happy New Year - LVGL 9.0.0-dev - Monthly update for November - LVGL 9.0.0-dev - Monthly update for October - LVGL 9.0.0-dev - Monthly update for September - Introduce a new component: File Explorer - Add support for TTF (Tiny TTF) - Add GPU Support for GD32F450-IPA - LVGL 9.0.0-dev - Add the binding for pikascript (an ultra-light-weight python VM) - Monthly update for August - LVGL 9.0.0-dev - Renderer refactory - Update GPU-Arm-2D - Other updates - LVGL 8.3.0 release - Apply patch for memory leaking issue - Apply patch to speed up non normal blend mode - Add 9-key input mode to pinyin - Other minor changes - LVGL 8.3.0-dev - Monthly update for June - Add Pinyin as input method - Update benchmark to support RGB565-A8 - Update support for layers - LVGL 8.3.0-dev - Monthly update for May - Update drawing service - Update GPU support for Arm-2D library - Update GPU support for NXP PXP/VGLite - Improving the accuracy of benchmark. - Add new colour support for RGB565A8 - LVGL 8.3.0-dev - Monthly update for April - Add GPU support for SWM341-DMA2D - LVGL 8.3.0-dev - Monthly update for March - Add GPU support for Arm-2D library - LVGL 8.3.0-dev - Monthly update for February - LVGL 8.2.0 - Enable LV_TICK_CUSTOM when perf_counter is detected. - Celebrate Spring Festival Cortex-M SysTick Performance Analysis Support NEON based processors Support Helium based processors Require LVGL Essential Service Require LVGL Essential Service and Demo Assets Dependency of Benchmark Require Arm-2D Support Condition for STM32-DMA2D Condition for SWM341-DMA2D Condition for NXP-PXP Condition for NXP-VGLite Condition for GD32-IPA Condition for Renesas-Dave2D 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. The Essential services of LVGL (without extra content) /*! \brief use lv_config_cmsis.h which will be pre-included */ #define LV_CONF_SKIP #define LV_LVGL_H_INCLUDE_SIMPLE 1 /*! \brief Enable LVGL */ #define RTE_GRAPHICS_LVGL Add the display driver for Windows backend /* use display driver for Windows backend*/ */ #define LV_USE_WINDOWS 1 Add the display driver for Linux /dev/dri/card*/ /* use display driver for Linux /dev/dri/card*/ */ #define LV_USE_LINUX_DRM 1 Add the display driver for Linux /dev/fb /* use display driver for Linux /dev/fb */ #define LV_USE_LINUX_FBDEV 1 Add the display driver for TFT_eSPI /* use display driver for TFT_eSPI */ #define LV_USE_TFT_ESPI 1 Add the display driver for ILI9341 /* use display driver for ILI9341 */ #define LV_USE_ILI9341 1 Add the display driver for st7735 /* use display driver for st7735 */ #define LV_USE_ST7735 1 Add the display driver for st7789 /* use display driver for st7789 */ #define LV_USE_ST7789 1 Add the display driver for st7796 /* use display driver for st7796 */ #define LV_USE_ST7796 1 Add the support for pthreads /* Select an operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS * - LV_OS_CMSIS_RTOS2 * - LV_OS_RTTHREAD * - LV_OS_WINDOWS * - LV_OS_MQX * - LV_OS_CUSTOM */ #define LV_USE_OS LV_OS_PTHREAD Add the support for FreeRTOS /* Select an operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS * - LV_OS_CMSIS_RTOS2 * - LV_OS_RTTHREAD * - LV_OS_WINDOWS * - LV_OS_MQX * - LV_OS_CUSTOM */ #define LV_USE_OS LV_OS_FREERTOS Add the support for CMSIS-RTOS2 APIs /* Select an operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS * - LV_OS_CMSIS_RTOS2 * - LV_OS_RTTHREAD * - LV_OS_WINDOWS * - LV_OS_MQX * - LV_OS_CUSTOM */ #define LV_USE_OS LV_OS_CMSIS_RTOS2 Add the support for RT-Thread APIs /* Select an operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS * - LV_OS_CMSIS_RTOS2 * - LV_OS_RTTHREAD * - LV_OS_WINDOWS * - LV_OS_MQX * - LV_OS_CUSTOM */ #define LV_USE_OS LV_OS_RTTHREAD Add the support for Windows APIs /* Select an operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS * - LV_OS_CMSIS_RTOS2 * - LV_OS_RTTHREAD * - LV_OS_WINDOWS * - LV_OS_MQX * - LV_OS_CUSTOM */ #define LV_USE_OS LV_OS_WINDOWS Add the support for MQX APIs /* Select an operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS * - LV_OS_CMSIS_RTOS2 * - LV_OS_RTTHREAD * - LV_OS_WINDOWS * - LV_OS_MQX * - LV_OS_CUSTOM */ #define LV_USE_OS LV_OS_MQX Add a user customized (RT)OS support /* Select an operating system to use. Possible options: * - LV_OS_NONE * - LV_OS_PTHREAD * - LV_OS_FREERTOS * - LV_OS_CMSIS_RTOS2 * - LV_OS_RTTHREAD * - LV_OS_WINDOWS * - LV_OS_CUSTOM */ #define LV_USE_OS LV_OS_CUSTOM #define LV_OS_CUSTOM_INCLUDE "lv_os_custom.h" Porting Templates for display devices. Porting Templates for STM32 devices. Porting Templates for input devices. Porting Templates for the file system. An hardware acceleration from Renesas Dave2D /*! \brief enable Renesas Dave2D */ #define LV_USE_DRAW_DAVE2D 1 An hardware acceleration from NXP-PXP /*! \brief enable NXP PXP */ #define LV_USE_DRAW_PXP 1 An hardware acceleration from NXP-VGLite /*! \brief enable NXP VGLite */ #define LV_USE_DRAW_VGLITE 1 An hardware acceleration from VG-Lite GPU /*! \brief enable VG-Lite GPU */ #define LV_USE_DRAW_VG_LITE 1 Using existing SDL2 APIs for acceleration /*! \brief enable SDL2 acceleration*/ #define LV_USE_DRAW_SDL 1 Add the Barcode code library /*! \brief enable Barcode support */ #define LV_USE_BARCODE 1 Add BMP decoder library /*! \brief enable BMP support */ #define LV_USE_BMP 1 Add FFmpeg library for image decoding and playing videos, an extra librbary is required. /*! \brief enable ffmpeg support */ #define LV_USE_FFMPEG 1 Add FreeType library, an extra librbary is required. /*! \brief enable freetype support */ #define LV_USE_FREETYPE 1 Add API for FATFS (needs to be added separately). Uses f_open, f_read, etc /*! \brief enable FATFS support */ #define LV_USE_FS_FATFS 1 Add API for memory-mapped file access. /*! \brief enable memory-mapped file access */ #define LV_USE_FS_MEMFS 1 Add API for file access via POSIX /*! \brief enable POSIX file access */ #define LV_USE_FS_POSIX 1 Add API for file access via STDIO /*! \brief enable STDIO file access */ #define LV_USE_FS_STDIO 1 Add API for file access via LittleFs /*! \brief enable LittleFs file access */ #define LV_USE_FS_LITTLEFS 1 Add API for file access via Arduino LittleFs /*! \brief enable Arduino LittleFs file access */ #define LV_USE_FS_ARDUINO_ESP_LITTLEFS 1 Add GIF support /*! \brief enable gif support */ #define LV_USE_GIF 1 Add libjpeg-turbo decoder library /*! \brief enable ibjpeg-turbo decoder */ #define LV_USE_LIBJPEG_TURBO 1 Add PNG decoder(libpng) library /*! \brief enable PNG decoder(libpng) library */ #define LV_USE_LIBPNG 1 Add LODEPNG decoder library /*! \brief enable LODEPNG decoder library */ #define LV_USE_LODEPNG 1 Add LZ4 compress/decompress lib /*! \brief enable LZ4 compress/decompress lib */ #define LV_USE_LZ4 1 #define LV_USE_LZ4_INTERNAL 1 #define LV_USE_LZ4_EXTERNAL 0 Add QR code library /*! \brief enable QR code library */ #define LV_USE_QRCODE 1 Add LVGL's version of RLE compression method support /*! \brief LVGL's version of RLE compression method support */ #define LV_USE_RLE 1 Add Rlottie library, an extra librbary is required. /*! \brief enable Rlottie library */ #define LV_USE_RLOTTIE 1 Add ThorVG (vector graphics library), an extra librbary is required. /*! \brief enable ThorVG (vector graphics library) */ #define LV_USE_VECTOR_GRAPHIC 1 #define LV_USE_THORVG_INTERNAL 1 #define LV_USE_THORVG_EXTERNAL 0 Add Built-in TTF decoder /*! \brief enable Built-in TTF decoder */ #define LV_USE_TINY_TTF 1 Add JPG + split JPG decoder library. Split JPG is a custom format optimized for embedded systems. /*! \brief enable JPG + split JPG decoder library. */ #define LV_USE_TJPGD 1 Add a file explorer /*! \brief enable file explorer support */ #define LV_USE_FILE_EXPLORER 1 Add the Fragment service /*! \brief enable lv_obj fragment */ #define LV_USE_FRAGMENT 1 Add the Grid Navigation service /*! \brief enable the Grid Navigation support*/ #define LV_USE_GRIDNAV 1 Add Pinyin input method /*! \brief Pinyin input method */ #define LV_USE_IME_PINYIN 1 Add Support for using images as font in label or span widgets /*! \brief Support using images as font in label or span widgets */ #define LV_USE_IMGFONT 1 Add the Monkey test service /*! \brief enable Monkey test*/ #define LV_USE_MONKEY 1 Add the API to take snapshot for object /*! \brief enable API to take snapshot for object */ #define LV_USE_SNAPSHOT 1 Add the official benchmark. Add the official benchmark. /*! \brief enable demo:benchmark */ #define LV_USE_DEMO_BENCHMARK 1 Add the Flex layout demo /*! \brief enable the Flex layout demo */ #define LV_USE_DEMO_FLEX_LAYOUT 1 Add the demonstrate the usage of encoder and keyboard /*! \brief enable the demonstrate the usage of encoder and keyboard */ #define LV_USE_DEMO_KEYPAD_AND_ENCODER 1 Add the Smart-phone like multi-language demo. /*! \brief enable the Smart-phone like multi-language demo */ #define LV_USE_DEMO_MULTILANG 1 Add the music player demo /*! \brief enable the music player demo */ #define LV_USE_DEMO_MUSIC 1 Add the demonstration for scroll settings /*! \brief enable the demonstration for scroll settings */ #define LV_USE_DEMO_SCROLL 1 Add the Stress test for LVGL /*! \brief enable the Stress test for LVGL */ #define LV_USE_DEMO_STRESS 1 Add the Widget transformation demo /*! \brief enable the Widget transformation demo */ #define LV_USE_DEMO_TRANSFORM 1 Add the Vector graphic demo /*! \brief enable the Vector graphic demo */ #define LV_USE_DEMO_VECTOR_GRAPHIC 1 Add the demo:widgets /*! \brief enable demo:widgets support */ #define LV_USE_DEMO_WIDGETS 1 Add the Render test for each primitives. Requires at least 480x272 display /*! \brief add Render test for each primitives */ #define LV_USE_DEMO_RENDER 1