diff --git a/bsp/simulator/Kconfig b/bsp/simulator/Kconfig index 63832e878f4eead9e136cc83c72cf1e788c169e2..8dfdfdbabe4fd04223d54fedef181e8fcb02285d 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 0000000000000000000000000000000000000000..9c1b6d1ebd0ba47cd31cb54827c2c25ea10d2c65 --- /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 0000000000000000000000000000000000000000..77bdc0ac47f87a9eade2928a3364958bf1b574d3 --- /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 ba984fd6b8703b4ce2d6f1df018fc14040dd943f..0000000000000000000000000000000000000000 --- 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 -#define DBG_TAG "LVGL.demo" -#define DBG_LVL DBG_INFO -#include -#include -#include - -#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 220966f631e2e12f2e2674c60d88171dbe9e04fb..6b65b46cd8264ed83ded7ed0d35d6ff7c16ed40b 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 +#include + +#define DBG_TAG "LVGL.port" +#define DBG_LVL DBG_INFO +#include 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 ef39eb03cd4df06329528ca9f9717e9d5d8e86cd..0000000000000000000000000000000000000000 --- 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 7599bb899d9aa482a99e4339be1f661788c5993a..0000000000000000000000000000000000000000 --- 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 b8c5639d0070b479db64dc2228ae0bfdd4ad2bd0..0d2b0e17f020e2d081ab40c5990ee69b8f3638c4 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 -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(); }