CC2640进行大数据量读写时容易挂掉
使用cc2640r2_sdk_1_35_00_33开发,作为peripheral连接ios9。
在CC2640进行大数据量读写时非常容易挂掉。挂掉后只能手动复位。
比如:GATT_Notification()进行快速连续发送时,会在此函数处卡死。没有返回值。
观察堆栈也未溢出、也没有缓存不足的的提示。
请教该如何调试、排除此类卡死的问题呢?谢谢!
GATT_Notification()进行快速连续是怎么样快速呢?
建议用cc2640r2_sdk_1_40_xx 最新的SDK试一下,该版本更加完善
每200ms发送一次,每次发送150x4个字节。
有时是一开始OK,跑个几分钟就挂掉,需手工复位。
会是协议栈的问题吗?还是我使用的环境的问题?
不知道怎么调试,能给个思路方向吗?谢谢!
连接间隔改大一点试试看
间隔改大是可以解决问题,但是速率低了就满足不了要求了。
有没有相关的函数,在要挂掉前给出指示,以降低发送速率?
* @return @ref SUCCESS : Notification was queued successfully.
* @return @ref INVALIDPARAMETER
* @return @ref MSG_BUFFER_NOT_AVAIL
* @return @ref bleNotConnected
* @return @ref bleMemAllocError
* @return @ref bleInvalidMtuSize : Packet length is larger than connection's MTU size.
* @return @ref bleTimeout : Previous transaction timed out.
*/
extern bStatus_t GATT_Notification( uint16 connHandle, attHandleValueNoti_t *pNoti,
uint8 authenticated );
根据返回值来判别
GATT_Notification一直返回SUCCESS ,然后突然挂掉
调试跟踪到执行GATT_Notification函数时失去响应,该如何处理呢?