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; }