问题1:CC2640R2F BLE4.2和蓝牙4.0的手机互联时连接参数更新问题
CC2640R2F开发文档中有如下说明:
BLE外围设备可以通过发送连接参数更新请求来请求中央设备更改连接设置。对于支持蓝牙4.1和4.2的设备,此请求由链路层直接处理。对于蓝牙4.0设备,协议栈的L2CAP层处理该请求。低功耗蓝牙栈自动选择更新方式。
上述说明就会导致使用2640R2F 和部分蓝牙4.0手机搭配时,主机(即手机)link layer主动更新连接参数,LL层会使用极限值(BLE 支持的7.5ms),而BLE 从机更新连接参数容易被主机拒绝的情况下,而有的主机出于功耗的考虑,会再次请求更新连接参数,而再次更新时会使用一个较慢的参数,导致最终确定的连接间隔较大,传输速度较慢。可以设置计数标志字在再次进入GAP_UPDATE_LINK_PARAM_REQ_EVENT时,人为的避开第二次更新连接参数。
问题2:CC2640R2F SNV不用时占用扇区的问题
CC2640R2F SNV 会在flash 占用APP 空间最后1个/2个扇区,即,抛开BIM占用的PAGE31,SNV会占用PAGE 30(+PAGE 29),哪怕工程最终编译出.bin仅仅40kB,50kB,下载时仍然是124kB,感觉没有必要,可以在stack project 的preprocesser 中定义OSAL_SNV=0,即可禁用掉SNV(已经禁用掉bond 功能的前提下,否则可能会出错);而此时程序增删功能,大小不定,为了校验/下载方便管理,可能会期望增加部分裕量,填充到64kB/96kB等等,只要在linker->checksum 中打开“fill unused code memory”,然后设定到期望的管理大小即可;
|