2024-08-18 12:01 PM
I’m a newbie when it comes to flashing microprocessors. I am wondering if anyone can deduce what I may be doing wrong given the following set of facts.
1. The device I was trying to repair had the symptom of halting after the progress bar instead of booting into its multi-meter software on power-up. This is a well-known fault for this particular meter and there was a set of instructions for saving the calibration from the existing firmware, merging it with a known good firmware and then reflashing.
2. After flashing, I no longer get the progress bar on power up. I get random pixels and nothing more, even though the STM32 ST Link Utility verifies the firmware flashed matches the firmware file. This is also the case if I flash the entire known good file with its included calibration section instead of my saved calibration data. It’s a128K file, the flash starts at 0x08000000.
3. Given that STM32 ST Link Utility says what is flashed matches the source file, what else could I have done wrong that would prevent the firmware from running? nRST_STOP and STDBY and WDG_SW are checked in option bytes. After flashing, I remove the pin holding BOOT0 high. STM32 ST Link Utility sees the processor as STM32F10xx medium density with device ID 0x410. It’s a GigaDevices GDF103xx. I just get the feeling that I am not loading this firmware properly. Very much stumped. Any ideas?
2024-08-18 12:18 PM - edited 2024-08-18 12:18 PM
Dear @bobcov ,
Can you share a picture of the top marking on the device.
if flashing is correct , then you can make a run and see the PC - Program counter ? Versus a good device ( multimeter ) running fine .
Ciao
STOne-32
2024-08-18 02:54 PM - edited 2024-08-18 03:42 PM
> This is also the case if I flash the entire known good file with its included calibration section instead of my saved calibration data
Did you dump the original flash contents before overwriting it? if so, try re-flashing that and see if you're at least back you started. Then report back.
Can you be sure that the manufacturer didn't have multiple revisions in circulation, which may not be entirely firmware-compatible? for example, there might be (I'm just guessing here) some kind of ID mechanism (resistors, ID chip, small EEPROM) on the PCB which the flash checks before booting.
btw, ST Link Utility has been EOL for a long time, superseded by STM32CubeProgrammer (GUI or cli).
2024-08-18 03:26 PM
Do you let the BOOTx pins float?