Skip to main content
Associate II
January 16, 2025
Solved

STM32WB05KZV6TR BLE compile issue

  • January 16, 2025
  • 10 replies
  • 3140 views

 

Hello STM32 Community,

I’m currently working with an STM32WB05KZV6TR microcontroller and am facing issues after adding the STM32_BLE to my project. I initially configured a BLE peripheral using STM32CubeMX and STM32CubeIDE, and after code is generated, it does not compile. it looks like it can't find the .s file

here are some of the errors:

 

 

C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v6-m/nofp/crtn.o: missing .note.GNU-stack section implies executable stack
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/app_entry.o: in function `MX_APPE_Init':
./Core/Src/app_entry.c:102: undefined reference to `HW_RNG_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/app_entry.c:108: undefined reference to `HW_AES_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/app_entry.c:109: undefined reference to `HW_PKA_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_Init':
./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:355: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_MachineTimeToSysTime':
./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:860: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `_configureTxRxDelay':
./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1153: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `_update_xtal_startup_time':
./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1187: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `_get_system_time_and_machine':
./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1241: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o:C:/AfshinFiles/Projects/Nultra/Firmware/Nultra/Debug/../Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1244: more undefined references to `blue_unit_conversion' follow
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/App/app_ble.o: in function `ModulesInit':
./STM32_BLE/App/app_ble.c:198: undefined reference to `PKAMGR_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/App/app_ble.o: in function `BLE_Init':
./STM32_BLE/App/app_ble.c:293: undefined reference to `aci_gatt_srv_profile_init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/App/app_ble.c:327: undefined reference to `aci_gap_profile_init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/App/app_ble.c:342: undefined reference to `Gap_profile_set_dev_name'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/App/app_ble.c:353: undefined reference to `Gap_profile_set_appearance'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/App/app_ble.o: in function `NVM_Process':
./STM32_BLE/App/app_ble.c:462: undefined reference to `NVMDB_Tick'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/Target/blenvm.o: in function `BLENVM_Init':
./STM32_BLE/Target/blenvm.c:129: undefined reference to `NVMDB_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/Target/blenvm.c:131: undefined reference to `NVMDB_HandleInit'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/Target/blenvm.c:132: undefined reference to `NVMDB_HandleInit'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/Target/blenvm.o: in function `BLEPLAT_NvmAdd':
./STM32_BLE/Target/blenvm.c:155: undefined reference to `NVMDB_AppendRecord'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/Target/blenvm.o: in function `BLEPLAT_NvmGet':
./STM32_BLE/Target/blenvm.c:195: undefined reference to `NVMDB_ReadCurrentRecord'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./STM32_BLE/Target/blenvm.c:201: undefined reference to `NVMDB_HandleInit'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-ea

 

 

 

The errors highlight multiple undefined references, particularly to blue_unit_conversion and functions like HW_RNG_Init, HW_AES_Init, and PKAMGR_Init, as well as references to several other functions related to BLE and cryptography.

Steps I Took to Resolve:

  1. Tried Adding blue_unit_conversion.s to Assembler: To fix the undefined reference to 'blue_unit_conversion' error, I added the blue_unit_conversion.s file in the assembler section of the project settings.

  2. Encountered New Issue with Reset_Handler: After adding blue_unit_conversion.s, I encountered the following error:

     
    `

 

 

warning: cannot find entry symbol Reset_Handler; defaulting to 10040000​

 

 

  • Can someone provide guidance on resolving the undefined reference errors?
  • Any advice or solutions would be greatly appreciated!

Thank you in advance!

Afshin

Best answer by drafshin

This will be my final update on this thread. For those still encountering issues with BLE, I discovered that the problem wasn’t with the hardware or the chip, but rather with CubeIDE version 1.17.x. After ST released CubeIDE 1.18.0, I updated to the new version and the BLE functionality started working flawlessly.

As I was highlighting in my previous reply, I was SURE hardware has no issue and I was thinking chip has problems since I could generate hex, but looks like it, it was a total waste of time and I had to wait for a version release. I hope ST takes this as a lesson don't waste people time by provide workaround that don't work (at least test and verify the workaround before posting). that being said, I removed the post I did previously accept as a solution.

10 replies

STTwo-32
Technical Moderator
February 3, 2025

Hello @drafshin 

I suggest you follow those steps:

  1. Enable the RNG.
  2. Disable the generate under root.
  3. Select the "Add necessary library files as reference in the toolchain project configuration file": STTwo32_0-1738595535120.png
  4. On the Generate function call, follow this screenshot:

     

    STTwo32_2-1738595633492.png

     

  5. If you compile and still have an error like this:
    C:/ST/STM32CubeIDE_1.17.0/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
    has context menu​
    Create any other project, compile it and after that recompile your own project without cleaning it. (This behavior will be solved on the future. I've reported under internal ticket number 202117.

Best Regards.

STTwo-32

drafshinAuthor
Associate II
February 10, 2025

Hello STTwo-32,

 

Thank you for the reply. I followed your suggestions and I still get error, here screenshots of my settings. 

drafshin_0-1739157447586.png

 

drafshin_2-1739157477175.png

 

C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v6-m/nofp/crtn.o: missing .note.GNU-stack section implies executable stack
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/app_entry.o: in function `MX_APPE_Init':
C:/AfshinFiles/Projects/Nultra/Firmware/Nultra/Debug/../Core/Src/app_entry.c:100: undefined reference to `HW_RNG_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/AfshinFiles/Projects/Nultra/Firmware/Nultra/Debug/../Core/Src/app_entry.c:106: undefined reference to `HW_AES_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/AfshinFiles/Projects/Nultra/Firmware/Nultra/Debug/../Core/Src/app_entry.c:107: undefined reference to `HW_PKA_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_Init':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:355: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_MachineTimeToSysTime':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:860: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `_configureTxRxDelay':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1153: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `_update_xtal_startup_time':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1187: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `_get_system_time_and_machine':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1241: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o:C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1244: more undefined references to `blue_unit_conversion' follow
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:72: Nultra.elf] Error 1
"make -j24 all" terminated with exit code 2. Build might be incomplete.

20:13:21 Build Failed. 11 errors, 5 warnings. (took 542ms)

 

I am new to STM32 family and this is my first project with STM32Cube so I am not sure what do you mean create a new project? should I create an empty project then add my files to it? would you clarify the steps please.

 

Thank you,

Afshin

STTwo-32
Technical Moderator
February 10, 2025

First, try using the STM32XCubeIDE V1.17.0.

Best Regards.

STTwo-32

drafshinAuthor
Associate II
February 11, 2025

Thank you, so the log showing 16.1 is not an issue?

until new software releases how can I create an BLE application with this chip? I followed your steps and it did not lead to a error free compilation.

STTwo-32
Technical Moderator
February 11, 2025

Please follow my steps of post one and rediscripe me how you did them exactly.

Best Regards.

STTWO-32

drafshinAuthor
Associate II
February 12, 2025

Thank you for the help,

Here I am going to create one blank BLE project and screenshot all process

1. Creating a temp project, selecting the target microcontroller (STM32WB05KZV6TR)

drafshin_0-1739322469845.png

2. Selecting C, and hitting yes for opening the configuration tool

drafshin_1-1739322519318.png

3. Enable the HSE

drafshin_2-1739322672724.png

4. enable the Radio timer

drafshin_3-1739322720563.png

5. Enable the radio

drafshin_4-1739322743694.png

6. Enable the PKA and RNG

 

drafshin_6-1739322813554.png

7. enable USART

drafshin_7-1739322882525.png

8. enable BLE and add USART as platform for traces

drafshin_8-1739322968234.png

9. Clock configuration

drafshin_9-1739322997815.png

10. add files to the project

drafshin_10-1739323045208.png

 

11. advanced settings as suggested

drafshin_11-1739323112678.png

 

12. save and generate code

13. press compile

14. get error

C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v6-m/nofp/crtn.o: missing .note.GNU-stack section implies executable stack
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/app_entry.o: in function `MX_APPE_Init':
C:/tempProject/TestBLE/Debug/../Core/Src/app_entry.c:100: undefined reference to `HW_RNG_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/tempProject/TestBLE/Debug/../Core/Src/app_entry.c:106: undefined reference to `HW_AES_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/tempProject/TestBLE/Debug/../Core/Src/app_entry.c:107: undefined reference to `HW_PKA_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_Init':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:355: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_MachineTimeToSysTime':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:860: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `_configureTxRxDelay':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1153: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `_update_xtal_startup_time':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1187: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o: in function `_get_system_time_and_machine':
C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1241: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/stm32wb0x_hal_radio_timer.o:C:/Users/Afshin/STM32Cube/Repository/STM32Cube_FW_WB0_V1.1.0/Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1244: more undefined references to `blue_unit_conversion' follow
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:72: TestBLE.elf] Error 1
"make -j24 all" terminated with exit code 2. Build might be incomplete.
STTwo-32
Technical Moderator
February 12, 2025

Could you please try the CubeMX standalone version (not the one integrated on the CubeIDE).

Best Regards.

STTwo-32

drafshinAuthor
Associate II
February 12, 2025

I did install STM32CubeMX-Win version 6.13.0, and generated code exactly as mentioned above, and then imported the project to STM32CUBe ide  from File > import > general > CubeMX .ico file

then navigated to main.c and pressed compile, I got the error below. I am not sure why BLE on this specific microcontroller is problematic.

C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: warning: C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/thumb/v6-m/nofp/crtn.o: missing .note.GNU-stack section implies executable stack
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: NOTE: This behaviour is deprecated and will be removed in a future version of the linker
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Core/Src/app_entry.o: in function `MX_APPE_Init':
C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Core/Src/app_entry.c:100: undefined reference to `HW_RNG_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Core/Src/app_entry.c:106: undefined reference to `HW_AES_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Core/Src/app_entry.c:107: undefined reference to `HW_PKA_Init'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_Init':
C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:355: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `HAL_RADIO_TIMER_MachineTimeToSysTime':
C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:860: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `_configureTxRxDelay':
C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1153: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `_update_xtal_startup_time':
C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1187: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o: in function `_get_system_time_and_machine':
C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1241: undefined reference to `blue_unit_conversion'
C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: ./Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.o:C:/Users/Afshin/Desktop/anyfolder/TestBLEMX/Debug/../Drivers/STM32WB0x_HAL_Driver/Src/stm32wb0x_hal_radio_timer.c:1244: more undefined references to `blue_unit_conversion' follow
collect2.exe: error: ld returned 1 exit status
make: *** [makefile:76: TestBLEMX.elf] Error 1
"make -j24 all" terminated with exit code 2. Build might be incomplete.

08:28:39 Build Failed. 11 errors, 1 warnings. (took 1s.392ms)

 

STTwo-32
Technical Moderator
February 12, 2025

Generate the code to CubeIDE from CubeMX and don’t import it. On CubeMX, Go to project Manager > Project > select CubeIDE as your IDE and give the project a name. Then, click on generate code. 

Best Regards.

STTwo-32

drafshinAuthor
Associate II
February 12, 2025

I did, and still same issue. Attached is the zipped folder of the project created with CubeMX. I would appreciate if you could try compiling on your end, or making a project from scratch for STM32WB05KZV6TR. To me I think its the project settings where assembly files are not complied in order, maybe a bug, but only this specific chip gives me hard time, but we can't change it since we have our hardware manufactured, and we followed datasheet for the design, to exact specs.

STTwo-32
Technical Moderator
February 13, 2025

Hello @drafshin 

I've added a project that does compile on the STM32CubeIDE V1.17.0. Please open it as it is or generate your own based on the .ioc file of this project (don't change parameters). After that create another project (any project on any MCU not the STM32WB0) I've got already other projects on my side too: 

STTwo32_0-1739454573668.png

After that compile the project based on the STME32WB0. You may receive another message. After that compile the other project and recompile your STM32WB0 project. This time it should be working fine with this workaround:

STTwo32_1-1739454811830.png

PS: this behavior will be solved on the coming release (coming in a few days) of the STM32CubeMX.

 

Best Regards.

STTwo-32

drafshinAuthor
Associate II
February 16, 2025

Sorry for late reply, I got another project and couldn't try your code erlier.

I followed your suggestions and did the followings

1. Downloaded the project you attached and opened it in CubeIDE

2. create a project for a STM32F07 and copied. a simple serial, and built it

3. I built the project you provided. (I had to clean to remove a cash error, for future people want to try this)

and I think it worked! I got only the following error but hex generated.

 

C:/ST/STM32CubeIDE_1.16.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.gnu-tools-for-stm32.12.3.rel1.win32_1.1.0.202410251130/tools/bin/../lib/gcc/arm-none-eabi/12.3.1/../../../../arm-none-eabi/bin/ld.exe: NOTE: This behaviour is deprecated and will be removed in a future version of the linker

 

 

Thank you for the help

drafshinAuthor
Associate II
February 16, 2025

I got some treble with RTC, but overall looks working.

drafshinAuthor
Associate II
February 25, 2025

I am not sure your code works, in the last few weeks I have tried almost anything to detect BLE but it doesn't work. I want to ask did you test your code on actual hardware? your code hangs on "MX_RADIO_TIMER_Init();" so I changed clock config for LSE and it fixed it, I added service and characteristic to the BLE and could compile it but whatever I do I can't get the BLE to work. I am sure antenna and board are fine and my inverse F antenna has exact 50 ohm characteristics. 

Looks this chip not only comes with so many bugs in software, also it suffers from hardware bugs, out of 10 PCBs we made, non demonstrated a functional BLE. Switching back to lovely EPS32.

STTwo-32
Technical Moderator
February 25, 2025

For the code, I didn’t have tested and it is not a complete code. It is just the part generated throw CubeMX. I’ve just made it to show you how to compile successfully your project. What I can ensure you is that our product is working and don’t have any problems. It may be some errors on your design or others so I suggest you to refer to a HW RF expert to check your designs. Also, for the code, we have a lot of examples that are made and compile on the NUCLEO Board. So m, you may want to start from one of them to learn how to make it work. Finally, for the Cube tool behavior on compilation, it is something that we are aware of it and it will be fixed soon. 
For the original subject of this question (Compilation of a BLE project on the STM32WB0), I think it is solved. If you have any other requests, welcome to the ST Community. 
Best Regards.

STTwo-32

drafshinAuthor
Associate II
February 25, 2025

Thank you for your response. I am confident that hardware is precise. I am an hardware engineer and I design many IOT devices using al sort of microcontrollers even STs other families. I drawn to to this chip specifically because of its supper low current in deepstop mode and we could get our current consumption on the entire board to ~10uA. I also validated out antenna impedance and central frequency using a network analyzer, it is in the specs, in fact same antenna work without any issue with our ESP32 H4 chip, and even STM32WB55. If chip internally has no bug what is wrong then? Enabling BLE with service should be enough to have BLE detectable, but I don't see any RF activities on the chip RF pin using network analyzer. I am attaching the project we compile and put on the chip here but it is basically your project with fixed clock problem, and added BLE serve and GATT service.

drafshinAuthorBest answer
Associate II
March 3, 2025

This will be my final update on this thread. For those still encountering issues with BLE, I discovered that the problem wasn’t with the hardware or the chip, but rather with CubeIDE version 1.17.x. After ST released CubeIDE 1.18.0, I updated to the new version and the BLE functionality started working flawlessly.

As I was highlighting in my previous reply, I was SURE hardware has no issue and I was thinking chip has problems since I could generate hex, but looks like it, it was a total waste of time and I had to wait for a version release. I hope ST takes this as a lesson don't waste people time by provide workaround that don't work (at least test and verify the workaround before posting). that being said, I removed the post I did previously accept as a solution.

STTwo-32
Technical Moderator
March 3, 2025

Hello @drafshin 

Happy to know that your issue was solved as expected with the new STM32CubeIDE. This is known and documented issue with the CubeIDE 1.17.0. The solution I provided was just an example on how to compile a code on the tool (STM32CubeIDE V1.17.0) without a compilation issues. I didn’t test if it works or not I just found some work around to make it compile successfully since your original question was about compilation issues and not Connection issues. Welcome to the ST Community for your coming questions. Just don’t forget to make it precise (a post for each new request).

Hope your projects work well.

Best Regards.

STTwo-32