cancel
Showing results for 
Search instead for 
Did you mean: 

Flashing stm32wb5x_BLE_Stack_full_fw.bin start address

LPetr.1
Senior

Hello. I am following document:

https://github.com/STMicroelectronics/STM32CubeWB/blob/master/Projects/STM32WB_Copro_Wireless_Binaries/STM32WB5x/Release_Notes.html

on how to flash STM32WB firmwares.

I am going through steps:

How to flash the Wireless Coprocessor Binary via SWD/JTAG by ST-LINK (STM32CubeProgrammer GUI)

  • Inside the below procedure, the references to binaries name and install address are provided in the section Main Changes of this file.
  • STEP 1: Use STM32CubeProgrammer GUI
    • Version 2.7.0 or higher.
    • It gives access to Firmware Upgrade Service (FUS) (AN5185 : ST firmware upgrade services for STM32WB Series.) through Bootloader.
    • It is currently available as Graphical User Interface (GUI) mode (or Command Line Interface (CLI) mode).
  • STEP 2: Access to SWD Interface (system flash)
  • For P-NUCLEO-WB55.Nucleo :
    • Power ON via ST-LINK and Jumper JP1(USB_STL)
  • For P-NUCLEO-WB55.USBDongle :
    • remain switch SW2 to Boot1
      • Connect P-NUCLEO-WB55.USBDongle
  • For STM32WB5MM-DK :
    • Power ON via ST-LINK and Jumper JP2(USB_STL)
    • open STM32CubeProgrammer GUI and select “ST-LINK�?
    • in ST-LINK configuration: (Port: SWD) then select “Connect�?
  • STEP 3: select “Start FUS�? in Firmware Upgrade Services
  • STEP 4: Read and upgrade FUS Version
  • it can been obtained selecting “Read FUS infos�?
    • 00050300: FUSv0.5.3 => Must be updated using STEP 5.
      • 01020000: FUSv1.2.0 => Up to date, you can download the new wireless stack using STEP 7.
    • 010X0Y00: FUSv1.x.y => Must be updated using STEP 6 (when x < 2).
  • STEP 5: Download latest FUS for only FUSv0.5.3 upgrade
    • in Firmware Upgrade Services: (File Path: [stm32wb5x_FUS_fw_for_fus_0_5_3.bin], Start Address: [Install@])
    • then select “Firmware Upgrade�? Please check Firmware Upgrade Services Binary Table for Install@ parameter depending of the binary.
  • STEP 6: Download latest FUS or Safeboot
    • in Firmware Upgrade Service: (File Path: [FUS_Binary], Start Address: [Install@])
    • then select “Firmware Upgrade�? Please check Firmware Upgrade Services Binary Table for Install@ parameter depending of the binary.
  • STEP 7: Download new wireless stack (after “FW Delete�? if requested)
    • in Firmware Upgrade Service: (File Path: [Wireless_Coprocessor_Binary], Start Address: [Install@])
    • then select “Firmware Upgrade�? (with “Verify download�? and “Start stack after upgrade�?) Please check Firmware Upgrade Services Binary Table for Install@ parameter depending of the binary. (optional: activate “Anti-Rollback�? on downloaded binary) If you need to perform FUS related manipulations, you always need to START the FUS in case the FUS is not running.
  • STEP 8: Revert to default configuration: in Option Bytes menu for User Configuration set: nSWboot0=1 (checked) nboot1=1 nboot0=1

at STEP 4, I have read FUS Version:

and evertyhing seems fine:


_legacyfs_online_stmicro_images_0693W00000biwPjQAI.png 

I then go to STEP 7:

It says I must now download new wireless stack (I have stm32wb5x_BLE_Stack_full_fw.bin)

The instruction say:

  • in Firmware Upgrade Service: (File Path: [Wireless_Coprocessor_Binary], Start Address: [Install@])

The document says: [Install@]. What does that supposed to mean?

I am very confused on what should be Start Address. I tried looking everywhere but cannot find such information. Could someone point me in the right direction please?

UPDATE

I have found some information regarding flashing stm32wb here:

https://blog.davidbramsay.com/getting-started-with-stm32wb-and-ble-communications/

In that blog, the guy suggest flashing to the following offsets:

FUS V 1.0.2: 0x080EC000

BLE FULL STACK : 0x080CB000

I have tried flashing via Firmware Upgrade Services but it does not seem to allow:


_legacyfs_online_stmicro_images_0693W00000biwXxQAI.png 

UPDATE2

I have tried to flash the firmware via the Erasing & Programming section of STM32CubeProgrammer instead of Firmware Upgrade Services.

I was able to succesfully flash the FUS firmware:


_legacyfs_online_stmicro_images_0693W00000biwmEQAQ.png 

I then moved to BLE stack firmware:


_legacyfs_online_stmicro_images_0693W00000biwekQAA.png 

It seems that flashing is successfull apart from a couple of warnings (I am not sure if they are relevant.

I want to know why I am able top flash via Erase & Programming menu and not Firmware Upgrade services.

Also, Since I have flashed all the firmwares, how can I now check if everything is ok?

1 ACCEPTED SOLUTION

Accepted Solutions
Remy ISSALYS
ST Employee

Hello,

You can look this wiki page which describes step by step how to setup your board. In your case for BLE Full stack (stm32wb5x_BLE_Stack_full_fw.bin) from STM32CubeWB package v1.16.0, the download address is 0x080CE000 if you are working on NUCLEO-WB55 board according to the release note, see the following screenshot:


_legacyfs_online_stmicro_images_0693W00000biwlBQAQ.png 

Best Regards

View solution in original post

9 REPLIES 9
Remy ISSALYS
ST Employee

Hello,

You can look this wiki page which describes step by step how to setup your board. In your case for BLE Full stack (stm32wb5x_BLE_Stack_full_fw.bin) from STM32CubeWB package v1.16.0, the download address is 0x080CE000 if you are working on NUCLEO-WB55 board according to the release note, see the following screenshot:


_legacyfs_online_stmicro_images_0693W00000biwlBQAQ.png 

Best Regards

Thank you very much! Would you be able to clarify to me why I am not able to upload the stack firmware via the Firmware Upgrade Services as it giving me error about wrong address but I can upload the firmware via Erasing & Programming section on stm32cubemx? Is there any difference? The instructions that I follow specify that I need to do it via Firmware upgrade service.

Regardles, i will now follow the wiki instructions that you provided and let you know

LPetr.1
Senior

@Remy ISSALYS​ 

I am confused already again regarding start address of BLE stack firmware. The wiki that you provided says:


_legacyfs_online_stmicro_images_0693W00000biwurQAA.png 

And you mentioned 0x080CE000 

Is that a mismatch because that image is from an older version?

Remy ISSALYS
ST Employee

Hello,

To download the wireless stack or the FUS, you should use the Firmware Upgrade Services window in STM32CubeProgrammer.

Best Regards

On the wiki page the screenshot corresponds to an older version of STM32CubeWB package. You should use the address corresponding to your version (the latest is v1.16.0).

@Remy ISSALYS​ 

Thanks for clarifying again. I have followed the instructions at wiki and getting issues

I simply did:

  1. Connect the st link to the device
  2. Launch the CubeProgrammer
  3. Connect to the device
  4. Go to Firmware Upgrade Services
  5. Click "Start FUS"
  6. Click "Read FUS info" and confirm if the version is correct. In my case it is correct.
  7. In File Path browse and select correct binary file. In my case it is stm32wb5x_BLE_Stack_full_fw.bin
  8. Start address :0x080CE000
  9. Tick "First install" and "Start stack after upgrade"
  10. Click Firmware Upgrade

After that, the error message pops up and says:

Error: Could not execute firmware upgrade command, Wrong address


_legacyfs_online_stmicro_images_0693W00000biwwsQAA.png 

It seems that this is a known issue:

https://community.st.com/s/question/0D50X0000BNtd6DSQR/error-when-updating-fus-firmware

and here

https://community.st.com/s/question/0D53W00000sq3zcSAA/how-to-update-stm32wb55ce-fus-and-wireless-stack-

I went through these other forum posts but there doesnt seem to be a clear solution

Perhaps it is some issue with my Option bytes? Would it help if I show to you. Although I havent touched them

Remy ISSALYS
ST Employee

Hello,

Which board are you using? When you click on Read FUS info button, can you show the value that you have? Which version of STM32CubeProgrammer are you using?

Best Regards

I was able to successfully flash the stack firmware (atleast it said that it was sucessfull) but when I read back FUS infos, it still shows old STACK version.

We are using our custom board that has

STM32WB55REV6. It is 512Kb chip. According to release notes, I should be using address:


_legacyfs_online_stmicro_images_0693W00000bixOXQAY.png 

The STM32CubeProgrammer version: v2.11.0

I have downloaded latest STM32WB (v1.16.0) package from:

https://www.st.com/en/embedded-software/stm32cubewb.html#get-software

I repeat all the steps.

  1. Connect STMCubeProgrammer with the device.
  2. Go to Device Firmware Update Service.
  3. Click "Start FUS" and read FUS infos:


_legacyfs_online_stmicro_images_0693W00000bixPLQAY.png4.Select stm32wb5x_BLE_Stack_full_fw.bin from the package that I have recently downloaded

5.Set the offset to 0x0805A000

6.Tick "First install" and "Start stack after upgrade"


_legacyfs_online_stmicro_images_0693W00000bixQEQAY.png7.Click "Firmware Upgrade"

8.After Firmware upgrade is successfull I read FUS infos again to confirm if stack version has been updated. However, it still says v.1.14.1.1 not sure why


_legacyfs_online_stmicro_images_0693W00000bixQYQAY.png 

UPDATE

I have reflashed the FUS firmware and then STACK and now it shows the correct version:

I believe everything is OK now


_legacyfs_online_stmicro_images_0693W00000bixS5QAI.png 

Thank you very much for your quick help