码迷,mamicode.com
首页 > 其他好文 > 详细

littlevgl架构浅析

时间:2019-03-21 10:30:57      阅读:550      评论:0      收藏:0      [点我收藏+]

标签:一个   tor   时间   stat   检测   0ms   dev   ini   sig   

一.   littlevgl有几个线程,作用是什么?

三个,主线程一个,和在主线程的hal_init函数中创建的另两个sdl线程。

主线程完成一系列初始化工作后,循环每10ms调用在lv_init函数中注册的三个任务,indev_proc_task,lv_refr_task,anim_task,重点关注的是每50ms处理一次的输入处理indev_proc_task和每30ms处理一次的画面刷新lv_refr_task。

monitor_sdl_refr_thread线程负责输出图像和鼠标键盘的输入处理,每次处理后sleep 50ms。

tick_thread线程每5ms增加计时变量一次,用来为全局提供时间。

 

二.   输入检测到图像输出的过程(以单个按钮被鼠标按下为例)

1.monitor_sdl_refr_thread线程中

鼠标按下,记录鼠标位置数据

 

2.主线程中

         在indev_proc_task中读取鼠标位置数据,和控件位置比较,得到控件指针,调用控件signal_func函数,此函数再调用lv_btn_set_state(btn, LV_BTN_STATE_PR)设置按钮状态为按下状态,此时画面并没有实际更新,可以看成是发出了画面更新请求。

         在lv_refr_task中处理收到的画面更新请求,实际上是修改了画面变量tft_fb

        

3. monitor_sdl_refr_thread线程中

         根据变量tft_fb的值更新画面

littlevgl架构浅析

标签:一个   tor   时间   stat   检测   0ms   dev   ini   sig   

原文地址:https://www.cnblogs.com/iszhang/p/10569813.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!