2022-11-20 12:09 PM
Hi, i'm trying to update stack via internal firmware. Our device based on STM32WB55:
Device ID : 0x495
Revision ID : Rev Y
Device name : STM32WB5x
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xd5
Stack binary file located in internal flash at address 0x080CB000.
Below is the data from the programmer:
When I call SHCI_C2_FUS_FwUpgrade, the next call to SHCI_C2_FUS_GetState returns the following result - FUS_STATE_ERROR_IMG_NOT_AUTHENTIC.
How to solve this problem? Thanx.
2022-11-21 12:56 AM
Hello,
You can look the FUS Command Line Interface example, this example shows how to interact with FUS using FUS commands in order to perform some actions:
The FUS returns the FUS_STATE_ERROR_IMG_NOT_AUTHENTIC error when Firmware or FUS upgrade requested, image found, but its signature is not valid (wrong signature, wrong signature header) see description in AN5185.
Can you describe your scenario? How do you perform the stack update?
Best Regards
2022-11-21 10:26 AM
Hello, this project was started a long time ago, as soon as engineering samples could be obtained. At the moment, the stack can be updated only by means of the microcontroller itself. It was assumed that the stack could be located between the last page of the user program and the sector from the sfsa register. For the experiment, I linked the stack to the address from the Release_Notes.html file, and according to the AN5185, but the result is always the same - FUS_STATE_ERROR_IMG_NOT_AUTHENTIC
2022-11-22 12:42 AM
Hello,
Which version of the stack are you using?
Best Regards
2022-11-22 01:55 AM
Hi, as far as I remember it is a stack from STM32Cube_FW_WB_V1.10.
Additionally, the stack from STM32Cube_FW_WB_V1.14.1 was checked.
2022-11-30 02:38 AM
Hello,
Could you check if the flash sectors between the end of your app and SFSA option byte is erased before download the new firmware?
Best Regards
2022-11-30 10:21 AM
Hello, thanks for your reply.
Stack was erased via STM32CubeProgrammer, SFSA always contain value 0xF4.
out_code = SHCI_C2_FUS_GetState( &f_state );
out_code - 0x10
f_state - FUS_STATE_ERROR_IMG_NOT_AUTHENTIC
Best Regards