你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

【STM32H7S78-DK评测】-5 LVGL&DMA2D DEMO测试

[复制链接]
KEY1 发布时间:2024-9-20 22:54

大家好 ,前段时间在 STM32H7S78-DK 上 做了LVGL 图形库的移植和测试,现在跟大家分享一下。

LVGL 是一个开源的图形库, 因为免费 ,以及开放的开源协议,所以有一定热度,我关注LVGL有大半年了,

在使用过程中也大致学习了LVGL内核的一个运行过程,随着逐步的学习LVGL源代码,发现LVGL8的架构有一些明显低效率的处理方式,LVGL的架构在设计时没有考虑RTOS环境下的优化和对接,很多画面的更新渲染和处理都是用了阻塞方式,看着有点难以接受, 它的输入接口也是采用定时查询方式,不支持IO中断事件响应,这样就不利于低功耗设计,在LVGL官方的讨论区里, 也在不断的讨论代码的优化,但是这种改进确实比较慢而且缺乏深入的优化。所以现在在我看来,选择LVGL时,应该是一种无奈的选择.

我在STM32H7S DK上 移植了LVGL的一个经典Demo, 同时开启了帧率和RAM的显示,在测试过程中发现这个Demo的CPU占用率还挺高的,然后便进行了多种优化测试,由于LVGL目前还不支持H7RS的GPU,而且目前LVGL的DMA2D库实现的还不是很好,所以移植体验感受一般。

ed6c11ee764f4c23bf9a23f3b58ff17.jpg

目前这个演示的LVGL代码是8月分下载的LVGL8.4 ,第一个视频是没有启用LVGL的DMA2D接口,在刷屏时使用了DMA2D, 代码无优化, 可以看到在这个动态画面中CPU占用率大约在65%~76%之间

第二个视频是开启了LVGL的DMA2D,同时手动添加了驱动接口的切换回调函数,看到CPU占用率没有明显降低

第三个视频是开启了LVGL的DMA2D,没有使用切换回调函数,同时工程编译选择了3级优化,可以看到使用优化后CPU占用率下降了10%左右 经过测试发现LVGL对STM32支持的还不太好,特别是这种带有GPU单元的芯片,LVGL根本没用到芯片的GPU,另一方面LVGL中的DMA2D目前还是使用阻塞方式在处理数据,这两方面原因导致CPU占用率一直下不来, 所以对于H7RS系列 我目前放弃了使用LVGL进行一步开发,还是得用TouchGFX ,因为TouchGFX生成的代码可以使用芯片中的GPU,虽然TouchGFX无法得到完整的代码是个缺点,但是在这种带GPU的芯片上目前没得选。

视频演示解说:

【STM32H7S LVGL测试】 https://www.bilibili.com/video/BV1Tvt9eoEGf/?share_source=copy_web&vd_source=b349f05cc5a1b6f33bff1e317982b64c

收藏 评论3 发布时间:2024-9-20 22:54

举报

3个回答
andey 回答时间:前天 13:44

这个源代码方便共享下嘛

KEY1 回答时间:昨天 00:05

andey 发表于 2024-9-25 13:44
这个源代码方便共享下嘛

你要白嫖?

andey 回答时间:昨天 10:20

KEY1 发表于 2024-9-26 00:05
你要白嫖?

哈哈哈 学**DMA2D的配置

关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版