cancel
Showing results for 
Search instead for 
Did you mean: 

STM32_Programmer_CLI error while flashing internal and external memory from same .srec

usr357
Associate

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 File

 Can you help me understand what is happening?

Thank you all!

 

1 REPLY 1
usr357
Associate

I would like to add that I splitted the .srec in internal and external and then executed the very same command twice, (one for the internal .srec and one for the external .srec), successfully flashing both.

 

So the problem shows up only when I flash the complete .srec