使用XDS110仿真时,第一次进入仿真可以正常通过
然后resetCPU后,再次仿真就会在
进入GAP_SetParamValue(TGAP_CONN_PAUSE_PERIPHERAL, DEFAULT_CONN_PAUSE_PERIPHERAL);中时
在
VOID osal_snv_read(BLE_NVID_IRK, KEYLEN, gapRole_IRK);
VOID osal_snv_read(BLE_NVID_CSRK, KEYLEN, gapRole_SRK);
VOID osal_snv_read(BLE_NVID_SIGNCOUNTER, sizeof(uint32_t),
&gapRole_signCounter);
这3条语句中都会进入ICall_abort死循环,卡死
使用的CC2640R2F的simplelink_cc2640r2_sdk_1_40_00_45协议栈中blestack目录下的simple_peripheral项目的RCOSC的workspace
修改的点有注释xPOWER_SAVING
注释掉xCC2640R2_LAUNCHXL
添加CC2640R2DK_4XS
代码优化选择了none
请问下一下,这个是什么情况
Viki Shi:
没有遇到过
1、是否可以用最新版的例程测试一下?1.40非常老了
2、保持原例程不变,仿真正常吗
lily:
回复 Viki Shi:
我再下载测试一下simplelink_cc2640r2_sdk_3_30_00_20这个版本
lily:
回复 Viki Shi:
已经测试simplelink_cc2640r2_sdk_3_30_00_20这个版本,还是一样的现象
直接用的官方例程还是simplelink_cc2640r2_sdk_3_30_00_20协议栈中blestack目录下的simple_peripheral项目的RCOSC的workspace
使用的是IAR,未做其他修改,只是将代码优化选择为None,这样方便打断点
编译通过后,点击download and debug进入仿真
第一次全速可以正常通过GAP_SetParamValue(TGAP_CONN_PAUSE_PERIPHERAL, DEFAULT_CONN_PAUSE_PERIPHERAL);
然后点击reset CPU
再次全速进行就卡死在如下位置
uint8_t abortLoop=1;
ICall_Errno
ICall_abort(void)
{
#ifdef HALNODEBUG
#elifdefined(EXT_HAL_ASSERT)HAL_ASSERT(HAL_ASSERT_CAUSE_ICALL_ABORT);
#elseif (abortLoop){while(abortLoop); //就卡死在这个死循环这里了}// add the else in order to have full call stack on abortelse{return(ICALL_ERRNO_SUCCESS);}
#endif /* EXT_HAL_ASSERT */ICALL_HOOK_ABORT_FUNC();return(ICALL_ERRNO_SUCCESS);
}
请帮我分析一下,谢谢了