lv_init_thread.c 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152
  1. /*
  2. * Copyright (c) 2006-2022, RT-Thread Development Team
  3. *
  4. * SPDX-License-Identifier: Apache-2.0
  5. *
  6. * Change Logs:
  7. * Date Author Notes
  8. * 2021-10-17 Meco Man First version
  9. * 2022-05-13 Meco Man support LVGL8.2.0 legacy version
  10. */
  11. #include <rtthread.h>
  12. #include <lvgl.h>
  13. #ifndef PKG_LVGL_THREAD_STACK_SIZE
  14. #define PKG_LVGL_THREAD_STACK_SIZE 4096
  15. #endif
  16. #ifndef PKG_LVGL_THREAD_PRIO
  17. #define PKG_LVGL_THREAD_PRIO (RT_THREAD_PRIORITY_MAX * 2 / 3)
  18. #endif
  19. extern void lv_user_gui_init(void);
  20. static struct rt_thread lvgl_thread;
  21. static rt_uint8_t lvgl_thread_stack[PKG_LVGL_THREAD_STACK_SIZE];
  22. static void lvgl_thread_entry(void *parameter)
  23. {
  24. lv_user_gui_init();
  25. while(1)
  26. {
  27. lv_task_handler();
  28. rt_thread_mdelay(5);
  29. }
  30. }
  31. static int lvgl_thread_init(void)
  32. {
  33. rt_thread_init(&lvgl_thread,
  34. "LVGL",
  35. lvgl_thread_entry,
  36. RT_NULL,
  37. &lvgl_thread_stack[0],
  38. sizeof(lvgl_thread_stack),
  39. PKG_LVGL_THREAD_PRIO,
  40. 10);
  41. rt_thread_startup(&lvgl_thread);
  42. return 0;
  43. }
  44. INIT_ENV_EXPORT(lvgl_thread_init);