STM32_Programmer_CLI error while flashing internal and external memory from same .srec
Hi everyone,
I'm trying to flash my STM32WB55 and the connected MX25R64 external memory.
I have already created my external loader and tested it with the CubeProgrammer, feeding it with a .srec file containing only external addresses (>= 0x90000000).
However, I was trying to unify the flashing process by using the external loader option present in STM32CubeIDE. This option generates a STM32_Programmer_CLI command and feeds it with a .srec file that covers both external and internal memory:
C:\ST\STM32CubeIDE_1.18.1\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.2.100.202412061334\tools\bin\STM32_Programmer_CLI.exe --connect port=SWD speed=fast mode=UR reset=hwRst --extload <path/to/extloader> --download <pat/to/srec> --verify --log <path/to/log>
srec_info output:
Format: Motorola S-Record
Header: "ST-LINK GDB server"
Execution Start Address: 00000000
Data: 08000000 - 0800013B
08000140 - 08000143
08000150 - 0806F1B9
0806F1BC - 08070535
08070538 - 0807053F
90242000 - 9027EC5B
Here is the output of the command when it fails:
-------------------------------------------------------------------
STM32CubeProgrammer v2.19.0
-------------------------------------------------------------------
Log output file: STM32CubeProgrammer_test.log
ST-LINK SN : <SN>
ST-LINK FW : V2J46S7
Board : --
Voltage : 2.93V
SWD freq : 4000 KHz
Connect mode: Under Reset
Reset mode : Hardware reset
Device ID : 0x495
Revision ID : Rev X
Device name : STM32WB5x/35xx
Flash size : 1 MBytes
Device type : MCU
Device CPU : Cortex-M4
BL Version : 0xD5
Debug in Low Power mode enabled
Opening and parsing file: ST-LINK_GDB_server_a11452.srec
Memory Programming ...
File : ST-LINK_GDB_server_a11452.srec
Size : 692.40 KB
Address : 0x08000000
Erasing memory corresponding to sector 0:
Erasing internal memory sectors [0 112]
Erasing memory corresponding to sector 0:
Erasing external memory sectors [578 638]
Download in Progress:
█████████████▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ 27%
Error: failed to download Sector[0]
Error: failed to download the File
And this is the log file output:
08:15:25:428 -------------------------------------------------------------------
08:15:25:429 STM32CubeProgrammer v2.19.0
08:15:25:429 -------------------------------------------------------------------
08:15:25:429
[...]
08:15:26:532 ST-LINK FW : V2J46S7
08:15:26:533 Board : --
08:15:26:534 Voltage : 2.93V
08:15:26:544 SWD freq : 4000 KHz
08:15:26:544 Connect mode: Under Reset
08:15:26:544 Reset mode : Hardware reset
08:15:26:545 Device ID : 0x495
08:15:26:546 Revision ID : Rev X
08:15:26:556 flash loader C:/ST/STM32CubeIDE_1.18.1/STM32CubeIDE/plugins/com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.2.100.202412061334/tools/bin/FlashLoader/0x495.stldr is loaded
08:15:26:561 Device name : STM32WB5x/35xx
08:15:26:561 Reading data...
08:15:26:562 r ap 0 @0x1FFF75E0 0x00000004 bytes Data 0xFFFF0400
08:15:26:562 Flash size : 1 MBytes
08:15:26:562 Device type : MCU
08:15:26:562 Device CPU : Cortex-M4
08:15:26:563 BL Version : 0xD5
08:15:26:565 Debug in Low Power mode enabled
08:15:26:565
08:15:26:569 Opening and parsing file: ST-LINK_GDB_server_a11452.srec
08:15:26:570
08:15:26:570 Memory Programming ...
08:15:26:571 File : ST-LINK_GDB_server_a11452.srec
08:15:26:577 Size : 692.40 KB
08:15:26:577 Address : 0x08000000
08:15:26:578
08:15:26:578 Erasing Segment <0> Address <0x08000000> Size <460096>Bytes
08:15:26:578
Erasing memory corresponding to sector 0:
08:15:26:579 r ap 0 @0x40022040 0x00000004 bytes Data 0x20036495
08:15:26:579 fail @0xFEEEFEEE
08:15:26:579 Memory Erase via FlashLoader!
08:15:26:579 Memory erase...
08:15:26:581 halt ap 0
08:15:26:581 w ap 0 reg 15 PC (0x20000000)
08:15:26:582 w ap 0 reg 17 MSP (0x20000500)
08:15:26:582 w ap 0 reg 16 xPSR (0x01000000)
08:15:26:586 w ap 0 @0x20000C40 : 0x00000200 bytes, Data 0x00000000...
08:15:26:587 w ap 0 @0x20000000 : 0x00000004 bytes, Data 0x0000BE00...
08:15:26:601 w ap 0 @0x20000004 : 0x0000081C bytes, Data 0xB672B580...
08:15:26:601 Erasing internal memory sectors [0 112]
08:15:26:602 Init flashloader...
08:15:26:602 halt ap 0
08:15:26:603 w ap 0 reg 0 R0 0x00000001
08:15:26:604 w ap 0 reg 1 R1 0x00000000
08:15:26:604 w ap 0 reg 2 R2 0x00000000
08:15:26:605 w ap 0 reg 3 R3 0x00000000
08:15:26:605 w ap 0 reg 4 R4 0x00000000
08:15:26:606 w ap 0 reg 5 R5 0x00000000
08:15:26:606 w ap 0 reg 6 R6 0x00000000
08:15:26:607 w ap 0 reg 7 R7 0x00000000
08:15:26:608 w ap 0 reg 8 R8 0x00000000
08:15:26:608 w ap 0 reg 9 R9 0x00000000
08:15:26:609 w ap 0 reg 10 R10 0x00000000
08:15:26:609 w ap 0 reg 11 R11 0x00000000
08:15:26:610 w ap 0 reg 12 R12 0x00000000
08:15:26:611 w ap 0 reg 13 SP 0x00000000
08:15:26:611 w ap 0 reg 14 LR 0x20000001
08:15:26:612 w ap 0 reg 15 PC 0x20000005
08:15:26:612 w ap 0 reg 16 xPSR 0x01000000
08:15:26:613 w ap 0 reg 17 MSP 0x20000C1C
08:15:26:613 w ap 0 reg 18 PSP 0x00000000
08:15:26:613 run ap 0
08:15:26:614 halt ap 0
08:15:26:615 r ap 0 reg 0 R0 0x00000001
08:15:26:615 Loader sector erase...
08:15:26:616 w ap 0 reg 0 R0 0x08000000
08:15:26:616 w ap 0 reg 1 R1 0x08070000
08:15:26:617 w ap 0 reg 2 R2 0x00000002
08:15:26:617 w ap 0 reg 3 R3 0x00000000
08:15:26:618 w ap 0 reg 4 R4 0x00000000
08:15:26:618 w ap 0 reg 5 R5 0x00000000
08:15:26:619 w ap 0 reg 6 R6 0x00000000
08:15:26:620 w ap 0 reg 7 R7 0x00000000
08:15:26:620 w ap 0 reg 8 R8 0x00000000
08:15:26:621 w ap 0 reg 9 R9 0x00000000
08:15:26:621 w ap 0 reg 10 R10 0x00000000
08:15:26:622 w ap 0 reg 11 R11 0x00000000
08:15:26:622 w ap 0 reg 12 R12 0x00000000
08:15:26:623 w ap 0 reg 13 SP 0x00000000
08:15:26:624 w ap 0 reg 14 LR 0x20000001
08:15:26:624 w ap 0 reg 15 PC 0x20000645
08:15:26:624 w ap 0 reg 16 xPSR 0x01000000
08:15:26:625 w ap 0 reg 17 MSP 0x20000C1C
08:15:26:625 w ap 0 reg 18 PSP 0x00000000
08:15:26:625 run ap 0
08:15:29:110 halt ap 0
08:15:29:111 r ap 0 reg 0 R0 0x00000001
08:15:29:111 erase: 2532ms
08:15:29:111 Erasing Segment <1> Address <0x90242000> Size <248924>Bytes
08:15:29:111
Erasing memory corresponding to sector 0:
08:15:29:112 r ap 0 @0x40022040 0x00000004 bytes Data 0x20030080
08:15:29:113 fail @0xFEEEFEEE
08:15:29:113 Memory Erase via FlashLoader!
08:15:29:113 Memory erase...
08:15:29:115 halt ap 0
08:15:29:115 w ap 0 reg 15 PC (0x20000000)
08:15:29:116 w ap 0 reg 17 MSP (0x20000500)
08:15:29:116 w ap 0 reg 16 xPSR (0x01000000)
08:15:29:121 w ap 0 @0x2000DA20 : 0x00000200 bytes, Data 0x00000000...
08:15:29:121 w ap 0 @0x20000000 : 0x00000004 bytes, Data 0x0000BE00...
08:15:29:484 w ap 0 @0x20000004 : 0x0000D5EC bytes, Data 0x00000000...
08:15:29:484 Erasing external memory sectors [578 638]
08:15:29:485 Init flashloader...
08:15:29:486 halt ap 0
08:15:29:487 w ap 0 reg 0 R0 0x00000001
08:15:29:488 w ap 0 reg 1 R1 0x00000000
08:15:29:488 w ap 0 reg 2 R2 0x00000000
08:15:29:489 w ap 0 reg 3 R3 0x00000000
08:15:29:490 w ap 0 reg 4 R4 0x00000000
08:15:29:490 w ap 0 reg 5 R5 0x00000000
08:15:29:490 w ap 0 reg 6 R6 0x00000000
08:15:29:492 w ap 0 reg 7 R7 0x00000000
08:15:29:493 w ap 0 reg 8 R8 0x00000000
08:15:29:493 w ap 0 reg 9 R9 0x00000000
08:15:29:494 w ap 0 reg 10 R10 0x00000000
08:15:29:495 w ap 0 reg 11 R11 0x00000000
08:15:29:495 w ap 0 reg 12 R12 0x00000000
08:15:29:496 w ap 0 reg 13 SP 0x00000000
08:15:29:496 w ap 0 reg 14 LR 0x20000001
08:15:29:497 w ap 0 reg 15 PC 0x200016AD
08:15:29:497 w ap 0 reg 16 xPSR 0x01000000
08:15:29:498 w ap 0 reg 17 MSP 0x2000D9EC
08:15:29:498 w ap 0 reg 18 PSP 0x00000000
08:15:29:498 run ap 0
08:15:29:517 halt ap 0
08:15:29:517 r ap 0 reg 0 R0 0x00000001
08:15:29:517 Loader sector erase...
08:15:29:518 w ap 0 reg 0 R0 0x90242000
08:15:29:519 w ap 0 reg 1 R1 0x9027E000
08:15:29:520 w ap 0 reg 2 R2 0x00000002
08:15:29:520 w ap 0 reg 3 R3 0x00000000
08:15:29:521 w ap 0 reg 4 R4 0x00000000
08:15:29:522 w ap 0 reg 5 R5 0x00000000
08:15:29:522 w ap 0 reg 6 R6 0x00000000
08:15:29:523 w ap 0 reg 7 R7 0x00000000
08:15:29:523 w ap 0 reg 8 R8 0x00000000
08:15:29:524 w ap 0 reg 9 R9 0x00000000
08:15:29:524 w ap 0 reg 10 R10 0x00000000
08:15:29:525 w ap 0 reg 11 R11 0x00000000
08:15:29:526 w ap 0 reg 12 R12 0x00000000
08:15:29:526 w ap 0 reg 13 SP 0x00000000
08:15:29:527 w ap 0 reg 14 LR 0x20000001
08:15:29:527 w ap 0 reg 15 PC 0x200017D1
08:15:29:528 w ap 0 reg 16 xPSR 0x01000000
08:15:29:528 w ap 0 reg 17 MSP 0x2000D9EC
08:15:29:529 w ap 0 reg 18 PSP 0x00000000
08:15:29:529 run ap 0
08:15:32:115 halt ap 0
08:15:32:116 r ap 0 reg 0 R0 0x00000001
08:15:32:116 erase: 3003ms
08:15:32:116 Download in Progress:
08:15:32:116 Size : 460096 Bytes
08:15:32:116 Address : 0x08000000
08:15:32:116
08:15:32:116 Buffer program...
08:15:32:119 halt ap 0
08:15:32:119 w ap 0 reg 15 PC (0x20000000)
08:15:32:119 w ap 0 reg 17 MSP (0x20000500)
08:15:32:120 w ap 0 reg 16 xPSR (0x01000000)
08:15:32:124 w ap 0 @0x20000C40 : 0x00000200 bytes, Data 0x00000000...
08:15:32:124 w ap 0 @0x20000000 : 0x00000004 bytes, Data 0x0000BE00...
08:15:32:137 w ap 0 @0x20000004 : 0x0000081C bytes, Data 0xB672B580...
08:15:32:138 Loader write range...
08:15:32:769 w ap 0 @0x20000C40 : 0x00017800 bytes, Data 0x20030000...
08:15:32:769 W B1 in RAM @0x20000C40 size 0x00017800 : 0631ms
08:15:32:769 Init flashloader...
08:15:32:770 halt ap 0
08:15:32:771 w ap 0 reg 0 R0 0x00000001
08:15:32:771 w ap 0 reg 1 R1 0x00000000
08:15:32:772 w ap 0 reg 2 R2 0x00000000
08:15:32:773 w ap 0 reg 3 R3 0x00000000
08:15:32:773 w ap 0 reg 4 R4 0x00000000
08:15:32:774 w ap 0 reg 5 R5 0x00000000
08:15:32:775 w ap 0 reg 6 R6 0x00000000
08:15:32:775 w ap 0 reg 7 R7 0x00000000
08:15:32:776 w ap 0 reg 8 R8 0x00000000
08:15:32:776 w ap 0 reg 9 R9 0x00000000
08:15:32:777 w ap 0 reg 10 R10 0x00000000
08:15:32:777 w ap 0 reg 11 R11 0x00000000
08:15:32:778 w ap 0 reg 12 R12 0x00000000
08:15:32:778 w ap 0 reg 13 SP 0x00000000
08:15:32:779 w ap 0 reg 14 LR 0x20000001
08:15:32:779 w ap 0 reg 15 PC 0x20000005
08:15:32:780 w ap 0 reg 16 xPSR 0x01000000
08:15:32:781 w ap 0 reg 17 MSP 0x20000C1C
08:15:32:781 w ap 0 reg 18 PSP 0x00000000
08:15:32:781 run ap 0
08:15:32:782 halt ap 0
08:15:32:782 r ap 0 reg 0 R0 0x00000001
08:15:32:783 w ap 0 reg 0 R0 0x08000000
08:15:32:784 w ap 0 reg 1 R1 0x00017800
08:15:32:784 w ap 0 reg 2 R2 0x20000C40
08:15:32:785 w ap 0 reg 3 R3 0x00000002
08:15:32:785 w ap 0 reg 4 R4 0x00000000
08:15:32:786 w ap 0 reg 5 R5 0x00000000
08:15:32:786 w ap 0 reg 6 R6 0x00000000
08:15:32:787 w ap 0 reg 7 R7 0x00000000
08:15:32:787 w ap 0 reg 8 R8 0x00000000
08:15:32:788 w ap 0 reg 9 R9 0x00000000
08:15:32:788 w ap 0 reg 10 R10 0x00000000
08:15:32:789 w ap 0 reg 11 R11 0x00000000
08:15:32:790 w ap 0 reg 12 R12 0x00000000
08:15:32:790 w ap 0 reg 13 SP 0x00000000
08:15:32:790 w ap 0 reg 14 LR 0x20000001
08:15:32:792 w ap 0 reg 15 PC 0x20000059
08:15:32:792 w ap 0 reg 16 xPSR 0x01000000
08:15:32:793 w ap 0 reg 17 MSP 0x20000C1C
08:15:32:794 w ap 0 reg 18 PSP 0x00000000
08:15:32:794 run ap 0
08:15:33:427 w ap 0 @0x20018440 : 0x00017800 bytes, Data 0x437FF043...
08:15:33:428 W B2 in RAM @0x20018440 size 0x00017800: 0658ms
08:15:33:428 r ap 0 reg 0 R0 0x00000001
08:15:33:428 Wait W B1 in Flash @0x08000000 size 0x00017800: 0000ms
08:15:34:068 w ap 0 @0x20000C40 : 0x00017800 bytes, Data 0x3708BF00...
08:15:34:068 W B1 in RAM @0x20000C40 size 0x00017800 : 0638ms
08:15:34:070 halt ap 0
08:15:34:070 w ap 0 reg 15 PC (0x20000000)
08:15:34:071 w ap 0 reg 17 MSP (0x20000500)
08:15:34:071 w ap 0 reg 16 xPSR (0x01000000)
08:15:34:072 Loader write range...
08:15:34:713 w ap 0 @0x20000C40 : 0x00017800 bytes, Data 0x20030000...
08:15:34:713 W B1 in RAM @0x20000C40 size 0x00017800 : 0641ms
08:15:34:714 halt ap 0
08:15:34:714 r ap 0 reg 0 R0 0x00017800
08:15:34:715
08:15:34:716 Error: failed to download Sector[0]
08:15:34:716 Error: failed to download the FileCan you help me understand what is happening?
Thank you all!
