• 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;

     

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

     

  • 相关阅读:
    175. 组合两个表
    101. 对称二叉树
    292. Nim游戏
    319. 灯泡开关
    155. 最小栈
    232. 用栈实现队列
    225. 用队列实现栈
    145. 二叉树的后序遍历
    144. 二叉树的前序遍历
    【leetcode】977. Squares of a Sorted Array
  • 原文地址:https://www.cnblogs.com/liang123/p/6325488.html
Copyright © 2020-2023  润新知