`
fulerbakesi
  • 浏览: 560823 次
文章分类
社区版块
存档分类
最新评论

linux & android平台XGA分辨率玩捕鱼游戏屏闪解决方法

 
阅读更多

先说明下软件平台:

linux:2.6.35

android: 2.3.4

CPU: 三星S5PV210

显示屏分辨率:1024*768

bug现象:

在玩捕鱼达人游戏的时候屏抖动,有的是在主界面抖,有的是撒网抖动,有的是换网/炮的大小抖动。并且在初步测试中发现还和音频等应用有关,现象飘忽不定。最后紧紧围绕lcd驱动查找原因,经过同事帮忙测试,以及查找原因,已经解决,修改方法如下:


1.使用free run模式
文件:\drivers\video\samsung\s3cfb_fimd6x.c
函数:s3cfb_set_clock
修改方法:S3C_VIDCON0_VCLKEN_NORMAL改为S3C_VIDCON0_VCLKEN_FREERUN


2.修改vclk,使其处于正常状态。之前我们设置的83Mhz已经超过了cpu所允许的66MHz。
datasheet中有写The maximum frequency of VCLK is 66MHz.
文件:\drivers\video\samsung\s3cfb_lcd_info.c
数组:g_s3cfb_lcd_para[]
修改方法:将1024x768分辨率的clk_div改为3,此时vclk=166/3=55Mhz 帧率56hz,接近lcd屏的参考帧率,之前的vclk为80多MHz,帧率也达到了80多Hz,太高了。


注意:
还发现一个bug:我们在s3cfb_set_clock函数里面加了自己指定div的代码,但是并不完善。修改之前是这样的:
#if defined(CONFIG_FB_MSD_LCD)
if (ctrl->lcd->clk_div != 0){
div = ctrl->lcd->clk_div;
}else{
div = (int) (src_clk / vclk);
}
#else
div = src_clk / vclk;
#endif
if (src_clk % vclk)
div++;
if ((src_clk/div) > maxclk)
dev_info(ctrl->dev, "vclk(%d) should be smaller than %d Hz\n",
src_clk/div, maxclk);


既然指定就直接写死,不允许再有类似以下的判断
if (src_clk % vclk)
div++;
所以把这个包到#else里面去了,以绝后患,修改如下:
#if defined(CONFIG_FB_MSD_LCD)
if (ctrl->lcd->clk_div != 0){
div = ctrl->lcd->clk_div;
}else{
div = (int) (src_clk / vclk);
}
#else
div = src_clk / vclk;
if (src_clk % vclk)
div++;
if ((src_clk/div) > maxclk)
dev_info(ctrl->dev, "vclk(%d) should be smaller than %d Hz\n",
src_clk/div, maxclk);
#endif


还有一个极为恼人的是三星代码的bug。开始我div指定为3的是发现其实效果是4,难道是没有减1,仔细看了看设置是有减1操作的。最后加打印消息发现,cfg在设置之前bit[6]就是1,div-1之后只是简单的与了cfg,竟然没有清零!!!
直接在前面cfg初始化的时候加入清零操作。
修改前:
cfg &= ~(S3C_VIDCON0_CLKSEL_MASK | S3C_VIDCON0_CLKVALUP_MASK |
S3C_VIDCON0_VCLKEN_MASK | S3C_VIDCON0_CLKDIR_MASK );
修改后:
cfg &= ~(S3C_VIDCON0_CLKSEL_MASK | S3C_VIDCON0_CLKVALUP_MASK |
S3C_VIDCON0_VCLKEN_MASK | S3C_VIDCON0_CLKDIR_MASK | S3C_VIDCON0_CLKVAL_F(0xFF));


至此修改完毕,进入系统用工具读到0xF800_0000这个寄存器的值应该是0xB7.(修改之前是0x57)

boot中也要改成以上参数。

此BUG的解决完全归功于晓亮同学,当时正值5.1,公司放假三天,我因事回广西,只能拜托他帮忙。

他加班了两天,终于把此问题解决,保证了出货。

特写此文章感谢。

分享到:
评论

相关推荐

    智能手机屏幕尺寸和分辨率一览表.pdf

    智能⼿机屏幕尺⼨和分辨率⼀览表 智能⼿机屏幕尺⼨和分辨率⼀览表 2.8英⼨分辨率为640x480(VGA) 像素密度286PPI 3.2英⼨分辨率为480x320(HVGA) 像素密度167PPI 3.3英⼨分辨率为854x480(WVGA)像素密度297PPI 3.5英⼨...

    电视分辨率与线的概念

    虽然我们在很多杂志和文章上都看到有关“分辨率”的介绍,但不是不同的人总是有不同的说法,看了比不看更糊涂。家电推销员们常把一大堆的数据推到我们面前:达到“600-800”线的电视机、480P、720P、1080I、VGA、...

    笔记本电脑液晶屏幕分辨率缩写解释

    现在的笔记本是越卖越火了,很多人都在关注着笔记本的配置和价格。...分辨率是液晶显示屏的重要指标,但是在很多厂商的介绍和报价上,都只给出屏幕大小和象xga啊sxga+等名词,弄的一些不太在行的朋友看的是一头雾水。

    IBM XGA 标准

    The XGA video subsystem components include: System bus interface Memory and CRT controller Coprocessor Video memory Attribute controller Sprite controller Alphanumeric (A/N) font and sprite buffer ...

    一种BT.656到XGA视频格式转换结构的FPGA实现.pdf

    一种BT.656到XGA视频格式转换结构的FPGA实现.pdf

    关于嵌入式常用的显示屏幕STN,TFT,VGA,TFT转VGA原理介绍

    如果3.8英寸液晶显示屏幕可以显示240×320的图象,就叫做“QVGA 3.8英寸液晶显示屏”,以上两种情况虽然具有相同的分辨率,但是由于尺寸的不同实际的视觉效果也不同,一般来说屏幕小的一个画面自然也会小一些 ...

    含B闪锌矿三元系半导体B_xIn_(1-x)P和B_xGa_(1-x)P带隙理论预测.pdf

    含B闪锌矿三元系半导体B_xIn_(1-x)P和B_xGa_(1-x)P带隙理论预测.pdf

    基于反射光谱的In_xGa_(1-x)N半导体薄膜厚度测量.pdf

    基于反射光谱的In_xGa_(1-x)N半导体薄膜厚度测量.pdf

    XGATE.rar_XGA_XGATE Library_mc9s12 xga_xgate_xs128 xgate

    有关XGATE的讲义,在学习过程中遇到的一些问题制作成了PPT格式供大家参考

    xga.zip_GA delphi_XGA_delphi equation_delphi genetic_genetic alg

    Using Genetic Algorithm(GA) to solve the equation

    透射式指数掺杂Al_xGa_电阴极光学性能和量子效率仿真研究

    透射式指数掺杂Al_xGa_1电阴极光学性能和量子效率仿真研究

    显示/光电技术中的Apollo推出以LED作为背光源的LCD

    提供有6.5-, 8.4-, 10.4- 和12.1英寸,这些LED背光源的LCD是为高分辨率显示屏而设计的,6.5英寸LCD有VGA(480×640)分辨率供选择,8.4英寸有VGA或XGA (1024×768) 分辨率,10.4英寸提供 VGA或SVGA (800×600)...

    显示/光电技术中的解析LED投影知识

     LED投影机分辨率的表示方法是用画面中水平像素数乘以垂直像素数。LED投影机的分辨率不是指LED投影机可以接收的信号的分辨率,而是指它们的核心光引擎(LED芯片、LCD面板、LCOS面板等)的物理分辨率。尽管投影机...

    解析LED投影知识

     LED投影机分辨率的表示方法是用画面中水平像素数乘以垂直像素数。LED投影机的分辨率不是指LED投影机可以接收的信号的分辨率,而是指它们的光引擎(LED芯片、LCD面板、LCOS面板等)的物理分辨率。尽管投影机通常...

    三菱触摸屏工业用彩色TFT液晶模块详解

    三菱电机株式会社于2月28日开始提供搭载投射式电容触摸屏的8.0寸WVGA和12.1寸XGA/WXGA宽屏样品,该产品可以从厚度5mm防护玻璃上进行操作并适合戴着手套操作,多点触控和耐水滴性需求等多种用途。通过此次扩大产品...

    跟我学:液晶屏的接口形式—LVDS&TTL

     TTL是TFT液晶屏的基本接口,在15英寸以下液晶屏中比较常见,通常分辨率为VGA(640×480)、SVGA(qnn×600)、XGA(1024×768),再高分辨率的就不用这种接口了。TTL接口通常为31PIN、4lPIN、60PIN、80PIN等。 ...

    路畅固件4.0.9 版本CN-A6-GBDS-BC8-VIN-256-V1.51 (1).zip

     17.XGA: 指蒙迪欧大屏使用的NK,768x1024分辨率的。  18.HDMI: 指支持CH7102的HDMI功能。  19.SFWE: 指使用SFWE蓝牙协议栈的NK。  20:A3: 指奥迪A3专用,分辨率为1024x600的NK。  21: GT: 使用德普特GT9XX...

    中控设计方案.doc

    大屏幕规格: 本技术方案中的大屏幕显示系统是基于SONY公司的VPL- PX40系列的LCD投影机为主体组合而成.VPL-PX40系列LCD投影机采用3片XGA ( 1024x768) 液晶板, 最新的数字TFT技术使投影机具极高的亮度透过率, 提供高...

    显示/光电技术中的跟我学:液晶屏的接口形式—LVDS&TTL

     TTL是TFT液晶屏的基本接口,在15英寸以下液晶屏中比较常见,通常分辨率为VGA(640×480)、SVGA(qnn×600)、XGA(1024×768),再高分辨率的就不用这种接口了。TTL接口通常为31PIN、4lPIN、60PIN、80PIN等。 ...

    ECX331DB(E)Ver.1.7

    根据索尼 (Sony)于发布的版本号为Ver1.97E的产品规格书,ECX331DB-6显示分辨率为1024(RGB)×768 (XGA),宽高比为4:3 (宽:高),像素采用RGB三角形排列,屏库计算出的像素密度为2510 PPI。它的显示区域尺寸为10.336(宽...

Global site tag (gtag.js) - Google Analytics