I have a project using the up-gradable BLE stack and BLE and OTA have been working fine... up to this point.
I have recently made quite a few changes to the BLE Profile, and now I when doing an OTA update, the device updates, and gets stuck in the function CyBle_GapGetBondedDevicesList(&bondedDevList), in AfterImageUpdate().
The new firmware runs fine if programmed with the programmer, and itself can be updated OTA and works fine.
Any ideas? I need to be able to update devices already in the field.
Can you let us know the result of this API - CyBle_GapGetBondedDevicesList(&bondedDevList).
Can you also let us know the changes you made in the BLE profile.
Can you attach the demo project which reproduces this issue so that we can debug at our end.
Thanks for your response. FYI, TIA == thanks in advance
1. CyBle_GapGetBondedDevicesList(&bondedDevList) does not return.
As it is a Cypress library, I don't have source code to inspect the function or compile a local copy of the function.
I haven't been able to attach with the debugger as it appears to reset.
I have determined that CyBle_GapGetBondedDevicesList(&bondedDevList) is the offending function by placing debug print statements before and after functions.
2. "BLE Profile Origional.zip" attached is the first version, and "BLE Profile.zip" is the new one.
3. I will create a dummy project to repeat the problem and post when done.
Could you please elaborate under what circumstances you are actually reproducing the issue? If you can attach a zip of the projects where you are able to reproduce the issue, it would be helpful to debug.
Please try calling the API CyBle_GapRemoveOldestDeviceFromBondedList(); before the function call AfterImageUpdate(); and check if you are seeing the issue.
I tried to reproduce the issue at our side but could not succeed in doing so.
Thanks and regards