GPS_MNL_Init接口调试
0赞[DESCRIPTION]
错误发生在GPS_MNL_Init函数中,如何进行调试。
[SOLUTION]
GPS_MNL_Init接口要分成三个部分进行调试。
l GPS_SetupGpioPins接口,主要是收集GPS所使用的GPIO的配置信息,例如power pin、
uart rx/tx pin、 32k pin(仅对3336)、 eint pin。要检查清楚这几个pin的模式信息是否
正确, uart 端口是否和硬件一致。
l GPS_MNL_HW_Check接口,会使用上一部收集到的配置信息,给GPS所使用到的GPIO进行配置
。例如GPS上电、 uart rx/tx模式配置、 32k时钟配置。
l mtk_gps_init接口,开始BB和gps chip之间的通信,正常在rx/tx上会有相应的波形。如
果该接口调用失败,那么已经要先检查前两步,然后再确认GPS chip外围电路是否都是相连,确
保通路状态。对于3336还要确保RTC电源到位。
补充ic点:
1, 高频时钟一定要确保软体上和硬体上选择一致,这个可以参考FAQ04836。
2, 虽然3326/3336有预留复位管脚,但是由于gps chip内部已经集成了复位功能,建议不要控
制gps chip的复位管脚,这样有可能由于控制逻辑不对造成GPS不能正常工作。
3, 如果到此仍然没有解决问题,请客户提供catcher log, filter 选择MOD_GPS和MOD_MNL
。像6250/6252平台上ROM有限, release出去的code在很多log上都没有真正的enable,这样
客户提供的catcher log一样不能正常分析问题。
针对SLIM工程抓取log方法:
默认情况下, SLIM project的所有trace都是关闭的(primitive仍保留),但为了debug某些问
题,可能需要更详细的trace信息,一般来讲,由于SLIM project的ROM受限,如果将所有lib的
trace全部打开,通常都不能成功编译出bin档(ROM不够)。
因此,我们需要通过一些配置,只打开“感兴趣”的lib trace,而其它无关lib的trace仍保持
关闭状态,这样可以节省部分ROM空间,以便能编译出有效的bin档,具体步骤及方法如下,请参考
:
1) 首先,需确定当前问题都涉及到哪些lib:
1.1) 如果您已经知道涉及到哪些lib,请直接跳到第2)步。
1.2)如果您不知道涉及哪些lib,可通过catcher filter名(如MOD_xxx)来查询codebase中
携带的mapping table,该Mapping table 所在的位置在 MAUI/tst/database目 录下:
如果是 GPRS, 请看 tst/database_classb;
如果是 GSM, 请看 tst/database;
如果是 UMTS, 请看 tst/database_UMTS;
该Mapping table文件名为:MTK_databaseinfo.csv,请用excel打开,用该excel表左上角的
Filter勾选中catcher中对应的filter名(如MOD_XXX),第四列便会自动列出该MOD会涉及到
的所有lib。如果文件MTK_databaseinfo.csv异常损坏或丢失,您也可通过make
gen_modlibtbl来生成新的mapping table(文件名为custom_databaseinfo.csv,该文件
也存放在tst/database_xxx下)。
另外有几个必选的模块: kal,adaptation,config,sst,sst_sec
2)其次,确认相关lib是否有source code:
您可check codebase中的\mtk_lib这个目录,如果第一步中确认出的lib能在该目录下找到
,则说明贵司没有该lib相关的source code,反之贵司有相关lib的source code。
3)再次,配置编译开关:
以打开l4_classb,rr_classb这两个lib的trace为例,需按如下方式配置makefile中对应的
compile option:
KAL_DEDUG_AND_TRACE_LEVEL = SLIM_DEBUG_KAL# NORMAL_DEBUG_KAL,
SLIM_DEBUG_KAL, RELEASE_KAL
KAL_TRACE_OUTPUT = CUST_PARTIAL
PARTIAL_TRACE_LIB =kal,adaptation,config,sst,sst_sec, l4_classb,rr_classb
4)执行编译:
执行make new。
5)最后,半导体检查编译结果:
5.1)如果编译正常,请设置好相应的Catcher filter、复现问题并提供catcher log给敝司以
便进一步分析。
5.2)如果编译出错(ROM爆掉),
5.2.1)请review第1步中的结果,看是否有些lib可以不必关注,如果有,请在
PARTIAL_TRACE_LIB中将其删掉(以便节省部分ROM空间,但必选的几个模块不能去掉),然后再
执行第4步。
5.2.2)如果实在没有多余的lib可以删掉,贵司可尝试自行关掉一些与该问题明显无关的
feature(前提:贵司可自由开关该feature)同样达到节省ROM的目的;如果某feature贵司不
能自行开关(因为,打开或关闭某些feature,与该feature相关的lib也需要同时更新),这中
case就需要贵司向敝司申请一个flavor build(关掉某feature以便节省部分ROM空间),待拿到
flavor build后,再重复以上步骤,直到提供有效的catcher log为止。 log为止。