关于LCD驱动,RGB颜色对照表的问题

咕唧咕唧shuboLK 2011-12-02 08:45:54
LCD 驱动中,在设置好RGB颜色对照表后,它是怎么工作的,比如应用层传来每像素的颜色数据,这些数据是如何查表输出的?
我有两个理解:
1,LCD控制器会根据从FIFO中得到的数据,然后去色板上去找相应的值输出.这个过程是硬件来完成的。(这个想法还有一个疑点,我用的片子是2440,在每像素8bit的模式下,R G B各需要256个单元存放各自的色表,datesheet上说是从0x4d000400这个地址开始来存放色表的,并且驱动确实也这么做了
val = (red >> 0) & 0xf800;
val |= (green >> 5) & 0x07e0;
val |= (blue >> 11) & 0x001f;

writel(val, regs + S3C2410_TFTPAL(regno));
但是后面schedule_palette_update(fbi, regno, val);驱动又将色表保存在pal[regno] 这个数组里这又是为什么呢?)

2,应用层,我们通过ioctl()函数获得色表,然后根据色表值将每像素颜色数据传到驱动层,而后通过硬件给lcd。

不知道我上面哪个理解是正确的,请大家赐教。
...全文
836 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
  • 打赏
  • 举报
回复
结贴啦
  • 打赏
  • 举报
回复
第一个理解是对的,开始主要是被那个数组迷惑了,分不清调色盘的工作到底是软件实现还是硬件,不过最后在驱动里找到了 。这样就明了了,谢谢楼上两位。我驱动看的不够仔细。

过去回1张贴就气喘吁吁,现在用了《Csdn收音机》,一口气回5张贴不费劲!
Wenxy1 2011-12-04
  • 打赏
  • 举报
回复
datasheet上应该有说明呀,要么是LCD控制器部分,要么是LCD部分。

4,466

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 内核源代码研究区
社区管理员
  • 内核源代码研究区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧