TI中文支持网
TI专业的中文技术问题搜集分享网站

求助!!simpleBLEPeripheral工程,程序中开启看门狗,OAD升级失败

请大家帮忙看下,simpleBLEPeripheral工程,程序中开启看门狗,OAD升级失败!

失败提示内容如下:
Device disconnected!
Device disconnected during programming.Firmware upgrade failed,you should check battery andsettings

注:CC2541-OAD-ImgA和CC2541-OAD-ImgB都是由例程中simpleBLEPeripheral工程配置出来,并加入看门狗!

程序代码如下:

if ( events & SBP_START_DEVICE_EVT )
{
// Start the Device
VOID GAPRole_StartDevice( &simpleBLEPeripheral_PeripheralCBs );

// Start Bond Manager
VOID GAPBondMgr_Register( &simpleBLEPeripheral_BondMgrCBs );

// Set timer for first periodic event
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_PERIODIC_EVT, SBP_PERIODIC_EVT_PERIOD );
wdt_reset_mode(WDT_1000MS); /* 开启看门狗 15.6ms */
osal_set_event( simpleBLEPeripheral_TaskID, SBP_AMY_CLRWDT_EVT ); //立即触发清狗事件
return ( events ^ SBP_START_DEVICE_EVT );
}

if (events & SBP_AMY_CLRWDT_EVT)
{
wdt_clr(); /* 4ms 清狗 */
osal_start_timerEx( simpleBLEPeripheral_TaskID, SBP_AMY_CLRWDT_EVT, 4);

return (events ^SBP_AMY_CLRWDT_EVT);
}

若将看门狗去掉,则OAD升级正常!请问问题出在哪里呢?

Barbara Wu:

请问是OAD开始了之后才失败还是一开始就失败了?

Barbara Wu:

加看门狗的原因是什么呢?

daoyin Fan:

回复 Barbara Wu:

你好,WBJ,找到OAD失败的原因了,是因为配置里没有将POWER_SAVING去掉,进入低功耗模式,现在已经可以升级。

加看门狗的原因是,我想在SimpleBLEPeripheral工程的基础上开发项目,加入看门狗,保证系统的稳定性,防止死机。

但是现在又有一个问题,虽然OAD成功,手机上也显示升级成功,但是手机上看运行的版本号一直是 IMAGE TYPE   A 。而不是IMAGE TYPE B!

而我将看门狗去掉,OAD成功后,版本号就正确了,由IMAGE TYPE   A升级为IMAGE TYPE  B,这很奇怪!后来我去看BIM的程序,里面用到了WDT,难道程序里WDT配置要和BIM的配置一样,如果需要OAD升级时?

赞(0)
未经允许不得转载:TI中文支持网 » 求助!!simpleBLEPeripheral工程,程序中开启看门狗,OAD升级失败
分享到: 更多 (0)