• «
  • 1
  • 2
  • 3
  • »
  • Pages: 2/3     Go
主题 : 24位rgb888mini6410LCD驱动 复制链接 | 浏览器收藏 | 打印
级别: 新手上路
UID: 52133
精华: 0
发帖: 7
金钱: 35 两
威望: 7 点
综合积分: 14 分
注册时间: 2011-07-13
最后登录: 2011-10-08
10楼  发表于: 2011-07-26 09:59
我也想调个18位的LCD(6:6:6),楼上的可以说说这个驱动需要调整S3C6410哪方面的参数吗
级别: 新手上路
UID: 46242
精华: 0
发帖: 40
金钱: 200 两
威望: 40 点
综合积分: 80 分
注册时间: 2011-05-11
最后登录: 2011-08-23
11楼  发表于: 2011-07-26 11:03

 回 10楼(hero-qiu) 的帖子

RGB666的数据格式S3C6410这款芯片好像不支持,具体你看下S3C6410的LCD控制器介绍,你想调个18位的是什么意思呢?是看看效果上的差异吗?
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
12楼  发表于: 2011-07-26 13:02
改成24位后, 每个像素占用是4字节, 而16位时为2字节
这需要让应用知道, 不知道你是不是只是改了寄存器配置, 而没有改提供给上层应用的framebuffer的信息?
级别: 新手上路
UID: 46242
精华: 0
发帖: 40
金钱: 200 两
威望: 40 点
综合积分: 80 分
注册时间: 2011-05-11
最后登录: 2011-08-23
13楼  发表于: 2011-07-26 17:24

 回 12楼(911gt3) 的帖子

不太理解你的意思,呵呵,你的意思是寄存器配置 /= 提供给上层应用的framebuffer的信息吗?
但是所有的控制器信息都是在struct fb_info里面,这个结构体通过framebuffer_register已经注册到上层的framebuffer中。
能具体一点吗?如果有例子的话更好了。
^很多问题的背后都是简单的原因......
级别: 荣誉会员
UID: 34780
精华: 0
发帖: 1219
金钱: 6230 两
威望: 1246 点
综合积分: 2438 分
注册时间: 2010-12-21
最后登录: 2017-09-18
14楼  发表于: 2011-07-26 18:16
你可以自己写一个framwbuffer 的测试程序, 看看获得的bpp是多少
级别: 新手上路
UID: 46242
精华: 0
发帖: 40
金钱: 200 两
威望: 40 点
综合积分: 80 分
注册时间: 2011-05-11
最后登录: 2011-08-23
15楼  发表于: 2011-07-26 19:16

 回 14楼(911gt3) 的帖子

我大概知道你的意思了,好的,我试试
级别: 新手上路
UID: 26607
精华: 0
发帖: 24
金钱: 120 两
威望: 24 点
综合积分: 48 分
注册时间: 2010-08-11
最后登录: 2012-02-12
16楼  发表于: 2011-07-28 19:05
6410的display controller在处理24bpp时,是需要按照32bit填充数据的,但是qt在24bpp图形界面时,只有24bit的数据,所以24 / 32 = 3 / 4,因此,只有3/4的屏幕有显示,而且显示内容乱七八糟的
可以修改QT的源码,让24bpp时也有32bit的数据,4.6.3版本,src/gui/embedded/qscreen_qws.cpp文件:
1)修改界面填充方式,函数 blit_qrgb888()中,
case QImage::Format_RGB888:
    blit_template<qrgb888, qrgb888>(screen, image, topLeft, region);
    修改为:
    blit_template<quint32, qrgb888>(screen, image, topLeft, region);
2)修改底色填充方式,函数 qt_solidFill_setup()中,
case 24:
    screen->d_ptr->solidFill = solidFill_template<qrgb888>;
    修改为:
    screen->d_ptr->solidFill = solidFill_template<quint32>;

重新编译一次QT就可以了。
其他的QT版本,应该类似
级别: 新手上路
UID: 41597
精华: 0
发帖: 41
金钱: 210 两
威望: 42 点
综合积分: 82 分
注册时间: 2011-03-30
最后登录: 2016-08-04
17楼  发表于: 2011-08-12 14:01
楼主,这个问题你解决了么,我现在也碰到同样的问题,分析了一下寄存器的配置,我觉得寄存器的配置应该是没有问题的,不知道问题出在什么地方。
级别: 新手上路
UID: 41597
精华: 0
发帖: 41
金钱: 210 两
威望: 42 点
综合积分: 82 分
注册时间: 2011-03-30
最后登录: 2016-08-04
18楼  发表于: 2011-08-12 23:08
16楼的方法,我试过了,能够解决问题,但是我想能不能从驱动那边把这个问题给解决了,不知道大家有解决么
级别: 新手上路
UID: 54601
精华: 0
发帖: 2
金钱: 20 两
威望: 4 点
综合积分: 4 分
注册时间: 2011-09-02
最后登录: 2011-09-07
19楼  发表于: 2011-09-02 15:14
楼主的问题解决了,我也碰到此类问题,我是直接设置内核drivers/video/fbmem.c
具体请参考:

http://blog.csdn.net/lxj_com2006/article/details/6742983
[ 此帖被lxj_com2008在2011-09-02 16:46重新编辑 ]
  • «
  • 1
  • 2
  • 3
  • »
  • Pages: 2/3     Go