Hi,
最近安装了TI官方26xx最新的协议栈(ble_cc26xx_2_01_00_44423),在协议栈描述中看到,这个协议栈目前已经支持最大同时连接8个设备,所以想开发一个2640的主机串口透传模块,可以同时连接8个从机与之进行通信。我在IAR的Preprocessor中添加MAX_NUM_BLE_CONNS=8,然后修改HEAPMGR_SIZE=8000,以保证主机有足够的堆栈空间,但是编译出错,IAR中错误log如下:
LinkingError[Lp011]: section placement failed unable to allocate space for sections/blocks with a total estimated minimum size of 0x40a8 bytes (max align 0x8) in <[0x200000c8-0x200043bf]> (total uncommitted space 0x3df4). Uncommitted: [0x200000c8-0x200043bf]: 0x42f8 [0x20000200-0x200043bf]: 0x3dbc
个人初步怀疑是堆栈空间不足的原因导致。
然后我修改MAX_NUM_BLE_CONNS=6, HEAPMGR_SIZE=7000;编译可以通过,但当主机刚连接上4个从设备的时候,主机再次发起Scan操作,此时扫描到周边的从机设备个数为0(实际上我周围有好多在广播中的设备),而且主机连接从机速度很慢,不知道怎么回事?
所以经过我多次的测试,我发现主机无法同时连接8个从设备,而协议栈版本说明中却说是支持最大连接8个设备,我不知道自己是在哪里出了问题,请各位朋友们指点迷津。
Kai Zhao:
我用2.0stack,7000heapmar_size 6个连接没问题,再大估计也不稳定,没试过。 TI的例程是会根据uuid过滤扫描结果的,默认它只会显示广播中的sampleBLEperipheral, 不知道你修改了那个过滤的部分没有。
alen xu1:
回复 Kai Zhao:
谢谢你的回复
我周围全部是我们自己的模块,主机端根据UUID的过滤是打开的,正常的话肯定是可以扫描到其他设备的。