微波EDA网,见证研发工程师的成长!
首页 > 研发问答 > 无线和射频 > TI蓝牙设计交流 > 求助!simpleBLEPeripheral工程,程序中开启看门狗,OAD升级失败

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

时间:10-02 整理:3721RD 点击:

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

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

注: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升级正常!请问问题出在哪里呢?

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

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

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

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

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

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

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

网站地图

Top