From d4a72f29c7d86053f843ce2c12bb97cfb627bd6c Mon Sep 17 00:00:00 2001 From: Meco Man <920369182@qq.com> Date: Thu, 16 Dec 2021 01:19:00 -0500 Subject: [PATCH] =?UTF-8?q?[simulator][lvgl]=20=E5=A4=84=E7=90=86=E6=B3=A8?= =?UTF-8?q?=E9=87=8A?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- bsp/qemu-vexpress-a9/drivers/drv_clcd.c | 2 +- bsp/qemu-vexpress-a9/drivers/lvgl/lv_demo.c | 2 ++ .../drivers/lvgl/lv_port_disp.c | 4 ++-- bsp/simulator/drivers/lvgl/lv_demo.c | 18 ++++++------------ bsp/simulator/drivers/lvgl/lv_port_disp.h | 2 -- .../board/ports/lvgl/lv_demo.c | 2 ++ 6 files changed, 13 insertions(+), 17 deletions(-) diff --git a/bsp/qemu-vexpress-a9/drivers/drv_clcd.c b/bsp/qemu-vexpress-a9/drivers/drv_clcd.c index af3cce4d6b..2d012dca84 100644 --- a/bsp/qemu-vexpress-a9/drivers/drv_clcd.c +++ b/bsp/qemu-vexpress-a9/drivers/drv_clcd.c @@ -109,7 +109,7 @@ int drv_clcd_hw_init(void) _lcd.width = CLCD_WIDTH; _lcd.height = CLCD_HEIGHT; - _lcd.fb = rt_malloc_align(_lcd.width * _lcd.height * 2, 32); + _lcd.fb = rt_malloc(_lcd.width * _lcd.height * 2); if (_lcd.fb == NULL) { rt_kprintf("initialize frame buffer failed!\n"); diff --git a/bsp/qemu-vexpress-a9/drivers/lvgl/lv_demo.c b/bsp/qemu-vexpress-a9/drivers/lvgl/lv_demo.c index 44288c23f2..326d1df1d2 100644 --- a/bsp/qemu-vexpress-a9/drivers/lvgl/lv_demo.c +++ b/bsp/qemu-vexpress-a9/drivers/lvgl/lv_demo.c @@ -23,9 +23,11 @@ static void lvgl_thread(void *parameter) { + /* display demo; you may replace with your LVGL application at here */ extern void lv_demo_music(void); lv_demo_music(); + /* handle the tasks of LVGL */ while(1) { lv_task_handler(); diff --git a/bsp/qemu-vexpress-a9/drivers/lvgl/lv_port_disp.c b/bsp/qemu-vexpress-a9/drivers/lvgl/lv_port_disp.c index 4ccd1bab7f..9bb856a122 100644 --- a/bsp/qemu-vexpress-a9/drivers/lvgl/lv_port_disp.c +++ b/bsp/qemu-vexpress-a9/drivers/lvgl/lv_port_disp.c @@ -116,14 +116,14 @@ void lv_port_disp_init(void) RT_ASSERT(info.bits_per_pixel == 8 || info.bits_per_pixel == 16 || info.bits_per_pixel == 24 || info.bits_per_pixel == 32); - fbuf1 = rt_malloc_align(info.width * info.height * sizeof(lv_color_t), 32); + fbuf1 = rt_malloc(info.width * info.height * sizeof(lv_color_t)); if (fbuf1 == RT_NULL) { rt_kprintf("Error: alloc disp buf fail\n"); return; } - fbuf2 = rt_malloc_align(info.width * info.height * sizeof(lv_color_t), 32); + fbuf2 = rt_malloc(info.width * info.height * sizeof(lv_color_t)); if (fbuf2 == RT_NULL) { rt_kprintf("Error: alloc disp buf fail\n"); diff --git a/bsp/simulator/drivers/lvgl/lv_demo.c b/bsp/simulator/drivers/lvgl/lv_demo.c index c66dd228e7..101cd1e494 100644 --- a/bsp/simulator/drivers/lvgl/lv_demo.c +++ b/bsp/simulator/drivers/lvgl/lv_demo.c @@ -12,11 +12,8 @@ #define DBG_LVL DBG_INFO #include #include -#include #include -#define IDI_LVGL 101 - #ifndef LV_THREAD_STACK_SIZE #define LV_THREAD_STACK_SIZE 4096 #endif @@ -28,28 +25,25 @@ static void lvgl_thread(void *parameter) { /* initialize win32 driver; don't put this in lv_port_disp() */ - if (!lv_win32_init( - GetModuleHandleW(NULL), - SW_SHOW, - BSP_LCD_WIDTH, - BSP_LCD_HEIGHT, - LoadIconW(GetModuleHandleW(NULL), MAKEINTRESOURCE(IDI_LVGL)))) + if (!lv_win32_init(GetModuleHandleW(NULL), SW_SHOW, BSP_LCD_WIDTH, BSP_LCD_HEIGHT, NULL)) { LOG_E("lv_win32_init failure!"); return; } - lv_win32_add_all_input_devices_to_group(NULL); - /* display demo */ + /* display demo; you may replace with your LVGL application at here */ extern void lv_demo_music(void); lv_demo_music(); + /* handle the tasks of LVGL */ while (!lv_win32_quit_signal) { lv_task_handler(); - Sleep(1); + rt_thread_mdelay(1); } + + LOG_W("LVGL simulator window closed!"); } static int lvgl_demo_init(void) diff --git a/bsp/simulator/drivers/lvgl/lv_port_disp.h b/bsp/simulator/drivers/lvgl/lv_port_disp.h index 9bcefe5260..ef39eb03cd 100644 --- a/bsp/simulator/drivers/lvgl/lv_port_disp.h +++ b/bsp/simulator/drivers/lvgl/lv_port_disp.h @@ -14,8 +14,6 @@ extern "C" { #endif -#include - void lv_port_disp_init(void); #ifdef __cplusplus diff --git a/bsp/stm32/stm32l475-atk-pandora/board/ports/lvgl/lv_demo.c b/bsp/stm32/stm32l475-atk-pandora/board/ports/lvgl/lv_demo.c index d72e6ae7ba..d4ae3cfdbd 100644 --- a/bsp/stm32/stm32l475-atk-pandora/board/ports/lvgl/lv_demo.c +++ b/bsp/stm32/stm32l475-atk-pandora/board/ports/lvgl/lv_demo.c @@ -29,8 +29,10 @@ static void lvgl_thread(void *parameter) const lv_point_t points_array[] = {{200,35},{0,0},{70,35},{0,0}}; lv_indev_set_button_points(button_indev, points_array); + /* display demo; you may replace with your LVGL application at here */ lv_demo_calendar(); + /* handle the tasks of LVGL */ while(1) { lv_task_handler(); -- GitLab