Feature phone 的production release 版本上存在(1)死機無法抓取得memory dump或是(2)用JTAG分析問題時watchdog timeout了, 可以關閉watchdog去debug 問題,關閉方法如下:
11A before關閉 watchdog方法是將WDT_Enable()這個函數中的參數變為kal_FALSE。如下
Application_Initialize() (init\src\init.c) like this:
#ifdef __PRODUCTION_RELEASE__
#ifdef __MULTI_BOOT__
if ( system_boot_mode!=FACTORY_BOOT )
#endif /* __MULTI_BOOT__ */
// WDT_Enable(KAL_TRUE);
WDT_Enable(KAL_FALSE);
#endif /* __PRODUCTION_RELEASE__ */
11A after(包括11A)關閉 watchdog方法是將wdt_data.fgEnable = kal_TRUE 改為 KAL_FALSE。如下
Application_Initialize() (hal\system\init\src\init.c) like this:
#ifdef __PRODUCTION_RELEASE__
#ifdef __MULTI_BOOT__
if ( system_boot_mode!=FACTORY_BOOT )
#endif /* __MULTI_BOOT__ */
//wdt_data.fgEnable=KAL_TRUE;
wdt_data.fgEnable=KAL_FALSE;
init_dcl_wdt_handle=DclWDT_Open(DCL_WDT,0);
DclWDT_Control(init_dcl_wdt_handle,WDT_CMD_ENABLE,(DCL_CTRL_DATA_T*)&wdt_data);
DclWDT_Close(init_dcl_wdt_handle);
#endif /* __PRODUCTION_RELEASE__ */
如果在Application_Initialize() (hal\system\init\src\init.c) 沒有上面所述內容,但是有WDT_SetValue(255)函數,
關閉watch dog 方法為: WDT_SetValue(255);替換為WDT_Enable(KAL_FALSE);
在w12.36 11B起增加了兩個feature option ,FORCE_MEMORY_DUMP & FORCE_WATCHDOG_MUTE以加速開啟或者關閉watch dog and memory dump。修改project make file中的feature option, 然後remake system即可有效。