Showing results for 
Search instead for 
Did you mean: 

How to run BLE ota without optimization?



I'm currently working on an STM32WB55VCQ7 microcontroller using Visual Studio GDB. My project involves implementing a bootloader for over-the-air updates via BLE. I've made some progress by successfully flashing the example application located at 'Projects\P-NUCLEO-WB55.Nucleo\Applications\BLE\BLE_Ota.' The application works as expected, allowing me to use the ST BLE sensor app to update the microcontroller with a new image.

However, I've encountered an issue related to code optimization. The application only functions correctly when optimization is enabled. As soon as I disable optimization, the program enters a hard fault loop (HardFault_Handler) when attempting to erase sectors with FD_EraseSingleSector().

In order to make custom adjustments and facilitate debugging using GDB, I need to disable optimization. Could you please provide guidance on the necessary adjustments or steps needed to ensure the application works reliably even with optimization turned off?

Thank you for your assistance.