BLE Disconnect fails

取消
显示结果 
显示  仅  | 搜索替代 
您的意思是: 

BLE Disconnect fails

2,762 次查看
michaelbrudevo1
Contributor III

I'm using an MKW31Z.  Might be related to MKW30Z BLE connection flood protection but different processor so unsure.

I'm experiencing an issue where on occasion the call to Gap_Disconnect fails to produce a gConnEvtDisconnected_c callback event.  If I call Gap_Disconnect again, I get an internal error of gHciUnknownConnectionIdentifier_c, which indicates that the disconnect occurred but no gConnEvtDisconnected_c callback.

If I ignore the fact that I didn't get the callback and go ahead and call Gap_SetAdvertisingParameters, I then receive no advertising callbacks.

The usual flow is:

gAdvertisingDataSetupComplete_c

gAdvertisingParametersSetupComplete_c

gAdvertisingStateChanged_c

gConnEvtConnected_c

gConnEvtParameterUpdateComplete_c

gConnEvtParameterUpdateComplete_c

gConnEvtDisconnected_c

And this will repeat until I don't get the gConnEvtDisconnected_c event.  At that point, I can only achieve the gAdvertisingDataSetupComplete_c event, but not the other advertising events.

I have not found any pattern of number of connects/disconnects or advertising calls that trigger this.  My code is based off the heart rate sensor example, but I don't currently have a working test sample.  Using version 1.0.2 of the connectivity software.

标签 (2)
0 项奖励
回复
3 回复数

2,211 次查看
gerardo_rodriguez
NXP Employee
NXP Employee

Hello, 

This issue has been fixed in the KW41Z SDK Maintenance Release which is out now. You can download it from the MCUXpresso SDK Builder.


Regards,

Gerardo

0 项奖励
回复

2,211 次查看
michaelbrudevo1
Contributor III

Tracked down the issue to a memory leak in L2ca_HciEventCallback, specifically when a Command Complete packet is returned for LE Remote Connection Parameter Request Reply.

Here's that packet: 0e 06 01 20 20 00 60 00

A buffer is allocated but then it fails the check comparing the first byte against 0x3e and the function returns.  I've added some code to drop this packet before it hits Ble_HciRecv, and that appears to work for me.  Please update the stack to properly fix this issue.

0 项奖励
回复

2,209 次查看
gerardo_rodriguez
NXP Employee
NXP Employee

Hello Michael,

I have reported this issue to the SW team. I will update this thread when a resolution is available.

Regards,

0 项奖励
回复