Same firmware, different update results under Linux/Windows
I have few devices With STM32F0xx which are connected via usb to linux hosts. In order to get necessary functionality I have to swap their firmware. Given that they are connected to linux I used first ‘dfu-util’. While tool itself completes process devices are stuck in DFU mode. Flashing process reports no issues, devices after restart report invalid firmware.
The same firmware can be updated from Windows STM Programmer. I downloaded STM Programmer for linux to check update with official tool. Result are same as for dfu-util - update doesnt work.
Issue is quite annoying cause I have no ways to determine what went wrong on STM side. All I have is USB connection and dfu mode.
Below is command I used to execute update:
/STM32Cube/STM32CubeProgrammer/bin/STM32_Programmer.sh -c port=USB1 -e 0 -d ~/Downloads/uccb/0303.hex 0x08000000 -vb 3 -rstFirmware I am testing is open source, it is available online:
https://github.com/UsbCANConverter-UCCbasic/UCCBEmbedded/releases
https://github.com/UsbCANConverter-UCCbasic/UCCB_GS_Embedded/releases
Same thing happens when I flash https://github.com/UsbCANConverter-UCCbasic/UCCB_GS_Embedded/releases/download/0002/UCCB_GS_0002.bin
or
https://github.com/UsbCANConverter-UCCbasic/UCCBEmbedded/releases/download/4.1/0401.hex
These firmware images works properly when flashing from STM Programmer for Windows, but do not from STM Programmer for Linux.
Please let me know if my command is wrong, needs additional switches. It would be helpful is someone more experienced could say what is possible cause for failure and how to avoid it.
So far to me it looks more like tooling issue, especially that official tool behave differently on different operating systems.
Best,
�?ukasz
