cancel
Showing results for 
Search instead for 
Did you mean: 

enabling support for Float printf on STM32WB application with Freertos(CMSIS V2) causes the BLE to be undiscoverable

akahl.1
Associate

Hello,

Thank you for any feedback on this issue.

i am using the Freertos Heartrate example shipped with the SDK as a starting point.

i have noticed that the float type is not getting printed in the debug messages, so i enabled the "use float with printf from newlib-nano" opting in the MCU settings.

now i can see that float type numbers are printed correctly but i am no longer able to connect through BLE, it is simply undetectable, even though the debug messages show success on  aci_gap_set_discoverable and the advertisement manager is working properly.

Any insights on how to fix this issue are welcome. and have a nice day.

1 ACCEPTED SOLUTION

Accepted Solutions
akahl.1
Associate

Hello,

For anybody encountering the same issue or others like : 

1. First boot after flashing the firmware, the BLE works as expected but the following boots the BLE does not advertise even though the CMDs are received by the CPU2 and the replies are good.

2. First boot, BLE does not work and some initialization CMDs pass to the CPU2 but no reply and the system is stuck waiting for reply. the second and following boots of the system work.

3. declaring a variable or a function in the program with no side effects to the BLE causes the Advertising to stop

4. other weird behaviors with simply no explanation, such are changing compiler optimization levels or activating traces ...etc, causes the BLE to not initialize correctly or initializing but not advertising.

if the above applies to you. This could be the root cause of the problem 

Pay attention: Issue in STM32CubeIDE linker templa... - STMicroelectronics Community

I had to start from scratch multiple times because of this issue; it was a nightmare to track down and just found the root cause and solution after 7 months. 

ST please make an errata data sheet (like the hardware errata) for the firmware that centralizes all know issues of each cube package with version.

 

 

 

View solution in original post

2 REPLIES 2
Remy ISSALYS
ST Employee

Hello,

Indeed, without the "use float with printf from newlib-nano" option, the float type isn't printed in the debug messages. After enabling this option, the example working as expected and I can connect to the board through BLE, so I don't reproduce your issue. Which version of STM32CubeIDE are you using? Did you start from BLE_HeartRate_FreeRTOS example and modify only the option or you have regenerated the project with some modification using STM32CubeMX tool?

Best Regards

akahl.1
Associate

Hello,

For anybody encountering the same issue or others like : 

1. First boot after flashing the firmware, the BLE works as expected but the following boots the BLE does not advertise even though the CMDs are received by the CPU2 and the replies are good.

2. First boot, BLE does not work and some initialization CMDs pass to the CPU2 but no reply and the system is stuck waiting for reply. the second and following boots of the system work.

3. declaring a variable or a function in the program with no side effects to the BLE causes the Advertising to stop

4. other weird behaviors with simply no explanation, such are changing compiler optimization levels or activating traces ...etc, causes the BLE to not initialize correctly or initializing but not advertising.

if the above applies to you. This could be the root cause of the problem 

Pay attention: Issue in STM32CubeIDE linker templa... - STMicroelectronics Community

I had to start from scratch multiple times because of this issue; it was a nightmare to track down and just found the root cause and solution after 7 months. 

ST please make an errata data sheet (like the hardware errata) for the firmware that centralizes all know issues of each cube package with version.