2023-03-08 01:09 PM
I had my NUCLEO-WB15CC running stack full v1.15 and today I decided to upgrade it to v1.16 and got "Warning: FUS_STATE_ERR_UNKNOWN". And now I have no stack and I'm unable to install it.
And I can't even start FUS, when I try, I get those errors:
Error: FUS_STATE_ERR_UNKNOWN: Unknown error
Start FUS failed !
Error: Start FUS Operation Failure! Please, try again
My problem is very similar to this, but I have latest FUS. IPCCDBA is 0x00, SBRV is 0x8400 and SFSA 0x31
2023-03-09 12:21 AM
Strange. It looks like the SBRV is not aligned with the expected start address of the FUS code which should be 0x08F40000. So, you are not executing the FUS code but some other code. This is why the FUS state cannot be determined. At least the FUS is not running.
To activate it, you may have to send the command START FUS twice and then check whether the SBRV is aligned with the start of the FUS code.
2023-03-09 01:18 AM
Unfortunately, FUS don't start even sending multiple START FUS or GET_FUS_STATE commands, it keeps returning error 0xFF (unknown), even using cube programmer (FUS_STATE_ERR_UNKNOWN: Unknown error)
Cube programmer CLI output:
PS C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin> ./STM32_Programmer_CLI.exe -c port=swd -startfus
-------------------------------------------------------------------
STM32CubeProgrammer v2.13.0
-------------------------------------------------------------------
ST-LINK SN : 0669FF303839414257095650
ST-LINK FW : V2J40M27
Board : NUCLEO-WB15CC
Voltage : 3.27V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x494
Revision ID : Rev Z
Device name : STM32WB1xxx
Flash size : 320 KBytes
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xB1
Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
Warning: Option Byte: nboot0, value: 0x1, was not modified.
Warning: Option Byte: nboot1, value: 0x1, was not modified.
Warning: Option Bytes are unchanged, Data won't be downloaded
Time elapsed during option Bytes configuration: 00:00:00.016
Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
Memory Programming ...
Opening and parsing file: 0x494_FUS_Operator.bin
File : 0x494_FUS_Operator.bin
Size : 8.00 KB
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 3]
Download in Progress:
██████████████████████████████████████████████████ 100%
File download complete
Time elapsed during download operation: 00:00:00.359
Application is running, Please Hold on...
Reconnecting...
Reconnected !
Reconnecting...
Reconnected !
Error: FUS_STATE_ERR_UNKNOWN: Unknown error
Error: Fus is not yet running, try again
PS C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin> ./STM32_Programmer_CLI.exe -c port=swd -startfus
-------------------------------------------------------------------
STM32CubeProgrammer v2.13.0
-------------------------------------------------------------------
ST-LINK SN : 0669FF303839414257095650
ST-LINK FW : V2J40M27
Board : NUCLEO-WB15CC
Voltage : 3.27V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x494
Revision ID : Rev Z
Device name : STM32WB1xxx
Flash size : 320 KBytes
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xB1
Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
Warning: Option Byte: nboot0, value: 0x1, was not modified.
Warning: Option Byte: nboot1, value: 0x1, was not modified.
Warning: Option Bytes are unchanged, Data won't be downloaded
Time elapsed during option Bytes configuration: 00:00:00.016
Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
Memory Programming ...
Opening and parsing file: 0x494_FUS_Operator.bin
File : 0x494_FUS_Operator.bin
Size : 8.00 KB
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 3]
Download in Progress:
██████████████████████████████████████████████████ 100%
File download complete
Time elapsed during download operation: 00:00:00.359
Application is running, Please Hold on...
Reconnecting...
Reconnected !
Reconnecting...
Reconnected !
Error: FUS_STATE_ERR_UNKNOWN: Unknown error
Error: Fus is not yet running, try again
PS C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin> ./STM32_Programmer_CLI.exe -c port=swd -startfus
-------------------------------------------------------------------
STM32CubeProgrammer v2.13.0
-------------------------------------------------------------------
ST-LINK SN : 0669FF303839414257095650
ST-LINK FW : V2J40M27
Board : NUCLEO-WB15CC
Voltage : 3.27V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x494
Revision ID : Rev Z
Device name : STM32WB1xxx
Flash size : 320 KBytes
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xB1
Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
Warning: Option Byte: nboot0, value: 0x1, was not modified.
Warning: Option Byte: nboot1, value: 0x1, was not modified.
Warning: Option Bytes are unchanged, Data won't be downloaded
Time elapsed during option Bytes configuration: 00:00:00.016
Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
Memory Programming ...
Opening and parsing file: 0x494_FUS_Operator.bin
File : 0x494_FUS_Operator.bin
Size : 8.00 KB
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 3]
Download in Progress:
██████████████████████████████████████████████████ 100%
File download complete
Time elapsed during download operation: 00:00:00.343
Application is running, Please Hold on...
Reconnecting...
Reconnected !
Reconnecting...
Reconnected !
Error: FUS_STATE_ERR_UNKNOWN: Unknown error
Error: Fus is not yet running, try again
PS C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin> ./STM32_Programmer_CLI.exe -c port=swd -startfus
-------------------------------------------------------------------
STM32CubeProgrammer v2.13.0
-------------------------------------------------------------------
ST-LINK SN : 0669FF303839414257095650
ST-LINK FW : V2J40M27
Board : NUCLEO-WB15CC
Voltage : 3.27V
SWD freq : 4000 KHz
Connect mode: Normal
Reset mode : Software reset
Device ID : 0x494
Revision ID : Rev Z
Device name : STM32WB1xxx
Flash size : 320 KBytes
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xB1
Warning: Option Byte: nSWboot0, value: 0x0, was not modified.
Warning: Option Byte: nboot0, value: 0x1, was not modified.
Warning: Option Byte: nboot1, value: 0x1, was not modified.
Warning: Option Bytes are unchanged, Data won't be downloaded
Time elapsed during option Bytes configuration: 00:00:00.000
Succeeded to set nSWboot0=0 nboot1=1 nboot0=1
Memory Programming ...
Opening and parsing file: 0x494_FUS_Operator.bin
File : 0x494_FUS_Operator.bin
Size : 8.00 KB
Address : 0x08000000
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 3]
Download in Progress:
██████████████████████████████████████████████████ 100%
File download complete
Time elapsed during download operation: 00:00:00.360
Application is running, Please Hold on...
Reconnecting...
Reconnected !
Reconnecting...
Reconnected !
Error: FUS_STATE_ERR_UNKNOWN: Unknown error
Error: Fus is not yet running, try again
PS C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin>
2023-03-09 05:29 AM
Tried with bootloader...
Bootloader:
C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin> ./STM32_Programmer_CLI.exe -c port=COM3 -startfus
-------------------------------------------------------------------
STM32CubeProgrammer v2.13.0
-------------------------------------------------------------------
Serial Port COM3 is successfully opened.
Port configuration: parity = even, baudrate = 115200, data-bit = 8,
stop-bit = 1.0, flow-control = off
Activating device: OK
Board : --
Chip ID: 0x494
BootLoader protocol version: 3.2
Response received from device: NACK
Error: GETID command not acknowledged!
Reemission of GetID command
Option Bytes Programming is not supported for Device: 0x0494
Failed to initialize the Option Bytes
Fus is not yet running, try again
PS C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin> ./STM32_Programmer_CLI.exe -c port=COM3 -startfus
-------------------------------------------------------------------
STM32CubeProgrammer v2.13.0
-------------------------------------------------------------------
Serial Port COM3 is successfully opened.
Port configuration: parity = even, baudrate = 115200, data-bit = 8,
stop-bit = 1.0, flow-control = off
Activating device: OK
Board : --
Chip ID: 0x494
BootLoader protocol version: 3.2
Response received from device: NACK
Error: GETID command not acknowledged!
Reemission of GetID command
Option Bytes Programming is not supported for Device: 0x0494
Failed to initialize the Option Bytes
Fus is not yet running, try again
PS C:\Program Files\STMicroelectronics\STM32Cube\STM32CubeProgrammer\bin> ./STM32_Programmer_CLI.exe -c port=COM3 -startfus
-------------------------------------------------------------------
STM32CubeProgrammer v2.13.0
-------------------------------------------------------------------
Serial Port COM3 is successfully opened.
Port configuration: parity = even, baudrate = 115200, data-bit = 8,
stop-bit = 1.0, flow-control = off
Activating device: OK
Board : --
Chip ID: 0x494
BootLoader protocol version: 3.2
Response received from device: NACK
Error: GETID command not acknowledged!
Reemission of GetID command
Option Bytes Programming is not supported for Device: 0x0494
Failed to initialize the Option Bytes
Fus is not yet running, try again
2023-03-09 05:30 AM
With J-Link...
Connecting to target via SWD
Found SW-DP with ID 0x6BA02477
DPIDR: 0x6BA02477
CoreSight SoC-400 or earlier
Scanning AP map to find all available APs
AP[2]: Stopped AP scan as end of AP map has been reached
AP[0]: AHB-AP (IDR: 0x24770011)
AP[1]: AHB-AP (IDR: 0x84770001)
Iterating through AP map to find AHB-AP to use
AP[0]: Core found
AP[0]: AHB-AP ROM base: 0xE00FF000
CPUID register: 0x410FC241. Implementer code: 0x41 (ARM)
Found Cortex-M4 r0p1, Little endian.
FPUnit: 6 code (BP) slots and 2 literal slots
CoreSight components:
ROMTbl[0] @ E00FF000
[0][0]: E000E000 CID B105E00D PID 000BB00C SCS-M7
[0][1]: E0001000 CID B105E00D PID 003BB002 DWT
[0][2]: E0002000 CID B105E00D PID 002BB003 FPB
[0][3]: E0000000 CID B105E00D PID 003BB001 ITM
[0][4]: E0040000 CID B105900D PID 000BB9A1 TPIU
[0][6]: E0043000 CID B105900D PID 005BB906 CTI
SetupTarget() start
CORE ID AP[0]: 0x410FC241
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Requesting FUS idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
IPCC channel unexpectedly ocupied.
FUS: Warning: Could not send command.
FUS: Waiting for idle...
FUS: Error. FUS could not be started. Please:
1. Power-cycle the device.
2. Reconnect to the device.
3.Reset the device.
If this does not help, please make sure device is in system boot mode and try again.
SetupTarget() end
Cannot connect to target.