WINCE设备开机灰屏问题(很怪异)

WINCE设备开机灰屏问题(很怪异)

1.     问题现象

WINCE设备开机灰屏问题(很怪异)

图1

无法进入系统,虽然没有调试信息,但应该可以判断是程序跑飞了。我们这款产品用到3种显示屏(采用不同的驱动IC),可是测试发现1和2号屏就没有这个问题,只有3号屏有这个问题,发生的概率是1/10。

2.     问题的排查

我们刷回2014.03.13日的系统,没有发现此问题,那肯定是后来改出来的问题,经过排查是因为eboot中OEMPlatformInit()--->InitDisplay()增加了下面的调试信息引起,如下:

UINT16hsync_cnt,vclk_cnt;

UINT8lcd_vbpd,lcd_vfpd,lcd_vspw,lcd_hbpd,lcd_hfpd,lcd_hspw;

..............

clkval =(UINT8)(((float)S3C2450_HCLK/(float)(hsync_cnt*vclk_cnt*lcd_frame_rate))+0.5)-1;

RETAILMSG(1,(TEXT("clkval=%d,hsync_cnt=%d,vclk_cnt=%d,lcd_hbpd=%d,lcd_hfpd=%d\r\n"),clkval*100,hsync_cnt,vclk_cnt,lcd_hbpd,lcd_hfpd));

…………….

但很奇怪的是为什么其他两种屏不会出现此问题呢?暂时无法解释,备忘。

3.     问题的分析

虽然知道是因为增加上面调试新引起的,但无法解释原因,我进一步做下面的测试:

(1)  怀疑是乘法问题,把clkval*10改为clkval,但问题依旧。

hsync_cnt,vclk_cnt

(2)  去掉类型为UINT16的hsync_cnt和vclk_cnt,测试OK

typedef        unsigned short          UINT16;

所以初步可以判断是输出参数类型引起的,但没有深入分析其原因,先记录下来。

上一篇:使用纯CSS3实现一个日食动画


下一篇:在xcode上搭建OpenGL3.x运行环境