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

CC2640r2 hid_emu_kbd从SDK_1_50_00_58升级到SDK_3_40_00_10 出现icall异常

hid_emu_kbd升级如下:

1, 安装simplelink_cc2640r2_sdk_3_40_00_10开发包

2, 因sdk_3_40_00_10开发包没有hid_emu_kbd demo工程,因此基于simple_peripheral来升级hid_emu_kbd工程

3, 测试原始simple_periphera工程代码, 它能正常运行起来,没出现异常

4, 在simple_peripheral_cc2640r2lp_app/PROFILES目录下增加 battservice.c, battservice.h, hiddev.c, hiddev.h, hidkbdservice.c, hidkbdservice.h, scanparamservice.c, scanparamservice.h

5, 在simple_peripheral_cc2640r2lp_app/PROFILES目录下删除 simple_gatt_profile.c, simple_gatt_profile.h

6, 在simple_peripheral_cc2640r2lp_app/Application目录下增加 hidemukbd.c hidemukbd.h

7, 在simple_peripheral_cc2640r2lp_app/Application目录下删除  simple_peripheral.c, simple_peripheral.h

8, 在simple_peripheral_cc2640r2lp_app/Application目录下修改Main.c, 增加 HidDev_createTask(), HidEmuKbd_createTask(), 删除periphera_createTask()

9, 编译后在TI开发板上运行出现ICALL异常如下

uint8_t abortLoop=1;ICall_Errno
ICall_abort(void)
{
#ifdef HALNODEBUG
#elif defined(EXT_HAL_ASSERT)
HAL_ASSERT(HAL_ASSERT_CAUSE_ICALL_ABORT);
#else
if (abortLoop)
{
while(abortLoop);   <<<<<<<< stop here >>>>>
}
// add the else in order to have full call stack on abort
else
{
return(ICALL_ERRNO_SUCCESS);
}
#endif /* EXT_HAL_ASSERT */
ICALL_HOOK_ABORT_FUNC();
return(ICALL_ERRNO_SUCCESS);
}

10, 运行gapRole_ini 函数执行如下代码出现异常

// Restore Items from NV
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);

bing zhou:

Hi, TI 工程师们,是否可以这样升级?问题出现在那里,谢谢!

bing zhou:

回复 Viki Shi:

thanks @Viki

赞(0)
未经允许不得转载:TI中文支持网 » CC2640r2 hid_emu_kbd从SDK_1_50_00_58升级到SDK_3_40_00_10 出现icall异常
分享到: 更多 (0)