SP5368+GC0309调试

来源:互联网 发布:ubuntu 中启动网络服务 编辑:程序博客网 时间:2024/05/02 02:19

时间:20100420

 

昨天主要让dsp5368的人过来解决一个问题:

 

现象:

      在手机开机的时候,然后进入摄像头(sensor:gc0309),会一定概率的出现整个手机屏幕显示白一块,黑一块这样充分的显示。

 

原因:

     查找原因主要是因为sp5368这边在开机的时候先在初始化sd卡,然而sd卡还没有初始化完成,摄像头这边就在开始初始化形成了多任务,导致lcd屏显示不正常。

 

解决办法:

     在读到有SD卡的时候,因为这个时候也有可能摄像头这边在初始化数据,于是判断一下sd卡此时是否初始化成功,若没有成功则标志一下,然后在摄像头初始化的时候判断这个标志,若sd没有初始化完成则让sensor延时一下等待然后在初始化摄像头,这样可以降低发生的概率。目前还没有想到更好的解决办法。

 

解决代码如下:

 

fmt_main.c中:

定义如下变量

kal_uint32 SP5368_Wait_SDinit_Ok=0; // hill 0420

 

在函数:

void fmt_card_detect_hdlr(local_para_struct *local_para_ptr, peer_buff_struct *peer_buff_ptr)
{

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

#if defined(_SP5368_SDUSB_)
    dbg_print("Entry:fmt_card_detect_hdlr( )/r/n");
    fs_ret = FS_NO_ERROR;
    SP5368_Wait_SDinit_Ok=1; // hill 0420
#else
    kal_prompt_trace(MOD_FMT, "[FMT][MSDC]FS_TestMSDC start");
    fs_ret = FS_TestMSDC((void*)msg_ptr->media_array, (BYTE*)&drv_list, (UINT*)&changed_drv_num);
    kal_prompt_trace(MOD_FMT, "[FMT][MSDC]FS_TestMSDC end(%d, %d)", fs_ret, changed_drv_num);
#endif

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

}
    

然后在文件sp5368cam.c:

extern kal_uint32 SP5368_Wait_SDinit_Ok; //hill 0420
在sensor初始化函数:

void SP5368_CamModual_Reg_Preview_Init(void)
{

//*******************************for sensor stability hill 0420************************
        if(SP5368_Wait_SDinit_Ok==0)
    {
      kal_sleep_task(200);
    }
 SP5368_Wait_SDinit_Ok=0;
//**********************************************************************
..................................

}

 

原创粉丝点击