- 1
- 2
- 3
- 4
- 5
LCD刷新与显存管理问题定位的十个关键动作
资料介绍
LCD刷新与显存管理问题定位的十个关键动作 缘起 问:这次是什么活儿? 答:一块 4.3 寸屏,接了自家 MCU 的并行接口,画面总在滚动时出现撕裂、闪屏,还偶尔有一整条花带。客户催得紧,说别的方案不闪,就我们闪。我第一反应是不服气,后来想通了,闪不闪,跟方案没关系,跟显存怎么管有关系。 问:为什么你会想到先从显存下手? 答:因为我先在逻辑分析仪上抓了写接口的时序,发现写入操作和 LCD 的扫描刷新周期在打架。你一边往显存里写数据,屏那边一边把显存读出去刷,读和写撞在一起,读到的就可能是一半旧一半新,表现出来就是撕裂和花带。这就是显存管理问题的典型信号。 第一轮尝试 问:那你第一轮试了什么? 答:最早是加帧缓冲。我干脆在 MCU 内部 SRAM 里开了一块完整的缓冲,先把要显示的内容画进这块缓冲,再用 DMA 一次性搬到屏的显存。这么做的好处是画图和刷新解耦,写屏的动作集中在一个时间段完成,减少和扫描撞车的概率。 问:效果如何? 答:闪屏确实好了一些,但撕裂偶尔还是会出现。原因是我搬数据的速度再快,终究不是瞬时完成的,只要搬的过程跨越了屏扫描到当前行的位置,那一行附近就还是会读到新旧交界。所以加了缓冲只是把问题缩小,没根治。 遇到的坑 问:后来卡在哪儿了? 答:卡在没搞懂"扫描位置"这个概念。我一直以为只要搬得快就不会撞,忽略了屏是从左上角一行一行往下扫的,扫描到哪一行,那一行就在被实时读取。如果我的 DMA 写入刚好扫到同一行区域,必然冲突。这是第一代方案的根本误区。 问:还有别的坑吗? 答:有,双缓冲。我天真地以为用两块缓冲轮流切换就能彻底解决,结果忘了切换时机要和扫描的消隐期对齐。如果我在屏正扫到画面中间的时候去切缓冲地址,那一帧就会一半显示 A 缓冲、一半显示 B 缓冲,等于把撕裂从画面内部搬到了画面中间。 换个思路 问:那真正管用的思路是什么?
部分文件列表
| 文件名 | 大小 |
| LCD刷新与显存管理问题定位的十个关键动作.docx | 39K |
最新上传
-
yahuang001 打赏3.00元 1天前
-
yahuang001 打赏1.00元 1天前
-
zhongshaoxiong 打赏3.00元 3天前
-
他山之石可攻玉 打赏60.00元 3天前
用户:烟雨
-
江岚 打赏210.00元 3天前
用户:潇潇江南
-
江岚 打赏100.00元 3天前
-
21ic下载 打赏310.00元 3天前
用户:gsy幸运
-
21ic下载 打赏310.00元 3天前
用户:zhengdai
-
21ic下载 打赏310.00元 3天前
用户:江岚
-
21ic下载 打赏210.00元 3天前
用户:潇潇江南
-
21ic下载 打赏60.00元 3天前
用户:他山之石可攻玉
-
21ic下载 打赏60.00元 3天前
用户:烟雨
-
21ic下载 打赏60.00元 3天前
用户:w178191520
-
21ic下载 打赏60.00元 3天前
用户:w993263495
-
21ic下载 打赏110.00元 3天前
用户:xzxbybd
-
21ic下载 打赏60.00元 3天前
用户:zq_1943
-
21ic下载 打赏20.00元 3天前
用户:kk1957135547
-
21ic下载 打赏20.00元 3天前
用户:sun2152
-
21ic下载 打赏20.00元 3天前
用户:铁蛋锅
-
21ic下载 打赏20.00元 3天前
用户:xuzhen1
-
21ic下载 打赏20.00元 3天前
用户:w1966891335
-
21ic下载 打赏35.00元 3天前
用户:有理想666
-
21ic下载 打赏15.00元 3天前
用户:nuaanuaa111
-
21ic下载 打赏20.00元 3天前
用户:liqiang9090
-
21ic下载 打赏15.00元 3天前
用户:ningmengge
-
21ic下载 打赏10.00元 3天前
用户:mulanhk
-
21ic下载 打赏5.00元 3天前
用户:asys
-
21ic下载 打赏10.00元 3天前
用户:舞蹈荀彧
-
21ic小能手 打赏5.00元 3天前
资料:磁编码器开源方案
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏50.00元 3天前
-
江岚 打赏20.00元 3天前
-
江岚 打赏10.00元 3天前
-
21ic小能手 打赏10.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏8.00元 3天前
-
21ic小能手 打赏5.00元 3天前
-
21ic小能手 打赏3.00元 3天前




全部评论(0)