Other Parts Discussed in Thread: CC2640
We are trying to deploy a large number of peripherals with a few central nodes to monitor and update them. In our network, we have been noticing that some of our peripherals will eventually stop sending connectable adverts until a CPU reset is performed. I am almost sure that this is a result of a BLE connection attempt, but am not 100% sure on what goes wrong in the system yet. However, in our environment - there are more than one central that might want to connect to a given peripheral's broadcast so perhaps that makes it worse. The other interesting item to note is that, when the peripheral stops sending connectable ads, there are certain events which still trigger non-connectable broadcasts from the peripheral. This suggests that the system is not completely compromised, but rather some part of the program is corrupted.
While trying to figure out why this might be happening, we stumbled across this release note for the BLE 2.1.1 stack:
"Fixed an issue that may result in memory corruption if the connection is terminated on the GATT Server during an ATT Prepare Write Request procedure"
I am thinking that this is very possibly what we are seeing, and wanted to confirm the side effect of this bug and what was done to address it. I will be trying to review the code changes between the two stacks to see if I can figure out how to prove that this is indeed our issue. I would appreciate it if anyone at Ti who is familiar with this change could shed some light on what its side effects could be, and what the fix actually is.
Here are our specific configurations:
XDC Tools: xdctools_3_31_01_33_core
Compiler: ti-cgt-arm_5.2.5
RTOS: tirtos_simplelink_2_13_00_06
BLE Stack: ble_cc26xx_2_01_00_44423
Thank you for the time and advise, looking forward to what your experts have to say!