CC2640R2F Mutil_Role PERIPHERAL + OBSERVER OAD
工程需要,需要带OAD功能和主从一体功能
我再CC2640R2F 官方on-chip OAD工程上改了 多角色 从机+发现者
但是APP角色初始化不通过,没有触发GAP_DEVICE_INIT_DONE_EVENT 事件。APP还是正常运行的,其他的定时任务都能正常执行。
build_config.opt做了如下更改 :
/* BLE Host Build Configurations */
/* -DHOST_CONFIG=PERIPHERAL_CFG */
/* -DHOST_CONFIG=CENTRAL_CFG */
/* -DHOST_CONFIG=BROADCASTER_CFG */
/* -DHOST_CONFIG=OBSERVER_CFG */
-DHOST_CONFIG=PERIPHERAL_CFG+OBSERVER_CFG
/* -DHOST_CONFIG=CENTRAL_CFG+BROADCASTER_CFG */
/*-DHOST_CONFIG=PERIPHERAL_CFG+CENTRAL_CFG*/
multi.c中做了如下更改
static void gapRole_init(void)
{
// Register the current thread as an ICall dispatcher application
// so that the application can send and receive messages.
ICall_registerApp(&selfEntity, &syncEvent);
// Get link DB maximum number of connections
#ifndef STACK_LIBRARY
linkDBNumConns = linkDB_NumConns();
#endif /* STACK_LIBRARY */
// Setup timers as one-shot timers
Util_constructClock(&startAdvClock, gapRole_clockHandler,
0, 0, false, START_ADVERTISING_EVT);
Util_constructClock(&updateTimeoutClock, gapRole_clockHandler,
0, 0, false, CONN_PARAM_TIMEOUT_EVT);
// Initialize the Profile Advertising and Connection Parameters
gapRole_profileRole = GAP_PROFILE_PERIPHERAL | GAP_PROFILE_OBSERVER;
VOID memset(gapRole_IRK, 0, KEYLEN);
VOID memset(gapRole_SRK, 0, KEYLEN);
gapRole_signCounter = 0;
gapRole_AdvEventType = GAP_ADTYPE_ADV_IND;
gapRole_AdvDirectType = ADDRTYPE_PUBLIC;
gapRole_AdvChanMap = GAP_ADVCHAN_ALL;
gapRole_AdvFilterPolicy = GAP_FILTER_POLICY_ALL;
// 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);
}
另外,我又在官方的Multi_role 工程实验,同样做上面这些更改,下载到设备中可以正常工作。这个没有OAD功能,尝试了在这个基础上改OAD,步骤忒复杂了,最后也没有成功。
各位大侠,我上面问题出现在哪里了啊?问什么从机+发现者+OAD不能正常初始化呢?
建议您在Mutil_Roled的例子中添加oad功能,请参照下面的文档中的Add Off-chip OAD to an existing project。但是有可能出现内存的溢出的情况,建议增加堆栈大小。此外不建议在此工程上曾加oad功能。
Susan Yang
建议您在Mutil_Roled的例子中添加oad功能,请参照下面的文档中的Add Off-chip OAD to an existing project。但是有可能出现内存的溢出的情况,建议增加堆栈大小。此外不建议在此工程上曾加oad功能。
非常感谢您的建议,我在官方的on chip OAD 上改的 多角色只能用从机+发现者配置,用从机+主机的话,内存就不够用了,还好我们只需要从机+发现者的功能就OK了。
另外,请问您有带OAD功能的Muti_Role的工程实例吗?我尝试过在官方的Muti_Role上加OAD,步骤很多,有很多问题,花了几天时间,最后也没搞定