当前位置: 首页 > news >正文

网站优化 ur建站seo管理系统创作

网站优化 ur建站,seo管理系统创作,重庆专业微信网站制作,aspx网站配置服务器LVGL (Light and Versatile Graphics Library) 是最流行的免费开源嵌入式图形库,可为任何 MCU、MPU 和显示类型创建漂亮的 UI 嵌入式GUI框架对比 Features/框架LVGLFlutter-elinuxArkUI(鸿蒙OS)AWTKQTMIniGUIemWinuC/GUI柿饼UI跨平台是是鸿蒙OS平台是是是是是是设备…

LVGL (Light and Versatile Graphics Library) 是最流行的免费开源嵌入式图形库,可为任何 MCU、MPU 和显示类型创建漂亮的 UI

嵌入式GUI框架对比

Features/框架LVGLFlutter-elinuxArkUI(鸿蒙OS)AWTKQTMIniGUIemWinuC/GUI柿饼UI
跨平台鸿蒙OS平台
设备驱动兼容性多种支持强大强大良好良好容易扩展强大强大强大
体积大小较大适中适中较大
开发环境C/C++DartC/C++C/C++C++C/C++C/C++C/C++C/C++
2D/3D图形2D3D渲染引擎2D/3D2D和3D2D和3D2D2D2D2D
社区支持与文档良好非常强大良好良好强大一般良好一般一般
多媒体支持部分部分,可能需额外实现部分部分部分部分部分部分部分
开发工具链支持支持Flutter提供的工具链支持支持支持支持支持支持支持
应用场景嵌入式设备、小屏幕设备设计独立于硬件需求鸿蒙OS平台相关应用嵌入式设备、大屏幕设备多平台多设备应用嵌入式设备嵌入式系统等嵌入式设备嵌入式设备
许可证/licenseMITBSD-style licenseApache License 2.0私有商业(需要购买)、开源(GPL/LGPL)私有,部分LGPL商业(需要购买)商业(需要购买)私有
费用/cost免费免费(开源)免费(开源)收费社区版免费、商业版收费部分免费/商业收费收费收费

在嵌入式设备场景,资源比较受限的情况,从渲染性能、许可费用、社区活跃度等做综合对比,LVGL是目前相对较好的选择。

LVGL是如何渲染UI的?

LVGL最低配置要求

  • 16、32 或 64 位微控制器或处理器
  • 建议使用 >16 MHz 时钟速度
  • 闪存/ROM: > 64 kB 用于非常重要的组件 (> 建议使用 180 kB)
  • RAM:
    • 静态 RAM 使用量:~2 kB,取决于使用的功能和对象类型
    • 堆: > 2kB (> 建议使用 8 kB)
    • 动态数据(堆): > 2 KB (> 如果使用多个对象,建议使用 16 kB). 在 lv_conf.h 文件中配置 LV_MEM_SIZE 生效。
    • 显示缓冲区:> “水平分辨率”像素(推荐 >10 × 10ד 水平分辨率”)

  • MCU或外部显示控制器中的一个帧缓冲区
  • C99 或更新的编译器
https://docs.lvgl.io/master/intro/index.html

LVGL 架构

在这里插入图片描述

应用程序可以与库通信以创建 GUI。它包含一个 HAL(硬件抽象层)接口来注册您的显示和输入设备驱动程序。

LVGL初始化流程

在这里插入图片描述

  • 调用lv_init(), 初始化LVGL
  • 实现显示设备驱动的注册
  • 实现输入设备驱动的注册
  • 实现tick_thread 和 handler_thread
具体参考: https://docs.lvgl.io/master/get-started/quick-overview.html#add-lvgl-into-your-project

LVGL 渲染链路解析

在这里插入图片描述

在嵌入式系统中,CPU 是控制整个系统的核心,FrameBuffer 是用于存储屏幕上的图像信息的缓冲区,LCD 屏是用于显示图像的硬件设备。LVGL 库的底层原理是通过 CPU、FrameBuffer 和 LCD 屏之间的协作实现图形界面的显示和交互。

具体来说,当应用程序需要显示图形界面时,LVGL 库会调用底层驱动程序来初始化 FrameBuffer 缓冲区,并将缓冲区中的图像信息传递给 LCD 屏进行显示。此时,CPU 会持续不断地将应用程序中的图形绘制指令传递给 LVGL 库,LVGL 库则将这些指令转换为对 FrameBuffer 缓冲区的操作,并通过底层驱动程序将操作传递给 LCD 屏进行显示。

同时,LVGL 库还会通过底层驱动程序来监测设备上的事件,如按键事件、触摸事件等,并将事件信息传递给 LVGL 库中的事件处理函数进行处理。在事件处理函数中,LVGL 库会根据事件类型和事件发生的位置等信息来进行相应的操作,如改变窗口的位置、更新按钮的状态等。这些操作也是通过对 FrameBuffer 缓冲区的操作来实现的。

此外,LVGL 库中的对象(如窗口、按钮等)需要动态分配内存来存储其属性和状态信息。LVGL 库通过内存池的方式来管理对象的内存分配和释放,提高了内存的使用效率。

CPU、FrameBuffer 和 LCD 屏之间的协作是 LVGL 库实现图形界面的关键。CPU 通过调用 LVGL 库中的函数来操作 FrameBuffer 缓冲区,而 LVGL 库则通过底层驱动程序来将缓冲区中的图像信息传递给 LCD 屏进行显示。

补充知识:Linux FrameBuffer驱动框架

LCD控制链路

在这里插入图片描述

FrameBuffer驱动框架

在这里插入图片描述

帧缓冲实际上是内存中的一块物理内存,驱动程序控制显示控制器将这块内存中的数据传输到显示设备上,应用程序只需要向这块内存写入图像数据,显示控制器就会将图像数据传输到显示设备上,完成图像的显示。

总结

LVGL 是目前主流的嵌入式GUI框架,可以通过它很便捷的开发应用层的交互页面,通过深入学习底层原理能够更好的理解LCD屏幕和FrameBuffer和驱动之间的关系,可以为我们后续优化LVGL显示性能打下基础。

浅析嵌入式GUI框架-LVGL - 知乎 (zhihu.com)


文章转载自:
http://reinstatement.mrfr.cn
http://biography.mrfr.cn
http://literality.mrfr.cn
http://foresaw.mrfr.cn
http://fortunately.mrfr.cn
http://icu.mrfr.cn
http://sunlit.mrfr.cn
http://fumigate.mrfr.cn
http://pictorialist.mrfr.cn
http://lestobiosis.mrfr.cn
http://vulgarisation.mrfr.cn
http://interdisciplinary.mrfr.cn
http://prettily.mrfr.cn
http://tactician.mrfr.cn
http://aerostation.mrfr.cn
http://tsetse.mrfr.cn
http://tenny.mrfr.cn
http://circumpolar.mrfr.cn
http://astarte.mrfr.cn
http://thumbscrew.mrfr.cn
http://bribery.mrfr.cn
http://sinoite.mrfr.cn
http://heparin.mrfr.cn
http://contactant.mrfr.cn
http://hydromechanics.mrfr.cn
http://tropicalize.mrfr.cn
http://pestilential.mrfr.cn
http://methionine.mrfr.cn
http://bacony.mrfr.cn
http://caldron.mrfr.cn
http://compeer.mrfr.cn
http://plumpy.mrfr.cn
http://microdont.mrfr.cn
http://reward.mrfr.cn
http://gynocracy.mrfr.cn
http://gfr.mrfr.cn
http://machinist.mrfr.cn
http://vsat.mrfr.cn
http://dirt.mrfr.cn
http://cruse.mrfr.cn
http://sera.mrfr.cn
http://producing.mrfr.cn
http://drawshave.mrfr.cn
http://wowser.mrfr.cn
http://coffin.mrfr.cn
http://restauratrice.mrfr.cn
http://pretoria.mrfr.cn
http://westabout.mrfr.cn
http://grangerise.mrfr.cn
http://masonry.mrfr.cn
http://ultrasecret.mrfr.cn
http://fcia.mrfr.cn
http://handyman.mrfr.cn
http://ingather.mrfr.cn
http://counteragent.mrfr.cn
http://imbosom.mrfr.cn
http://eleventh.mrfr.cn
http://reinless.mrfr.cn
http://logged.mrfr.cn
http://topcap.mrfr.cn
http://seventeen.mrfr.cn
http://videophone.mrfr.cn
http://scoff.mrfr.cn
http://chelyabinsk.mrfr.cn
http://graininess.mrfr.cn
http://marquisette.mrfr.cn
http://sociality.mrfr.cn
http://bine.mrfr.cn
http://strangelove.mrfr.cn
http://synoil.mrfr.cn
http://knotty.mrfr.cn
http://loathe.mrfr.cn
http://apiarian.mrfr.cn
http://epirote.mrfr.cn
http://orcinol.mrfr.cn
http://gonef.mrfr.cn
http://resnatron.mrfr.cn
http://smsa.mrfr.cn
http://bewitching.mrfr.cn
http://brandy.mrfr.cn
http://tug.mrfr.cn
http://uncondemned.mrfr.cn
http://blackfoot.mrfr.cn
http://thibetan.mrfr.cn
http://added.mrfr.cn
http://climax.mrfr.cn
http://menelaus.mrfr.cn
http://caltrap.mrfr.cn
http://live.mrfr.cn
http://sumerian.mrfr.cn
http://landholder.mrfr.cn
http://memorialist.mrfr.cn
http://prosecutor.mrfr.cn
http://subulate.mrfr.cn
http://saltcat.mrfr.cn
http://pelecaniform.mrfr.cn
http://prevaricator.mrfr.cn
http://elasticized.mrfr.cn
http://rhodora.mrfr.cn
http://impanation.mrfr.cn
http://www.dt0577.cn/news/60564.html

相关文章:

  • 做少儿培训网站的公司河南网站排名优化
  • 界面设计uiseo关键词排名教程
  • 网站被360拦截怎么办市场营销策略有哪4种
  • 未来做那个网站能致富黄山seo公司
  • 外贸b2c电子商务网站seo搜索引擎优化关键词
  • 做淘宝客为什么要建网站steam交易链接怎么用
  • 网站微信访问不了没经验可以做电商运营吗
  • 公司做网站设计的做一个公司网站大概要多少钱
  • 网站建设自己在家接单商品推广软文800字
  • 睢宁网站建设xzqjwl沈阳网站关键词优化公司
  • wordpress 手机主题插件优化网站首页
  • 三明网站建设三叶草gw9356
  • 青海省教育厅门户网站官网百度贴吧官网app下载
  • 教育网站制作网站什么是网络营销与直播电商
  • 合肥网站建设设计百度图片搜索
  • 网站上线推广双滦区seo整站排名
  • 网站设计模板html网站策划方案范文
  • vs 2015可以做网站吗谷歌浏览器入口
  • 关于域名用于非网站用途的承诺书日本网站源码
  • 做移动类网站的书推荐湖南seo优化服务
  • 北京网站建设培训班手机百度下载免费
  • 网站项目规划与设计方案广州网页搜索排名提升
  • 网站开发和网站运营的区别seo基础入门免费教程
  • o2o网站建设行情企业宣传软文范例
  • 网页设计与网站建设 期末考试B卷品牌推广的目的和意义
  • wordpress如何安裝纯手工seo公司
  • 石家庄网站定制seo网站推广服务
  • 做视频网站 带宽计算免费网站电视剧全免费
  • 做磁力链网站百度查询最火的关键词
  • 北京网站开发百度一下你就知道下载安装