一.   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架构浅析的更多相关文章

  1. boost.asio源码剖析(二) ---- 架构浅析

    * 架构浅析 先来看一下asio的0层的组件图.                     (图1.0) io_object是I/O对象的集合,其中包含大家所熟悉的socket.deadline_tim ...

  2. Camera服务之--架构浅析

    Camera服务之--架构浅析 分类: Camera 分析2011-12-22 11:17 7685人阅读 评论(3) 收藏 举报 android硬件驱动框架jnilinux内核平台 一.应用层 Ca ...

  3. Others-大数据平台Lambda架构浅析(全量计算+增量计算)

    大数据平台Lambda架构浅析(全量计算+增量计算) 2016年12月23日 22:50:53 scuter_victor 阅读数:1642 标签: spark大数据lambda 更多 个人分类: 造 ...

  4. Underscore 整体架构浅析

    前言 终于,楼主的「Underscore 源码解读系列」underscore-analysis 即将进入尾声,关注下 timeline 会发现楼主最近加快了解读速度.十一月,多事之秋,最近好多事情搞的 ...

  5. [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件

    第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别   蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为 ...

  6. OceanBase架构浅析(一)

    http://www.cnblogs.com/LiJianBlog/p/4779934.html 简介 OceanBase是阿里集团研发的可扩展的关系数据库,实现了数千亿条记录.数百TB数据上的跨行跨 ...

  7. 移动APP的IM后台架构浅析

    IM(InstantMessaging 即时通讯)作为一项基础功能,很多APP都有,比如:手机QQ.微信.易信.钉钉.飞信.旺旺.咚咚.陌陌等.而IM如同我们日常生活中的水和电一样,必不可少,也是很多 ...

  8. SpringMVC架构浅析

    SpringMVC概述 Spring的web框架围绕DispatcherServlet设计. DispatcherServlet的作用是将请求分发到不同的处理器. Spring的web框架包括可配置的 ...

  9. OceanBase架构浅析(二)

    单点性能 OceanBase架构的优势在于既支持跨行跨表事务,又支持存储服务器线性扩展.当然,这个架构也有一个明显的缺陷:UpdateServer单点,这个问题限制了OceanBase集群的整体读写性 ...

随机推荐

  1. 山顶点提取(ArcPy实现)

    一.背景 山顶点指哪些在特定邻域分析范围内,该点都比周围点高的区域.山顶点是地形的重要特征点,它的分布与密度反映了地貌的发育特征,同时也制约着地貌发育.因此,如何基于DEM数据正确有效的提取山顶点,在 ...

  2. 记一次 .NET 某招聘网后端服务 内存暴涨分析

    一:背景 1. 讲故事 前段时间有位朋友wx找到我,说他的程序存在内存阶段性暴涨,寻求如何解决,和朋友沟通下来,他的内存平时大概是5G 左右,在某些时点附近会暴涨到 10G+, 画个图大概就是这样. ...

  3. 微软 SqlHelper代码、功能、用法介绍:高效的组件

    数据访问组件SqlHelper数据访问组件是一组通用的访问数据库的代码,在所有项目中都可以用,一般不需要修改.本节使用的是Microsoft提供的数据访问助手,其封装很严密,且应用简单. 首先要先添加 ...

  4. Oil Deposits 新年特辑篇

    链接:E - Oil Deposits 题目: The GeoSurvComp geologic survey company is responsible for detecting undergr ...

  5. Arthas 进阶教程

    Arthas 进阶教程 启动math-game 下载demo-arthas-spring-boot.jar,再用java -jar命令启动: wget https://github.com/hengy ...

  6. Vite启动后提示Network: use `--host` to expose

    当使用 Vite 构建项目后,发现只有localhost + 端口 服务,没有 IP + 端口服务. 运行npm run dev,终端提示Vite启动后提示Network: use '--host' ...

  7. 带你用AVPlayer实现音频和视频播放

    项目概述 以下项目是基于AVPlayer的实际运用,实现音频播放.横竖屏视频切换播放.类似抖音的竖屏全屏播放效果. 项目地址:AVPlayerAudioVideo 如果文章和项目对你有帮助,还请给个S ...

  8. Noip模拟77 2021.10.15

    T1 最大或 $T1$因为没有开$1ll$右移给炸掉了,调了一年不知道为啥,最后实在不懂了 换成$pow$就过掉了,但是考场上这题耽误了太多时间,后面的题也就没办法好好打了.... 以后一定要注意右移 ...

  9. [火星补锅] siano 神奇的线段树

    前言: 本来以为很难打的,没想到主干一次就打对了,然而把输入的b和d弄混了,这sb错误调了两个小时... 解析: 神奇的线段树.注意到有一个性质,无论怎么割草,生长速度快的一定不会比生长速度慢的矮.因 ...

  10. python2和python3并存下的pip使用

    py -2 -m pip install  *.whl py -3 -m pip intall *.wl