2024-09-26 10:55 AM - edited 2024-10-05 09:57 AM
I have a custom board which is based heavily on the P-NUCLEO-WB55.Nucleo. If I flash my board with a slightly modified version of BLE_Ota it will appear in ST BLE Sensor, at which point I can use it to flash my application. This works. After flashing the board will reboot and my application will run.
I've added the reboot characteristic to my application, and I copied the TAG_OTA_START and TAG_OTA_END lines from BLE_p2pServer_Ota to my linker file. I also added the appropriate advertisement settings, and the reboot code:
As a result, it shows up in ST BLE Sensor still and allows me to do a FUOTA update. However, if I try and upload the exact same file again the board will reset but the firmware update will fail (never goes beyond 0%).
I can debug my design and set a breakpoint for when ST BLE Sensor reboots it:
I am able to trace the execution all the way through the reset and back into the BLE_Ota code. I can see that the code is running, its stuck forever waiting for SHCI_C2_BLE_Init() to finish. At that point I have to power cycle the board and it will return to my code.
Solved! Go to Solution.
2024-10-06 06:10 AM
Commenting these lines appears to have fixed the problem. These lines do not appear in Cube-generated code.
2024-09-27 02:32 PM
2024-10-05 09:59 AM
I haven't been able to make any progress on this. It seems like there is some configuration in my user application that isn't compatible with the BLE_Ota.
2024-10-06 06:10 AM
Commenting these lines appears to have fixed the problem. These lines do not appear in Cube-generated code.