diff options
| author | Meco Man <[email protected]> | 2022-05-10 23:22:25 -0400 |
|---|---|---|
| committer | guo <[email protected]> | 2022-05-11 20:30:38 +0800 |
| commit | 44488693943d7c098bd47e117fc7a17533259ac7 (patch) | |
| tree | 340410a2a57e20f38e1e35c477b16cebef0cf94b | |
| parent | 9ff61b4cb3ee4375deaa81d9d1b0d3f1180c07c1 (diff) | |
[simulator] 优化vs模拟器的LVGL结构
| -rw-r--r-- | bsp/simulator/Kconfig | 6 | ||||
| -rw-r--r-- | bsp/simulator/applications/lvgl/demo/SConscript | 17 | ||||
| -rw-r--r-- | bsp/simulator/applications/lvgl/demo/lv_demo.c | 17 | ||||
| -rw-r--r-- | bsp/simulator/applications/lvgl/lv_demo.c | 62 | ||||
| -rw-r--r-- | bsp/simulator/applications/lvgl/lv_port_disp.c | 14 | ||||
| -rw-r--r-- | bsp/simulator/applications/lvgl/lv_port_disp.h | 23 | ||||
| -rw-r--r-- | bsp/simulator/applications/lvgl/lv_port_indev.h | 23 | ||||
| -rw-r--r-- | bsp/stm32/stm32l475-atk-pandora/applications/lvgl/demo/lv_demo.c | 5 |
8 files changed, 54 insertions, 113 deletions
diff --git a/bsp/simulator/Kconfig b/bsp/simulator/Kconfig index 63832e878f..8dfdfdbabe 100644 --- a/bsp/simulator/Kconfig +++ b/bsp/simulator/Kconfig @@ -32,10 +32,14 @@ config RT_USING_DFS_WINSHAREDIR config BSP_USING_LVGL bool "Enable LVGL for LCD" select PKG_USING_LVGL - select PKG_USING_LV_MUSIC_DEMO default n if BSP_USING_LVGL + config BSP_USING_LVGL_DEMO + bool "Enable LVGL demo" + select PKG_USING_LV_MUSIC_DEMO + default n + config BSP_LCD_WIDTH int "LCD width" default 800 diff --git a/bsp/simulator/applications/lvgl/demo/SConscript b/bsp/simulator/applications/lvgl/demo/SConscript new file mode 100644 index 0000000000..9c1b6d1ebd --- /dev/null +++ b/bsp/simulator/applications/lvgl/demo/SConscript @@ -0,0 +1,17 @@ +from building import * +import os + +cwd = GetCurrentDir() +group = [] +src = Glob('*.c') +CPPPATH = [cwd] + +list = os.listdir(cwd) +for d in list: + path = os.path.join(cwd, d) + if os.path.isfile(os.path.join(path, 'SConscript')): + group = group + SConscript(os.path.join(d, 'SConscript')) + +group = group + DefineGroup('LVGL-demo', src, depend = ['BSP_USING_LVGL', 'BSP_USING_LVGL_DEMO'], CPPPATH = CPPPATH) + +Return('group') diff --git a/bsp/simulator/applications/lvgl/demo/lv_demo.c b/bsp/simulator/applications/lvgl/demo/lv_demo.c new file mode 100644 index 0000000000..77bdc0ac47 --- /dev/null +++ b/bsp/simulator/applications/lvgl/demo/lv_demo.c @@ -0,0 +1,17 @@ +/* + * Copyright (c) 2006-2021, RT-Thread Development Team + * + * SPDX-License-Identifier: Apache-2.0 + * + * Change Logs: + * Date Author Notes + * 2021-10-17 Meco Man First version + * 2022-05-10 Meco Man improve rt-thread initialization process + */ + +void lv_user_gui_init(void) +{ + /* display demo; you may replace with your LVGL application at here */ + extern void lv_demo_music(void); + lv_demo_music(); +} diff --git a/bsp/simulator/applications/lvgl/lv_demo.c b/bsp/simulator/applications/lvgl/lv_demo.c deleted file mode 100644 index ba984fd6b8..0000000000 --- a/bsp/simulator/applications/lvgl/lv_demo.c +++ /dev/null @@ -1,62 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-10-17 Meco Man First version - */ -#include <rtthread.h> -#define DBG_TAG "LVGL.demo" -#define DBG_LVL DBG_INFO -#include <rtdbg.h> -#include <lvgl.h> -#include <win32drv.h> - -#ifndef LV_THREAD_STACK_SIZE -#define LV_THREAD_STACK_SIZE 4096 -#endif - -#ifndef LV_THREAD_PRIO -#define LV_THREAD_PRIO (RT_THREAD_PRIORITY_MAX*2/3) -#endif - -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, NULL)) - { - LOG_E("lv_win32_init is failure!"); - return; - } - lv_win32_add_all_input_devices_to_group(NULL); - - /* 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(); - rt_thread_mdelay(1); - } - - LOG_W("LVGL simulator window is closed!"); -} - -static int lvgl_demo_init(void) -{ - rt_thread_t tid; - - tid = rt_thread_create("LVGL", lvgl_thread, RT_NULL, LV_THREAD_STACK_SIZE, LV_THREAD_PRIO, 10); - if(tid == RT_NULL) - { - LOG_E("Fail to create 'LVGL' thread"); - } - rt_thread_startup(tid); - - return 0; -} -INIT_APP_EXPORT(lvgl_demo_init); diff --git a/bsp/simulator/applications/lvgl/lv_port_disp.c b/bsp/simulator/applications/lvgl/lv_port_disp.c index 220966f631..6b65b46cd8 100644 --- a/bsp/simulator/applications/lvgl/lv_port_disp.c +++ b/bsp/simulator/applications/lvgl/lv_port_disp.c @@ -7,8 +7,20 @@ * Date Author Notes * 2021-10-18 Meco Man The first version */ +#include <lvgl.h> +#include <win32drv.h> + +#define DBG_TAG "LVGL.port" +#define DBG_LVL DBG_INFO +#include <rtdbg.h> void lv_port_disp_init(void) { - /* do nothing*/ + /* initialize win32 driver */ + if (!lv_win32_init(GetModuleHandleW(NULL), SW_SHOW, BSP_LCD_WIDTH, BSP_LCD_HEIGHT, NULL)) + { + LOG_E("lv_win32_init is failure!"); + return; + } + lv_win32_add_all_input_devices_to_group(NULL); } diff --git a/bsp/simulator/applications/lvgl/lv_port_disp.h b/bsp/simulator/applications/lvgl/lv_port_disp.h deleted file mode 100644 index ef39eb03cd..0000000000 --- a/bsp/simulator/applications/lvgl/lv_port_disp.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-10-18 Meco Man The first version - */ -#ifndef LV_PORT_DISP_H -#define LV_PORT_DISP_H - -#ifdef __cplusplus -extern "C" { -#endif - -void lv_port_disp_init(void); - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/bsp/simulator/applications/lvgl/lv_port_indev.h b/bsp/simulator/applications/lvgl/lv_port_indev.h deleted file mode 100644 index 7599bb899d..0000000000 --- a/bsp/simulator/applications/lvgl/lv_port_indev.h +++ /dev/null @@ -1,23 +0,0 @@ -/* - * Copyright (c) 2006-2021, RT-Thread Development Team - * - * SPDX-License-Identifier: Apache-2.0 - * - * Change Logs: - * Date Author Notes - * 2021-10-18 Meco Man The first version - */ -#ifndef LV_PORT_INDEV_H -#define LV_PORT_INDEV_H - -#ifdef __cplusplus -extern "C" { -#endif - -void lv_port_indev_init(void); - -#ifdef __cplusplus -} /*extern "C"*/ -#endif - -#endif diff --git a/bsp/stm32/stm32l475-atk-pandora/applications/lvgl/demo/lv_demo.c b/bsp/stm32/stm32l475-atk-pandora/applications/lvgl/demo/lv_demo.c index b8c5639d00..0d2b0e17f0 100644 --- a/bsp/stm32/stm32l475-atk-pandora/applications/lvgl/demo/lv_demo.c +++ b/bsp/stm32/stm32l475-atk-pandora/applications/lvgl/demo/lv_demo.c @@ -10,10 +10,9 @@ */ #include <lvgl.h> -extern void lv_demo_calendar(void); - void lv_user_gui_init(void) { - /* display demo */ + /* display demo; you may replace with your LVGL application at here */ + extern void lv_demo_calendar(void); lv_demo_calendar(); } |
