cancel
Showing results for 
Search instead for 
Did you mean: 

STM32_Programmer_CLI Sometimes Hangs While Updating Ble Stack [STM32WB55]

traxformania
Associate II

Hi,

 

Spoiler

I would like to get help from you on a problem that I spent a lot of time on but could not solve. I am trying to do the software update operations of a card of our own design with an STM32WB55 MCU, using STM32_Programmer_CLI.

I wrote a simple C# GUI which calls these commands step by step and waits for STM32_Programmer_CLI app to exit.

Clear nBoot0 and SwBoot0
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -ob nBoot0=0x00 nSWBOOT0=0x00"


Check if FUS is running
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -fusgetstate


If Fus is not running => Call fusgetstate 2 times

Step 1
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -fusgetstate

Step 2
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -fusgetstate

Read FUS Version
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -r32 0x20030030 1

Update FUS
irrelevant, never used, FUS always up to date

Update BLE Stack
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -fwupgrade "STM32CubeProgrammer CLI (Standalone)\Bin\BLE Stack\stm32wb5x_BLE_Stack_full_fw.bin" 0x080CE000 firstinstall=0

Update Our FW
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -w "STM32CubeProgrammer CLI (Standalone)\Bin\Final.hex" 0x08000000


Set nBoot0 and swBoot0
"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe" -c port=usb sn=207834575352 -ob nBoot0=0x01 nSWBOOT0=0x01

 

Problem is sometimes when "STM32_Programmer_CLI" updating the BLE stack (Update BLE Stack command) "STM32_Programmer_CLI" is hangs. It does not exit, so my C# application waits forever for it's exit signal.

"STM32_Programmer_CLI" never hangs while proccessing other commands.

Strange thing is If ı call these commands by using Windows's CMD and if I write commands by hand I've never seen it hang. Maybe it's a coincidence.

I enabled trace log of  "STM32_Programmer_CLI" and attached it. You can find it in attachments. I also take a screenshot of "STM32_Programmer_CLI" when it hanged.


I'm using this simple code in my application to call "STM32_Programmer_CLI " and than I wait for this process to exit.

I'm not sure whether there is an error in the STM32_Programmer_CLI program or a hardware problem on our own board.



 

Spoiler

string arguments = arguments = "-c port=usb sn=" + serialNumber + " -fwupgrade \"" + AppDomain.CurrentDomain.BaseDirectory + "STM32CubeProgrammer CLI (Standalone)\\Bin\\BLE Stack\\stm32wb5x_BLE_Stack_full_fw.bin\" 0x080CE000 firstinstall=0";
}

var proc = new Process
{
StartInfo = new ProcessStartInfo
{
FileName = AppDomain.CurrentDomain.BaseDirectory + @"STM32CubeProgrammer CLI (Standalone)\Bin\STM32_Programmer_CLI.exe",
Arguments = arguments,
UseShellExecute = false,
CreateNoWindow = false
}
};

proc.StartInfo.WindowStyle = ProcessWindowStyle.Normal;
proc.Exited += Proc_updateBleStackThread_Exited;
proc.EnableRaisingEvents = true;
proc.Start();

 

 

0 REPLIES 0