diff --git a/env_support/cmsis-pack/LVGL.lvgl.9.1.1-dev1.pack b/env_support/cmsis-pack/LVGL.lvgl.9.1.1-dev2.pack
similarity index 80%
rename from env_support/cmsis-pack/LVGL.lvgl.9.1.1-dev1.pack
rename to env_support/cmsis-pack/LVGL.lvgl.9.1.1-dev2.pack
index 0626a25856..3b93392eee 100644
Binary files a/env_support/cmsis-pack/LVGL.lvgl.9.1.1-dev1.pack and b/env_support/cmsis-pack/LVGL.lvgl.9.1.1-dev2.pack differ
diff --git a/env_support/cmsis-pack/LVGL.lvgl.pdsc b/env_support/cmsis-pack/LVGL.lvgl.pdsc
index c78fb46f54..e1c4d8015e 100644
--- a/env_support/cmsis-pack/LVGL.lvgl.pdsc
+++ b/env_support/cmsis-pack/LVGL.lvgl.pdsc
@@ -36,7 +36,7 @@
https://github.com/lvgl/lvgl.git
-
+
- LVGL 9.1.1-dev
@@ -488,6 +488,8 @@
+
+
@@ -521,6 +523,7 @@
+
@@ -566,6 +569,7 @@
+
@@ -598,6 +602,7 @@
+
@@ -644,18 +649,18 @@
-
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -1303,6 +1308,7 @@
+
@@ -1760,9 +1766,11 @@
+
+
diff --git a/env_support/cmsis-pack/LVGL.pidx b/env_support/cmsis-pack/LVGL.pidx
index df77498a38..70804b03ee 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/
- 2024-03-24
+ 2024-04-30
-
+
diff --git a/env_support/cmsis-pack/gen_pack.sh b/env_support/cmsis-pack/gen_pack.sh
index 4fab5f22a2..3c9890ea6d 100755
--- a/env_support/cmsis-pack/gen_pack.sh
+++ b/env_support/cmsis-pack/gen_pack.sh
@@ -54,6 +54,7 @@ PACK_BASE_FILES="
../../LICENCE.txt
../../README.md
../../lvgl.h
+ ../../lv_version.h
lv_conf_cmsis.h
lv_cmsis_pack.txt
"
diff --git a/env_support/cmsis-pack/lv_conf_cmsis.h b/env_support/cmsis-pack/lv_conf_cmsis.h
index 7e6912e052..b4ea3dd882 100644
--- a/env_support/cmsis-pack/lv_conf_cmsis.h
+++ b/env_support/cmsis-pack/lv_conf_cmsis.h
@@ -148,9 +148,6 @@
#endif
#endif
-/* Set stack size of drawing thread. Unit is byte. If Thorvg is enabled, 128kB is required tested on simulator.*/
-#define LV_DRAW_THREAD_STACKSIZE 32768
-
#if LV_USE_DRAW_VGLITE
/* Enable blit quality degradation workaround recommended for screen's dimension > 352 pixels. */
#define LV_USE_VGLITE_BLIT_SPLIT 0
@@ -224,6 +221,11 @@
*0: User need to register a callback with `lv_log_register_print_cb()`*/
#define LV_LOG_PRINTF 1
+ /*Set callback to print the logs.
+ *E.g `my_print`. The prototype should be `void my_print(lv_log_level_t level, const char * buf)`
+ *Can be overwritten by `lv_log_register_print_cb`*/
+ //#define LV_LOG_PRINT_CB
+
/*1: Enable print timestamp;
*0: Disable print timestamp*/
#define LV_LOG_USE_TIMESTAMP 1
@@ -412,6 +414,7 @@
/*Demonstrate special features*/
#define LV_FONT_MONTSERRAT_28_COMPRESSED 0 /*bpp = 3*/
#define LV_FONT_DEJAVU_16_PERSIAN_HEBREW 0 /*Hebrew, Arabic, Persian letters and all their forms*/
+#define LV_FONT_SIMSUN_14_CJK 0 /*1000 most common CJK radicals*/
#define LV_FONT_SIMSUN_16_CJK 0 /*1000 most common CJK radicals*/
/*Pixel perfect monospace fonts*/
@@ -510,6 +513,7 @@
#define LV_CALENDAR_DEFAULT_MONTH_NAMES {"January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "November", "December"}
#define LV_USE_CALENDAR_HEADER_ARROW 1
#define LV_USE_CALENDAR_HEADER_DROPDOWN 1
+ #define LV_USE_CALENDAR_CHINESE 0
#endif /*LV_USE_CALENDAR*/
#define LV_USE_CANVAS 1
diff --git a/src/draw/sw/blend/arm2d/lv_blend_arm2d.h b/src/draw/sw/blend/arm2d/lv_blend_arm2d.h
index 5640bde34f..3cd42260b7 100644
--- a/src/draw/sw/blend/arm2d/lv_blend_arm2d.h
+++ b/src/draw/sw/blend/arm2d/lv_blend_arm2d.h
@@ -453,6 +453,15 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_arm2d(_lv_draw_sw_
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+
+ __arm_2d_impl_ccca8888_to_rgb565((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint16_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size);
+
+#else
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
if(NULL == tmp_buf) {
return LV_RESULT_INVALID;
@@ -474,6 +483,7 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_arm2d(_lv_draw_sw_
&draw_size);
lv_free(tmp_buf);
+#endif
return LV_RESULT_OK;
}
@@ -483,10 +493,21 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_with_opa_arm2d(_lv
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+ __arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_opacity((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint16_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size,
+ dsc->opa);
+
+#else
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
if(NULL == tmp_buf) {
return LV_RESULT_INVALID;
}
+
+
uint8_t * tmp_msk = (uint8_t *)lv_malloc(des_stride * dsc->dest_h);
if(NULL == tmp_msk) {
lv_free(tmp_buf);
@@ -522,6 +543,8 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_with_opa_arm2d(_lv
lv_free(tmp_msk);
lv_free(tmp_buf);
+#endif
+
return LV_RESULT_OK;
}
@@ -531,6 +554,17 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_with_mask_arm2d(_l
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+
+ __arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_src_mask((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint8_t *)dsc->mask_buf,
+ dsc->mask_stride,
+ &draw_size,
+ (uint16_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size);
+#else
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
if(NULL == tmp_buf) {
return LV_RESULT_INVALID;
@@ -572,6 +606,8 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_with_mask_arm2d(_l
lv_free(tmp_msk);
lv_free(tmp_buf);
+#endif
+
return LV_RESULT_OK;
}
@@ -581,6 +617,17 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_arm2d
int16_t des_stride = dsc->dest_stride / sizeof(uint16_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+ __arm_2d_impl_ccca8888_tile_copy_to_rgb565_with_src_mask_and_opacity((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint8_t *)dsc->mask_buf,
+ dsc->mask_stride,
+ &draw_size,
+ (uint16_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size,
+ dsc->opa);
+#else
uint16_t * tmp_buf = (uint16_t *)lv_malloc(dsc->dest_stride * dsc->dest_h);
if(NULL == tmp_buf) {
return LV_RESULT_INVALID;
@@ -623,6 +670,7 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb565_mix_mask_opa_arm2d
lv_free(tmp_msk);
lv_free(tmp_buf);
+#endif
return LV_RESULT_OK;
}
@@ -936,6 +984,13 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_arm2d(_lv_draw_sw_
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+ __arm_2d_impl_ccca8888_to_cccn888((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint32_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size);
+#else
__arm_2d_impl_cccn888_src_chn_msk_copy((uint32_t *)dsc->src_buf,
src_stride,
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
@@ -944,7 +999,7 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_arm2d(_lv_draw_sw_
(uint32_t *)dsc->dest_buf,
des_stride,
&draw_size);
-
+#endif
return LV_RESULT_OK;
}
@@ -959,6 +1014,15 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_with_opa_arm2d(_lv
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+
+ __arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_opacity((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint32_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size,
+ dsc->opa);
+#else
uint8_t * tmp_msk = (uint8_t *)lv_malloc(des_stride * dsc->dest_h);
if(NULL == tmp_msk) {
return LV_RESULT_INVALID;
@@ -985,6 +1049,7 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_with_opa_arm2d(_lv
&draw_size);
lv_free(tmp_msk);
+#endif
return LV_RESULT_OK;
}
@@ -1000,6 +1065,17 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_with_mask_arm2d(_l
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+
+ __arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_src_mask((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint8_t *)dsc->mask_buf,
+ dsc->mask_stride,
+ &draw_size,
+ (uint32_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size);
+#else
__arm_2d_impl_cccn888_src_chn_msk_des_msk_copy((uint32_t *)dsc->src_buf,
src_stride,
(uint32_t *)((uintptr_t)(dsc->src_buf) + 3),
@@ -1011,6 +1087,7 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_with_mask_arm2d(_l
dsc->mask_stride,
&draw_size,
&draw_size);
+#endif
return LV_RESULT_OK;
}
@@ -1026,6 +1103,18 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_arm2d
int16_t des_stride = dsc->dest_stride / sizeof(uint32_t);
int16_t src_stride = dsc->src_stride / sizeof(uint32_t);
+#if ARM_2D_VERSION >= 10106ul
+
+ __arm_2d_impl_ccca8888_tile_copy_to_cccn888_with_src_mask_and_opacity((uint32_t *)dsc->src_buf,
+ src_stride,
+ (uint8_t *)dsc->mask_buf,
+ dsc->mask_stride,
+ &draw_size,
+ (uint32_t *)dsc->dest_buf,
+ des_stride,
+ &draw_size,
+ dsc->opa);
+#else
__arm_2d_impl_gray8_colour_filling_with_opacity((uint8_t *)dsc->mask_buf,
dsc->mask_stride,
&draw_size,
@@ -1043,7 +1132,7 @@ static inline lv_result_t _lv_argb8888_blend_normal_to_rgb888_mix_mask_opa_arm2d
dsc->mask_stride,
&draw_size,
&draw_size);
-
+#endif
return LV_RESULT_OK;
}