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

关于STM32 使用 LVGL 及 DMA2D 必须知道的事

LVGL 在我看了是一个中规中矩的界面库, 当你慢慢熟悉后会发现没有太多的惊喜,

运行效率一般, 图形处理会原生阻塞并占用一些CPU资源,

所以不适合华丽的界面设计,适合一些简单的界面切换,否则会对CPU带来较大开销,

另外,对于一些高端的单片机。 选择Lvgl反而会影响单片机中的gpu图形加速单元的发挥。 因为Lvgl只对很少的器件支持了图形加速,SM32的dma2d算不上gpu图形加速。所以如果用stm32的高端芯片,还是不太适合用lvgl,更适合st官方推出的touchgfx。

 

 

lvgl中,就算使用DMA2D 它也是默认阻塞方式, 即使你希望启用   DMA2D在运行等待结束的过程中进行任务调度,那也不会加速它自己的图形处理速度,只是把CPU等待时间让了出来,这对多任务系统有一定帮助。但是感觉他自身的任务还在阻塞,并没有提高效率。这将成为整个系统的短板。

 

 

LVGL8 的 DMA2D 库 不是用中断模式写的,而是用阻塞查询模式实现的DMA2D

这个就很扯,经过在STM32H7上的初步比较测试 ,用不用DMA2D CPU占用率都差不多,

而且LVGL9 宣布不在主动支持ST的DMA2D ,说是优先给合作伙伴 提供GPU支持,
就是说只有ST提供经费作为合作伙伴才会继续支持。

就算志愿者 愿意贡献代码  作者也不会接受

https://github.com/lvgl/lvgl/issues/5555
 

db4a7eb88742429b85822a5e36012827.png

6c24a4bac2174c19ae233313688406a6.png

 

 

 

 


http://www.mrgr.cn/news/21243.html

相关文章:

  • 【C语言】---- for循环函数
  • java工程师成功转型大数据
  • 会议《测试团队过程改进实践分享》记录
  • C# 四种方法去除字符串最后一个字符
  • C#中的类
  • Android Studio打开Modem模块出现:The project ‘***‘ is not a Gradle-based project
  • gcn(从空间域理解)
  • Java中实现消息告警推送的几种方式
  • 《C++进阶之路:探寻预处理宏的替代方案》
  • 2024数学建模国赛B题代码
  • 热老化的行业应用
  • 如何在Selenium中捕获网络请求响应
  • Hive是什么?
  • docker基础知识-docker0网桥
  • Excel 使用SUBTOTAL函数根据筛选结果求和
  • 【C语言】---- 复合数据类型之枚举(Enum)
  • 【二】TDEngine快速入门
  • typeof和instanceof的区别是什么?
  • 求二叉树的深度——(力扣c语言)
  • 基于人工智能的音乐情感分类系统