微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 手机设计讨论 > MTK手机平台交流 > MT6250量产的项目出现概率性的开机非常缓慢,进入系统后所有操作都非常的慢

MT6250量产的项目出现概率性的开机非常缓慢,进入系统后所有操作都非常的慢

时间:10-02 整理:3721RD 点击:
MT6250量产的项目出现概率性的开机非常缓慢,进入系统后所有操作都非常的慢,就连按一个按键都等十几秒才有反应,目前不知问题出在哪里。 大家有遇到过吗?都怎么解决。

你看一下你的custom\drv\MISC 目录下面的一个关于SIm卡的的文件,可能是默认是四卡的软件~

楼上正解,估计很多人都遇到这个问题

如果是4卡软件我记得以前很多人碰到会是开不了机吧。
不过我没有做过MT6250

这个搞错啦~你的情况跟我的不一样

/*****************************************************************************
*  Copyright Statement:
*  --------------------
*  This software is protected by Copyright and the information contained
*  herein is confidential. The software may not be copied and the information
*  contained herein may not be used or disclosed except with the written
*  permission of MediaTek Inc. (C) 2005
*
*  BY OPENING THIS FILE, BUYER HEREBY UNEQUIVOCALLY ACKNOWLEDGES AND AGREES
*  THAT THE SOFTWARE/FIRMWARE AND ITS DOCUMENTATIONS ("MEDIATEK SOFTWARE")
*  RECEIVED FROM MEDIATEK AND/OR ITS REPRESENTATIVES ARE PROVIDED TO BUYER ON
*  AN "AS-IS" BASIS ONLY. MEDIATEK EXPRESSLY DISCLAIMS ANY AND ALL WARRANTIES,
*  EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
*  MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE OR NONINFRINGEMENT.
*  NEITHER DOES MEDIATEK PROVIDE ANY WARRANTY WHATSOEVER WITH RESPECT TO THE
*  SOFTWARE OF ANY THIRD PARTY WHICH MAY BE USED BY, INCORPORATED IN, OR
*  SUPPLIED WITH THE MEDIATEK SOFTWARE, AND BUYER AGREES TO LOOK ONLY TO SUCH
*  THIRD PARTY FOR ANY WARRANTY CLAIM RELATING THERETO. MEDIATEK SHALL ALSO
*  NOT BE RESPONSIBLE FOR ANY MEDIATEK SOFTWARE RELEASES MADE TO BUYER'S
*  SPECIFICATION OR TO CONFORM TO A PARTICULAR STANDARD OR OPEN FORUM.
*
*  BUYER'S SOLE AND EXCLUSIVE REMEDY AND MEDIATEK'S ENTIRE AND CUMULATIVE
*  LIABILITY WITH RESPECT TO THE MEDIATEK SOFTWARE RELEASED HEREUNDER WILL BE,
*  AT MEDIATEK'S OPTION, TO REVISE OR REPLACE THE MEDIATEK SOFTWARE AT ISSUE,
*  OR REFUND ANY SOFTWARE LICENSE FEES OR SERVICE CHARGE PAID BY BUYER TO
*  MEDIATEK FOR SUCH MEDIATEK SOFTWARE AT ISSUE.
*
*  THE TRANSACTION CONTEMPLATED HEREUNDER SHALL BE CONSTRUED IN ACCORDANCE
*  WITH THE LAWS OF THE STATE OF CALIFORNIA, USA, EXCLUDING ITS CONFLICT OF
*  LAWS PRINCIPLES.  ANY DISPUTES, CONTROVERSIES OR CLAIMS ARISING THEREOF AND
*  RELATED THERETO SHALL BE SETTLED BY ARBITRATION IN SAN FRANCISCO, CA, UNDER
*  THE RULES OF THE INTERNATIONAL CHAMBER OF COMMERCE (ICC).
*
*****************************************************************************/
/*****************************************************************************
*
* Filename:
* ---------
* custom_sim_driver.C
*
* Project:
* --------
*   Gemini
*
* Description:
* ------------
*   this file is custom implementation of SIM driver
*
* Author:
* -------
* -------
*
*============================================================================
*             HISTORY
* Below this line, this part is controlled by PVCS VM. DO NOT MODIFY!
*------------------------------------------------------------------------------
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
* removed!
* removed!
* removed!
*
*------------------------------------------------------------------------------
* Upper this line, this part is controlled by PVCS VM. DO NOT MODIFY!
*============================================================================
****************************************************************************/
#include "drv_comm.h"
#include  "reg_base.h"
#include  "intrCtrl.h"
#include "multi_icc_custom.h"
#ifdef DRV_SIM_ALL_SOLUTION_BUILT
/*following is the template for dual SIM platform, I test it on TF68*/
/****************************************************
customer and HW SA please fill from here
*****************************************************/
#if defined(GEMINI_PLUS) && (GEMINI_PLUS == 2)
#ifdef __MTK_TARGET__
static const kal_uint32 iccSlotNum = 2;
#else         
#define iccSlotNum 2
#endif
const SIM_ICC_HW_SW_MAPPING iccMappingTable[iccSlotNum] =
{
/*
logical number, application usage from user's view, do it connect to MT6302, owned by which SIM controller, MT6302 chip #, interface # of this MT6302
*/
{0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF1, SIM_SWITCH_NONE, 0, 0, KAL_FALSE, KAL_FALSE, 0},
{1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_NONE, 0, 0, KAL_FALSE, KAL_FALSE, 0},
};
#else
#ifdef __MTK_TARGET__
static const kal_uint32 iccSlotNum = 4;
#else         
#define iccSlotNum 4
#endif
const SIM_ICC_HW_SW_MAPPING iccMappingTable[iccSlotNum] =
{
/*
logical number, application usage from user's view, do it connect to MT6302, owned by which SIM controller, MT6302 chip #, interface # of this MT6302
*/
#ifdef __SIM_HOT_SWAP_SUPPORT__
#if (defined(__SIM_HOT_SWAP_SLOT_1_SUPPORT__))
  {0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
  {1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
  {2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
  {3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#elif (defined(__SIM_HOT_SWAP_SLOT_2_SUPPORT__))
  {0, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
  {1, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
  {2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
  {3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#elif (defined(__SIM_HOT_SWAP_SLOT_3_SUPPORT__))
  {0, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
  {1, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
  {2, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
  {3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#elif (defined(__SIM_HOT_SWAP_SLOT_4_SUPPORT__))
  {0, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0x11, KAL_FALSE, 100},
  {1, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
  {2, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
  {3, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#else  
  {0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, 0, KAL_FALSE, 0},
  {1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, 0, KAL_FALSE, 0},
  {2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, 0, KAL_FALSE, 0},
  {3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, 0, KAL_FALSE, 0},
#endif
#else
{0, SIM_ICC_APPLICATION_PHONE1, MTK_SIMIF0, SIM_SWITCH_6306, 0, 0, KAL_FALSE, KAL_FALSE, 0},
{1, SIM_ICC_APPLICATION_PHONE2, MTK_SIMIF0, SIM_SWITCH_6306, 0, 1, KAL_FALSE, KAL_FALSE, 0},
{2, SIM_ICC_APPLICATION_PHONE3, MTK_SIMIF1, SIM_SWITCH_6306, 1, 0, KAL_FALSE, KAL_FALSE, 0},
{3, SIM_ICC_APPLICATION_PHONE4, MTK_SIMIF1, SIM_SWITCH_6306, 1, 1, KAL_FALSE, KAL_FALSE, 0},
#endif /* End of #ifdef __SIM_HOT_SWAP_SUPPORT__ */
};
#endif
/****************************************************
end of custom table
*****************************************************/
/****************************************************
only SW guys familiar with multiple SIM driver can modify following
*****************************************************/
sim_init_all_cb()
{
kal_uint32 loopIndex;
sim_init_hwCb();
for(loopIndex = 0; iccSlotNum > loopIndex; loopIndex++){
  DRV_ICC_interface_init(iccMappingTable[loopIndex].application);
}
}
kal_uint32 sim_get_logicalNum_from_app(SIM_ICC_APPLICATION application)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
  if(application == iccMappingTable[loopIndex].application){
   if(iccSlotNum <= iccMappingTable[loopIndex].logicalNum)
    ASSERT(0);
   return iccMappingTable[loopIndex].logicalNum;
  }
}
return 0xffffffff;
}
kal_uint32 sim_get_MT6302_from_logicalNum(kal_uint32 logicalNum)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
if(iccSlotNum <= logicalNum)
    ASSERT(0);
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
  if(logicalNum == iccMappingTable[loopIndex].logicalNum){
   if(SIM_SWITCH_6302 == (kal_bool)iccMappingTable[loopIndex].needMT6302)
    return (iccMappingTable[loopIndex].MT6302ChipNum << 8) | (iccMappingTable[loopIndex].MT6302PortNum);
   else if(SIM_SWITCH_6306 == (kal_bool)iccMappingTable[loopIndex].needMT6302)
    return (iccMappingTable[loopIndex].MT6302ChipNum << 8) | (iccMappingTable[loopIndex].MT6302PortNum) | (SIM_SWITCH_6306 <<16);
   else if(SIM_SWITCH_6314 == (kal_bool)iccMappingTable[loopIndex].needMT6302)
    return (iccMappingTable[loopIndex].MT6302ChipNum << 8) | (iccMappingTable[loopIndex].MT6302PortNum) | (SIM_SWITCH_6314 <<16);
   else
    return SIM_ICC_MT6302_NONE;
  }
}
/*there is no this logical number*/
ASSERT(0);
}
kal_uint32 sim_get_hwCtrl_from_logicalNum(kal_uint32 logicalNum)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
if(iccSlotNum <= logicalNum)
    ASSERT(0);
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
  if(logicalNum == iccMappingTable[loopIndex].logicalNum){
   return iccMappingTable[loopIndex].hwCtrl;
  }
}
/*there is no this logical number*/
ASSERT(0);
}
kal_uint32 sim_get_MT6302PeerInterface(kal_uint8 chipNum, kal_uint32 portNum)
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
  if(chipNum == iccMappingTable[loopIndex].MT6302ChipNum && portNum == iccMappingTable[loopIndex].MT6302PortNum){
   if(iccSlotNum <= iccMappingTable[loopIndex].logicalNum)
    ASSERT(0);
   return iccMappingTable[loopIndex].logicalNum;
  }
}
/*there is no this logical number*/
return SIM_ICC_MT6302_NONE;
}
kal_uint32 sim_get_ToalInterfaceCount()
{
return iccSlotNum;
}
kal_uint32 get_CAS_icc_logicalNum()
{
kal_uint32 loopIndex, loopMax = iccSlotNum;
for(loopIndex = 0; loopIndex < loopMax; loopIndex++){
  if(SIM_ICC_APPLICATION_CMMB_SMD == iccMappingTable[loopIndex].application){
   if(iccSlotNum <= iccMappingTable[loopIndex].logicalNum)
    ASSERT(0);
   return iccMappingTable[loopIndex].logicalNum;
  }
}
/*there is no this logical number*/
ASSERT(0);
}
kal_uint32 sim_custom_task_2_driver(kal_uint32 taskInterface)
{
   kal_uint32 rlt = 0;
   rlt = rlt;
#ifdef __SIM_HOT_SWAP_SUPPORT__
   switch((taskInterface >> 8) & 0xFF)
   {
   case SIM_CUSTOM_T2D_GET_HOTSWAP_PROPERITY:
     rlt = iccMappingTable[taskInterface & 0xFF].hotSwap | (iccMappingTable[taskInterface & 0xFF].polarity << 8);
      break;
   case SIM_CUSTOM_T2D_GET_HOTSWAP_DEBOUNDETIME:
   rlt = iccMappingTable[taskInterface & 0xFF].debounceTime;
   break;
   default:
     break;
   }
#endif
   return rlt;
}
#endif



你把以上代码替换到你的custom_sim_driver.c文件中试试,我这边就是这么处理的

按照你的文件改了,但问题还是没解决。还是会偶尔出现反应很慢的的现象。

高人啊,真是好东西啊!







什么牌子的bb霜好tbbshuang.com

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top