主机平台:Linux CentOS 6.5
arm平台:粤嵌GEC210开发板(S5PV210)
这次写一下简单的LCD驱动,只是在LCD上显示一帧静止的画面。
LCD本身的时序还算简单,但在S5PV210上,因为添加了很多的功能,所以构成了一个比较复杂的显示控制器(display controller),数据手册上这个章节就有一百多页,看完就花了几个小时了。
=======================================================================================================
开始还是先看几张图:
1.显示控制器的结构图
简单讲下这张图:
1.最左边是图像数据来源的接口部分,可从摄像头或通过DMA从内存获取数据
2.然后是,通过上面的接口,可同时产生最多5个通道的数据
3.再对上面的数据根据一定的方式进行混合产生一张图
4.跟着是对这张图进行各种图像处理
5.最终通过相应的接口送到MIPI DSI System(注意:这里不是直接到LCD上)
2.MIPI DSI System)(这部分数据手册上写的不是很清楚,可能我的理解有问题,但DISPLAY_PATH_SEL(DISPLAY_CONTROLP[1:0])的确是必须配置的)
从display controller的数据送到这里MIPI DSI System,MIPI DSIM通过DISPLAY_PATH_SEL(DISPLAY_CONTROLP[1:0])来选择哪个Path输出到LCD上。见下图,其中FIMD指的就是display controller
这里再提醒下,如果你的LCD是RGB接口,DISPLAY_PATH_SEL必须要配置,这在数据手册上LCD的章节里只提过一次,而且也没有明确写出如何配置,所以我在调试时因为这个原因花了不少时间
3.再看看具体的数据流结构图
1.一共可产生5个数据窗口,其中所有窗口均可通过AXI总线(即从内存中)获取数据,WIN0/1/2/3同时支持从CAMIF摄像头接口获取数据
2.每个窗口都可以独立选择是否将其数据输出,控制器将会根据一定的规则(blending、color key)将各个窗口的数据混合成一张图像,然后还可以对图像进行各种处理
</