Android 关于display的几个问题

本文探讨了Android系统中显示层如何使用双缓冲进行数据传输,以及底层如何处理这两个缓冲区。内容包括:帧缓冲的构成、DPI buffer和Assert Layer buffer的计算,以及DBI接口屏的数据刷新过程。TE信号的作用在于解决切屏问题,确保BB写数据速率与LCD刷新速率同步。此外,还讨论了Android中LCM刷新异常的处理思路,以及如何通过DDMS截图和adb命令获取当前显示内容。
摘要由CSDN通过智能技术生成

现在framebuffer驱动中会申请双buffer,上层是如何使用这两个buffer,底层又是怎么处理两个buffer的?

上层传数据到framebuffer时,会先放到其中一个buffer中,等再有数据传输下来时会切换到另外一个buffer,将其放满。相当于fb的基地址,加上一个偏移量在两个buffer之间切换。底层通过将要显示的buffer的地址写入到DMA中,DMA就会自动将一个buffer的数据搬运到屏的RAM中。



计算lcm的buffer?

buffer有三部分

a)Framebuffer:width*height*(32/8)*2

b)DPI buffer:
size=dsiTmpBufBpp×buffer_num×width×height
其中dsiTmpBufBpp=2(RGB565) or 3(RGB666/888)
buffer_num = params->dsi.internediat_buffer_num (defulat=2)
width = params->width
height = params->height

c)Assert Layer buffer:width*height*(16/8)+4096



针对DBI接口的屏,framebuffer 如何刷数据到LCD上? TE 信号的作用是什么?如何往LCD 写一帧黑屏?

上层将显示数据填充到framebuffer 中,调用mtkfb_ioctl:MTKFB_TRI

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值