2025-12-25 6:30 AM
Hello,
I am experiencing a persistent verification error when flashing an STM32H7 via USB DFU using the STM32_Programmer_CLI. The exact same command and hardware work perfectly on Windows, but fail consistently on macOS.
Environment:
Tool: STM32CubeProgrammer CLI v2.9.0 (also tested on newer versions)
OS: macOS vs Windows 11
Hardware: STM32H7 custom board
Connection: USB DFU Mode
File: .hex file (approx. 44MB) containing internal flash and external memory data.
The Problem: On macOS, the download reaches 100%, but the Verification fails at 98%. The error always points to the start address 0x0800E000 reporting a byte mismatch (0x00 instead of 0x70).
Log Comparison Observations:
Windows (Working): The log explicitly shows individual sector erases: erasing sector 0003 @: 0x0800c000 done.
macOS (Failing): The log shows Erasing memory corresponding to segment 0... but never confirms the individual sectors as "done." It seems the erase operation is being skipped or failing silently on the Mac DFU stack.
Command Used: STM32_Programmer_CLI -c port=usb1 -e all -w FW.hex 0x0800E000 -v
What I have tried so far:
Using -e all for a mass erase (Reports success, but verification still fails).
Attempting to flash using the GUI (The GUI works, but the CLI fails).
Testing different USB-C cables and ports.