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