zoukankan      html  css  js  c++  java
  • WINCE设备开机灰屏问题(很怪异)

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

     

    1.     问题现象


    图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 "),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;

     

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

     

  • 相关阅读:
    玩转渗透神器Kali:Kali Linux作为主系统使用的正确姿势TIPS
    知道创宇研发技能表v2.2
    我对什么都感兴趣,可我迷茫了(转载)
    防御性编程
    防御性编程技巧
    移动安全技术如何未雨绸缪?
    1054. 求平均值 (20)
    1053. 住房空置率 (20)
    1052. 卖个萌 (20)
    1051. 复数乘法 (15)
  • 原文地址:https://www.cnblogs.com/liang123/p/6325488.html
Copyright © 2011-2022 走看看