硬汉嵌入式论坛

 找回密码
 立即注册
查看: 642|回复: 10
收起左侧

[LVGL] F407跑LVGL只用片内资源,有什么极限的优化方法?

[复制链接]

23

主题

116

回帖

185

积分

初级会员

积分
185
发表于 2025-11-18 09:51:09 | 显示全部楼层 |阅读模式
本帖最后由 飛饵 于 2025-11-18 09:54 编辑

目前优化有:
DMA + 双缓冲32行
FSMC时序调到LCD不花屏的临界值,
编译开-O2优化
开FPU,
320*480分辨率跑benchmark结果:fps:41 opa.speed:79%。

实际工程计划关掉阴影、透明、圆角、动画。请问还有什么地方能优化的?

回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120451
QQ
发表于 2025-11-18 10:11:32 | 显示全部楼层
如果这些小动画,小效果都关闭了,那使用LVGL意义不大了,LVGL相比其它UI的优势就是这些小动画,小效果,这种情况远不如emWin了。
回复

使用道具 举报

4

主题

153

回帖

165

积分

初级会员

积分
165
发表于 2025-11-18 11:09:34 | 显示全部楼层
320*480的屏,如果需求不需要高帧率,没必要关掉“阴影、透明、圆角、动画”
回复

使用道具 举报

23

主题

116

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2025-11-18 11:43:17 | 显示全部楼层
turnip 发表于 2025-11-18 11:09
320*480的屏,如果需求不需要高帧率,没必要关掉“阴影、透明、圆角、动画”

就是想尽量提高点帧率。动画、抗锯齿、圆角这些也确实想保留不然不好看,阴影透明无所谓啦
回复

使用道具 举报

23

主题

116

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2025-11-18 11:48:00 | 显示全部楼层
eric2013 发表于 2025-11-18 10:11
如果这些小动画,小效果都关闭了,那使用LVGL意义不大了,LVGL相比其它UI的优势就是这些小动画,小效果,这 ...

动画、抗锯齿、圆角这些也确实想保留不然不好看。如果都保留这些效果,还有什么办法提高帧率吗?现在全屏刷新帧率还是有点低
回复

使用道具 举报

5

主题

230

回帖

245

积分

高级会员

积分
245
发表于 2025-11-21 18:40:15 | 显示全部楼层
我320*240的小屏,用emwin,STM32F407,刷新一屏的话最快10ms左右。
字库不能用4倍抗锯齿,发现抗锯齿就会变慢
回复

使用道具 举报

23

主题

116

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2025-11-27 10:46:50 | 显示全部楼层
honami520 发表于 2025-11-21 18:40
我320*240的小屏,用emwin,STM32F407,刷新一屏的话最快10ms左右。
字库不能用4倍抗锯齿,发现抗锯齿就会 ...

emwin的dma优化好像只能画水平线,不知道还能怎么优化。我用320*480屏,滑动列表之类的控件感觉还是帧率低了
回复

使用道具 举报

1万

主题

7万

回帖

12万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
120451
QQ
发表于 2025-11-27 11:34:54 | 显示全部楼层
飛饵 发表于 2025-11-27 10:46
emwin的dma优化好像只能画水平线,不知道还能怎么优化。我用320*480屏,滑动列表之类的控件感觉还是帧率 ...

认识有误

最关键的是8bpp,16bpp,32bpp优化,这个才是核心。

体验这种极速流畅感


https://www.bilibili.com/video/BV1Mh41187uW







回复

使用道具 举报

5

主题

309

回帖

324

积分

高级会员

积分
324
发表于 2025-11-27 17:08:24 | 显示全部楼层
可以试试把dma传输开始后等待dma发送完成的操作,改成在dma传输之前判断dma是否空闲,这样可以把每次dma发送的间隔缩短一些,应该能稍微改善些
回复

使用道具 举报

23

主题

116

回帖

185

积分

初级会员

积分
185
 楼主| 发表于 2025-11-29 13:26:57 | 显示全部楼层
DX3906 发表于 2025-11-27 17:08
可以试试把dma传输开始后等待dma发送完成的操作,改成在dma传输之前判断dma是否空闲,这样可以把每次dma发 ...

目前已经用了dma传输完成中断,在中断里通知lvgl传输完成,没有阻塞等待。flush里面也没有阻塞,应该是只有lvgl自己内部的逻辑等待了
回复

使用道具 举报

3

主题

35

回帖

44

积分

新手上路

积分
44
发表于 2025-12-1 13:33:19 | 显示全部楼层
无解。我一开始也是想用LVGL的,感觉界面刷新太慢了,又用emwin了。M7系列的芯片可能会好点,M3 M4还是用emwin吧
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2026-1-11 08:02 , Processed in 0.073523 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表