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