diff --git a/cmsis-pack/LVGL.lvgl.0.8.2.pack b/cmsis-pack/LVGL.lvgl.0.8.3.pack
similarity index 82%
rename from cmsis-pack/LVGL.lvgl.0.8.2.pack
rename to cmsis-pack/LVGL.lvgl.0.8.3.pack
index d84f56a134..f854014302 100644
Binary files a/cmsis-pack/LVGL.lvgl.0.8.2.pack and b/cmsis-pack/LVGL.lvgl.0.8.3.pack differ
diff --git a/cmsis-pack/LVGL.lvgl.pdsc b/cmsis-pack/LVGL.lvgl.pdsc
index 5f594bea52..d2b4a2be6e 100644
--- a/cmsis-pack/LVGL.lvgl.pdsc
+++ b/cmsis-pack/LVGL.lvgl.pdsc
@@ -36,8 +36,10 @@
https://github.com/lvgl/lvgl.git
-
+
- LVGL v8.1.0
+ - Add benchmark
+ - Add Demo:Widgets
@@ -291,7 +293,7 @@
/*! \brief Enable LVGL */
-#define RTE_GRAPICS_LVGL
+#define RTE_GRAPHICS_LVGL
@@ -529,6 +531,53 @@
+
+
+ Add the official benchmark.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+/*! \brief enable demo:bencharmk */
+#define LV_USE_DEMO_BENCHMARK 1
+
+
+
+
+
+ Add the demo:widgets
+
+
+
+
+
+
+
+
+
+
+
+
+/*! \brief enable demo:widgets support */
+#define LV_USE_DEMO_WIDGETS 1
+
+
+
diff --git a/cmsis-pack/README.md b/cmsis-pack/README.md
new file mode 100644
index 0000000000..774219d091
--- /dev/null
+++ b/cmsis-pack/README.md
@@ -0,0 +1,119 @@
+# How to Create CMSIS-Pack
+
+
+
+## STEP 1 Update 'lv_conf_cmsis.h'
+
+1. Copy the **lv_conf_template.h** to '**cmsis-pack**' directory
+
+2. Set the macro protector to '1'
+
+```c
+...
+/* clang-format off */
+#if 1 /*Set it to "1" to enable content*/
+...
+```
+
+
+3. Add including for '**RTE_Components.h**'
+
+```c
+#ifndef LV_CONF_H
+#define LV_CONF_H
+
+#include
+#include "RTE_Components.h"
+...
+```
+
+4. Remove macro definitions for
+ - LV_USE_GPU_STM32_DMA2D
+ - LV_USE_GPU_NXP_PXP
+ - LV_USE_GPU_NXP_VG_LITE
+5. Update macro LV_ATTRIBUTE_MEM_ALIGN to force a WORD alignment.
+```c
+#define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4)))
+```
+6. Update Theme related macros:
+
+```c
+#ifdef RTE_GRAPHICS_LVGL_USE_EXTRA_THEMES
+ /*A simple, impressive and very complete theme*/
+ #define LV_USE_THEME_DEFAULT 1
+ #if LV_USE_THEME_DEFAULT
+
+ /*0: Light mode; 1: Dark mode*/
+ #define LV_THEME_DEFAULT_DARK 0
+
+ /*1: Enable grow on press*/
+ #define LV_THEME_DEFAULT_GROW 1
+
+ /*Default transition time in [ms]*/
+ #define LV_THEME_DEFAULT_TRANSITION_TIME 80
+ #endif /*LV_USE_THEME_DEFAULT*/
+
+ /*A very simple theme that is a good starting point for a custom theme*/
+ #define LV_USE_THEME_BASIC 1
+
+ /*A theme designed for monochrome displays*/
+ #define LV_USE_THEME_MONO 1
+#else
+ #define LV_USE_THEME_DEFAULT 0
+ #define LV_USE_THEME_BASIC 0
+ #define LV_USE_THEME_MONO 0
+#endif
+```
+
+7. Thoroughly remove the 'DEMO USAGE' section.
+8. Thoroughly remove the '3rd party libraries' section.
+9. rename '**lv_conf_template.h**' to '**lv_conf_cmsis.h**'.
+
+
+
+## STEP 2 Check, Update and Run the 'gen_pack.sh'
+
+```sh
+if [ `uname -s` = "Linux" ]
+ then
+ CMSIS_PACK_PATH="/home/$USER/.arm/Packs/ARM/CMSIS/5.7.0/"
+ PATH_TO_ADD="$CMSIS_PACK_PATH/CMSIS/Utilities/Linux64/"
+else
+ CMSIS_PACK_PATH="/C/Users/gabriel/AppData/Local/Arm/Packs/ARM/CMSIS/5.7.0"
+ PATH_TO_ADD="/C/Program Files (x86)/7-Zip/:$CMSIS_PACK_PATH/CMSIS/Utilities/Win32/:/C/xmllint/"
+fi
+[[ ":$PATH:" != *":$PATH_TO_ADD}:"* ]] && PATH="${PATH}:${PATH_TO_ADD}"
+echo $PATH_TO_ADD appended to PATH
+echo " "
+```
+
+
+
+### A. For Windows users
+
+Update the '**CMSIS_PACK_PATH**' accordingly (Usually just replace the name gabriel with your own windows account name is sufficient.).
+
+Update the '**PATH_TO_ADD**' to point to the installation folders of **7Zip** and **xmllint**.
+
+Launch the git-bash and go to the cmsis-pack folder.
+
+enter the following command:
+
+```sh
+./gen_pack.sh
+```
+
+
+
+### B. For Linux Users
+
+Update '**PATH_TO_ADD**' if necessary.
+
+go to the cmsis-pack folder.
+
+enter the following command:
+
+```sh
+./gen_pack.sh
+```
+
diff --git a/cmsis-pack/gen_pack.sh b/cmsis-pack/gen_pack.sh
index 8f8c0df5bf..2764db21b4 100644
--- a/cmsis-pack/gen_pack.sh
+++ b/cmsis-pack/gen_pack.sh
@@ -48,6 +48,7 @@ PACK_DIRS="
../rt-thread
../zephyr
../cmake
+ ../demos
"
@@ -190,6 +191,16 @@ fi
PACKNAME=`cat PackName.txt`
rm -rf PackName.txt
+echo remove unrequired files and folders...
+rm -rf $PACK_BUILD/demos/keypad_encoder
+rm -rf $PACK_BUILD/demos/music
+rm -rf $PACK_BUILD/demos/stress
+rm -rf $PACK_BUILD/demos/widgets/screenshot1.gif
+
+# echo apply patches...
+# rm -rf $PACK_BUILD/demos/lv_demos.h
+# cp -f ./lv_demos.h $PACK_BUILD/demos/
+
# Archiving
# $ZIP a $PACKNAME
echo creating pack file $PACKNAME
@@ -217,6 +228,7 @@ echo "build of pack succeeded"
echo "cleaning up ..."
rm -rf $PACK_BUILD
+
echo " "
echo Completed CMSIS-Pack Generation: `date`
\ No newline at end of file
diff --git a/cmsis-pack/lv_conf_cmsis.h b/cmsis-pack/lv_conf_cmsis.h
index 8278c89731..8d4e4137ee 100644
--- a/cmsis-pack/lv_conf_cmsis.h
+++ b/cmsis-pack/lv_conf_cmsis.h
@@ -12,6 +12,7 @@
*/
/* clang-format off */
+#if 1 /*Set it to "1" to enable content*/
#ifndef LV_CONF_H
#define LV_CONF_H
@@ -150,7 +151,7 @@
*-----------*/
/*Use STM32's DMA2D (aka Chrom Art) GPU*/
-/*#define LV_USE_GPU_STM32_DMA2D 0 */
+
#if LV_USE_GPU_STM32_DMA2D
/*Must be defined to include path of CMSIS header of target processor
e.g. "stm32f769xx.h" or "stm32f429xx.h"*/
@@ -158,7 +159,7 @@
#endif
/*Use NXP's PXP GPU iMX RTxxx platforms*/
-/*#define LV_USE_GPU_NXP_PXP 0 */
+
#if LV_USE_GPU_NXP_PXP
/*1: Add default bare metal and FreeRTOS interrupt handling routines for PXP (lv_gpu_nxp_pxp_osa.c)
* and call lv_gpu_nxp_pxp_init() automatically during lv_init(). Note that symbol SDK_OS_FREE_RTOS
@@ -169,13 +170,16 @@
#endif
/*Use NXP's VG-Lite GPU iMX RTxxx platforms*/
-/*#define LV_USE_GPU_NXP_VG_LITE 0 */
+
/*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
/*-------------
@@ -287,12 +291,12 @@
/*Will be added where memories needs to be aligned (with -Os data might not be aligned to boundary by default).
* E.g. __attribute__((aligned(4)))*/
-#define LV_ATTRIBUTE_MEM_ALIGN
+#define LV_ATTRIBUTE_MEM_ALIGN __attribute__((aligned(4)))
/*Attribute to mark large constant arrays for example font's bitmaps*/
#define LV_ATTRIBUTE_LARGE_CONST
-/*Complier prefix for a big array declaration in RAM*/
+/*Compiler prefix for a big array declaration in RAM*/
#define LV_ATTRIBUTE_LARGE_RAM_ARRAY
/*Place performance critical functions into a faster memory (e.g RAM)*/
@@ -339,7 +343,7 @@
/*Demonstrate special features*/
#define LV_FONT_MONTSERRAT_12_SUBPX 0
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/
-#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Perisan letters and all their forms*/
+#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Persian letters and all their forms*/
#define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/
/*Pixel perfect monospace fonts*/
@@ -522,31 +526,25 @@
* Themes
*----------*/
-#ifdef RTE_GRAPHICS_LVGL_USE_EXTRA_THEMES
- /*A simple, impressive and very complete theme*/
- #define LV_USE_THEME_DEFAULT 1
- #if LV_USE_THEME_DEFAULT
+/*A simple, impressive and very complete theme*/
+#define LV_USE_THEME_DEFAULT 1
+#if LV_USE_THEME_DEFAULT
- /*0: Light mode; 1: Dark mode*/
- #define LV_THEME_DEFAULT_DARK 0
+ /*0: Light mode; 1: Dark mode*/
+ #define LV_THEME_DEFAULT_DARK 0
- /*1: Enable grow on press*/
- #define LV_THEME_DEFAULT_GROW 1
+ /*1: Enable grow on press*/
+ #define LV_THEME_DEFAULT_GROW 1
- /*Default transition time in [ms]*/
- #define LV_THEME_DEFAULT_TRANSITION_TIME 80
- #endif /*LV_USE_THEME_DEFAULT*/
+ /*Default transition time in [ms]*/
+ #define LV_THEME_DEFAULT_TRANSITION_TIME 80
+#endif /*LV_USE_THEME_DEFAULT*/
- /*A very simple theme that is a good starting point for a custom theme*/
- #define LV_USE_THEME_BASIC 1
+/*A very simple theme that is a good starting point for a custom theme*/
+#define LV_USE_THEME_BASIC 1
- /*A theme designed for monochrome displays*/
- #define LV_USE_THEME_MONO 1
-#else
- #define LV_USE_THEME_DEFAULT 0
- #define LV_USE_THEME_BASIC 0
- #define LV_USE_THEME_MONO 0
-#endif
+/*A theme designed for monochrome displays*/
+#define LV_USE_THEME_MONO 1
/*-----------
* Layouts
@@ -562,66 +560,6 @@
* 3rd party libraries
*--------------------*/
-#if 0 /*TODO: remove as a workaround */
-
- /*File system interfaces for common APIs
- *To enable set a driver letter for that API*/
- #define LV_USE_FS_STDIO '\0' /*Uses fopen, fread, etc*/
- //#define LV_FS_STDIO_PATH "/home/john/" /*Set the working directory. If commented it will be "./" */
-
- #define LV_USE_FS_POSIX '\0' /*Uses open, read, etc*/
- //#define LV_FS_POSIX_PATH "/home/john/" /*Set the working directory. If commented it will be "./" */
-
- #define LV_USE_FS_WIN32 '\0' /*Uses CreateFile, ReadFile, etc*/
- //#define LV_FS_WIN32_PATH "C:\\Users\\john\\" /*Set the working directory. If commented it will be ".\\" */
-
- #define LV_USE_FS_FATFS '\0' /*Uses f_open, f_read, etc*/
-
- /*PNG decoder library*/
- #define LV_USE_PNG 0
-
- /*BMP decoder library*/
- #define LV_USE_BMP 0
-
- /* JPG + split JPG decoder library.
- * Split JPG is a custom format optimized for embedded systems. */
- #define LV_USE_SJPG 0
-
- /*GIF decoder library*/
- #define LV_USE_GIF 0
-
- /*QR code library*/
- #define LV_USE_QRCODE 0
-
- /*FreeType library*/
- #define LV_USE_FREETYPE 0
-
- #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
-
- /*Rlottie library*/
- #define LV_USE_RLOTTIE 0
-
- /*FFmpeg library for image decoding and playing videos
- *Supports all major image formats so do not enable other image decoder with it*/
- #define LV_USE_FFMPEG 0
- #if LV_USE_FFMPEG
- /*Dump input information to stderr*/
- #define LV_FFMPEG_AV_DUMP_FORMAT 0
- #endif
-#endif
/*-----------
* Others
@@ -640,36 +578,8 @@
/*Enable the examples to be built with the library*/
#define LV_BUILD_EXAMPLES 1
-/*===================
- * DEMO USAGE
- ====================*/
-
-/*Show some widget*/
-#define LV_USE_DEMO_WIDGETS 0
-#if LV_USE_DEMO_WIDGETS
-#define LV_DEMO_WIDGETS_SLIDESHOW 0
-#endif
-
-/*Demonstrate the usage of encoder and keyboard*/
-#define LV_USE_DEMO_KEYPAD_AND_ENCODER 0
-
-/*Benchmark your system*/
-#define LV_USE_DEMO_BENCHMARK 0
-
-/*Stress test for LVGL*/
-#define LV_USE_DEMO_STRESS 0
-
-/*Music player demo*/
-#define LV_USE_DEMO_MUSIC 0
-#if LV_USE_DEMO_MUSIC
-# define LV_DEMO_MUSIC_SQUARE 0
-# define LV_DEMO_MUSIC_LANDSCAPE 0
-# define LV_DEMO_MUSIC_ROUND 0
-# define LV_DEMO_MUSIC_LARGE 0
-# define LV_DEMO_MUSIC_AUTO_PLAY 0
-#endif
-
/*--END OF LV_CONF_H--*/
#endif /*LV_CONF_H*/
+#endif /*End of "Content enable"*/
diff --git a/demos/lv_demos.h b/demos/lv_demos.h
index 4fd639e031..10aa7c6f5f 100644
--- a/demos/lv_demos.h
+++ b/demos/lv_demos.h
@@ -15,11 +15,25 @@ extern "C" {
*********************/
#include "../lvgl.h"
-#include "widgets/lv_demo_widgets.h"
-#include "benchmark/lv_demo_benchmark.h"
-#include "stress/lv_demo_stress.h"
-#include "keypad_encoder/lv_demo_keypad_encoder.h"
-#include "music/lv_demo_music.h"
+#if LV_USE_DEMO_WIDGETS
+ #include "widgets/lv_demo_widgets.h"
+#endif
+
+#if LV_USE_DEMO_BENCHMARK
+ #include "benchmark/lv_demo_benchmark.h"
+#endif
+
+#if LV_USE_DEMO_STRESS
+ #include "stress/lv_demo_stress.h"
+#endif
+
+#if LV_USE_DEMO_KEYPAD_AND_ENCODER
+ #include "keypad_encoder/lv_demo_keypad_encoder.h"
+#endif
+
+#if LV_USE_DEMO_MUSIC
+ #include "music/lv_demo_music.h"
+#endif
/*********************
* DEFINES