使用 LVGL 及 DMA2D 必须知道的事

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

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

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

 

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

所以 LVGL 适合 那些没有GPU图形加速的中低端单片机,H7 系列就不适合,因为H7带 GPU加速

LVGL不支持,或者仅支持个别的厂家,  LVGL也就只适合做一些 小的项目,大项目不建议用LVGL,因为在复杂界面中,LVGL处理时比较吃CPU资源,小的项目界面简单 可以用。

有DMA2D 的 单片机 在LVGL中作用不大,能提升一点效率,但是LVGL的刷屏数据都是单片机CPU处理的,

我测试了STM32开启LVGL自带的DMA2D库, 没有明显变化。

 

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

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值