找回密码
 注册
搜索
查看: 979|回复: 5

[讨论] LCD数据传输流程

[复制链接]
发表于 2008-10-27 14:30:11 | 显示全部楼层 |阅读模式
请教大侠们一个比较疑惑的问题:LCD的数据传输流程是怎么的,我试着跟了一下驱动的,发现很多疑惑的问题,LCD的显示数据的buffer没有找到,LCD的DMA控制部分没有找到,知道的大侠们能否指点一下,谢谢了!
发表于 2008-10-27 15:57:19 | 显示全部楼层
1、LCD的buffer一般定义在MMI部分。
2、LCD的数据传输可能没有使用DMA,而是使用了一种类DMA的技术。
3、往LCD中写数实际上就是往一个地址连续写一段数据。LCD初始化完之后,如果需要往LCD中传输数据,先配置好CS,然后就是往LCD中连续写一段数据。写完之后发个刷新命令就OK了。
4、各个平台LCD的数据传输方式可能不尽相同。
[em10]
点评回复

使用道具 举报

发表于 2008-11-6 22:50:01 | 显示全部楼层
1.你可以看看LCD的成驱动接口是不是有指针类型的参量
  2.DMA使用一定会对DMA寄存器操作的,你可以直接搜寻DMA的控制寄存器,反过来查找
  3.有的会在硬件上直接通过地址线的接法去控制CMD和DATA的输出,所以可能仅仅是顺序的向地址线送数据
点评回复

使用道具 举报

发表于 2008-11-7 01:06:14 | 显示全部楼层
我认为流程是这样的(供参考):
1,首先由应用建立一个layer,开一个存放LCD数据的BUFFER,然后把这个BUFFER的地址赋给LCD寄存器
gdi_layer_blt_ext() >> CONFIG_HARDWARE_LAYER >> config_lcd_layer_window()
{......
DRV_WriteReg32(lcd_layer_base_addr+0x0C,layer_data->frame_buffer_address);
}
这样数据源已经关联起来了,其实这里还会设置宽度和高度这些信息.

2,准备好数据源之后开始发指令进行DMA传输
gdi_layer_blt_ext() >> lcd_fb_update() >> MainLCD->BlockWrite()
{
START_LCD_TRANSFER
}
点评回复

使用道具 举报

发表于 2008-11-7 10:03:42 | 显示全部楼层
楼上就是要离开驱动的?[em03] 你应该是一个高手啊,估计不是离开,而是升级了 。
点评回复

使用道具 举报

发表于 2008-11-11 00:42:27 | 显示全部楼层
gif001兄观察力不是一般的细致啊!佩服.这里高手好多,不过都是潜水.和他们比我绝对是菜鸟.我刚开始接触驱动的时候也碰到这个问题,有点印象.
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-28 18:11 , Processed in 0.062972 second(s), 16 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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