大家好
最近在使用ble5app部分的工程的时候,我尝试修改central主设备的最大连接数据MAX_NUM_BLE_CONNS=3,但是实际的测试结果是,当我准备连接第三个设备的时候,连接函数返回0x15(返回值说明bleNoResources : too many links.),也就是提示我连接数量已满,此时我断开之前已连接的两个中的任一个,就可以连接第三个设备。
已确认MAX_NUM_BLE_CONNS=3是有进入main函数中初始化的,参数在ICall_getInitParams(i)中
void ICall_createRemoteTasks(void) {size_t i;UInt keytask;/* Cheap locking mechanism to lock tasks* which may attempt to access the service call dispatcher* till all services are registered.*/keytask = Task_disable();for (i = 0; i < ICALL_REMOTE_THREAD_COUNT; i++){Task_Params params;Task_Handle task;ICall_CSState key;Task_Params_init(¶ms);params.priority = ICall_threadPriorities[i];params.stackSize = ICall_threadStackSizes[i];params.arg0 = (UArg) icall_threadEntries[i];params.arg1 = (UArg)ICall_getInitParams(i);
请求帮助:是否有其他参数需要修改?确认不是ram溢出导致的问题,bleapp部分看到multirole例程最大连接数量4,ble5app部分看到multirole例程最大连接数量2,不知道是不是5.0协议部分的工程有这个限制?
Susan Yang:
请问您现在使用的是哪个版本的SDK?您可以通过 Project-> Properties -> Build -> ARM Compiler -> Predefined Symbols来设置MAX_NUM_BLE_CONNS
fei chen11:
回复 Susan Yang:
Yang 您好,
感谢您的回答,我这边使用的是IAR8.11版本,协议栈是simplelink_cc2640r2_sdk_1_40_00_45。
在IAR中我已经增加了MAX_NUM_BLE_CONNS的预编译宏定义,像下面图片中那样,现在发现的现象是当我修改为2的时候,可以连接2个从设备,但是当我修改为3的时候,却不能成功完成第3个设备的连接(提示连接链路太多),这个现象在CC2640中没有发现(CC2640我完成过8个设备的连接)。不知道是不是CC2640R2协议栈5.0部分(ble5app)对这个做了一些功能上的限制(类似于multi角色默认没有连接参数更新请求这样)。
再次感谢您的回复!
bin meng:
你好,我最近也遇到了同样的问题,请问你这个问题是怎样解决的呢