littlevgl架构浅析
一. 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架构浅析的更多相关文章
- boost.asio源码剖析(二) ---- 架构浅析
* 架构浅析 先来看一下asio的0层的组件图. (图1.0) io_object是I/O对象的集合,其中包含大家所熟悉的socket.deadline_tim ...
- Camera服务之--架构浅析
Camera服务之--架构浅析 分类: Camera 分析2011-12-22 11:17 7685人阅读 评论(3) 收藏 举报 android硬件驱动框架jnilinux内核平台 一.应用层 Ca ...
- Others-大数据平台Lambda架构浅析(全量计算+增量计算)
大数据平台Lambda架构浅析(全量计算+增量计算) 2016年12月23日 22:50:53 scuter_victor 阅读数:1642 标签: spark大数据lambda 更多 个人分类: 造 ...
- Underscore 整体架构浅析
前言 终于,楼主的「Underscore 源码解读系列」underscore-analysis 即将进入尾声,关注下 timeline 会发现楼主最近加快了解读速度.十一月,多事之秋,最近好多事情搞的 ...
- [蓝牙] 2、蓝牙BLE协议及架构浅析&&基于广播超时待机说广播事件
第一章 BLE基本概念了解 一.蓝牙4.0和BLE区别 蓝牙4.0是一种应用非常广泛.基于2.4G射频的低功耗无线通讯技术.蓝牙低功耗(Bluetooth Low Energy ),人们又常称之为 ...
- OceanBase架构浅析(一)
http://www.cnblogs.com/LiJianBlog/p/4779934.html 简介 OceanBase是阿里集团研发的可扩展的关系数据库,实现了数千亿条记录.数百TB数据上的跨行跨 ...
- 移动APP的IM后台架构浅析
IM(InstantMessaging 即时通讯)作为一项基础功能,很多APP都有,比如:手机QQ.微信.易信.钉钉.飞信.旺旺.咚咚.陌陌等.而IM如同我们日常生活中的水和电一样,必不可少,也是很多 ...
- SpringMVC架构浅析
SpringMVC概述 Spring的web框架围绕DispatcherServlet设计. DispatcherServlet的作用是将请求分发到不同的处理器. Spring的web框架包括可配置的 ...
- OceanBase架构浅析(二)
单点性能 OceanBase架构的优势在于既支持跨行跨表事务,又支持存储服务器线性扩展.当然,这个架构也有一个明显的缺陷:UpdateServer单点,这个问题限制了OceanBase集群的整体读写性 ...
随机推荐
- 山顶点提取(ArcPy实现)
一.背景 山顶点指哪些在特定邻域分析范围内,该点都比周围点高的区域.山顶点是地形的重要特征点,它的分布与密度反映了地貌的发育特征,同时也制约着地貌发育.因此,如何基于DEM数据正确有效的提取山顶点,在 ...
- 记一次 .NET 某招聘网后端服务 内存暴涨分析
一:背景 1. 讲故事 前段时间有位朋友wx找到我,说他的程序存在内存阶段性暴涨,寻求如何解决,和朋友沟通下来,他的内存平时大概是5G 左右,在某些时点附近会暴涨到 10G+, 画个图大概就是这样. ...
- 微软 SqlHelper代码、功能、用法介绍:高效的组件
数据访问组件SqlHelper数据访问组件是一组通用的访问数据库的代码,在所有项目中都可以用,一般不需要修改.本节使用的是Microsoft提供的数据访问助手,其封装很严密,且应用简单. 首先要先添加 ...
- Oil Deposits 新年特辑篇
链接:E - Oil Deposits 题目: The GeoSurvComp geologic survey company is responsible for detecting undergr ...
- Arthas 进阶教程
Arthas 进阶教程 启动math-game 下载demo-arthas-spring-boot.jar,再用java -jar命令启动: wget https://github.com/hengy ...
- Vite启动后提示Network: use `--host` to expose
当使用 Vite 构建项目后,发现只有localhost + 端口 服务,没有 IP + 端口服务. 运行npm run dev,终端提示Vite启动后提示Network: use '--host' ...
- 带你用AVPlayer实现音频和视频播放
项目概述 以下项目是基于AVPlayer的实际运用,实现音频播放.横竖屏视频切换播放.类似抖音的竖屏全屏播放效果. 项目地址:AVPlayerAudioVideo 如果文章和项目对你有帮助,还请给个S ...
- Noip模拟77 2021.10.15
T1 最大或 $T1$因为没有开$1ll$右移给炸掉了,调了一年不知道为啥,最后实在不懂了 换成$pow$就过掉了,但是考场上这题耽误了太多时间,后面的题也就没办法好好打了.... 以后一定要注意右移 ...
- [火星补锅] siano 神奇的线段树
前言: 本来以为很难打的,没想到主干一次就打对了,然而把输入的b和d弄混了,这sb错误调了两个小时... 解析: 神奇的线段树.注意到有一个性质,无论怎么割草,生长速度快的一定不会比生长速度慢的矮.因 ...
- python2和python3并存下的pip使用
py -2 -m pip install *.whl py -3 -m pip intall *.wl