cancel
Showing results for 
Search instead for 
Did you mean: 

Riverdi RVT101HVSNWC00 external flash programming fails

markH
Associate III

I have been trying to program the mentioned display. Whilst using TGFX 4.20.0 I can program an empty project then, generate code and upload from CubeIDE 1.9.0 without issue. Adding an image to the empty project and run target from TGFX works no problem BUT when generate code and run target from Cube ide it fails

Memory Programming ...
Opening and parsing file: st-link_gdb_server_a29604.srec
  File          : st-link_gdb_server_a29604.srec
  Size          : 495.69 KB 
  Address       : 0x08000000 
 
 
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 1]
Erasing memory corresponding to segment 1:
Erasing external memory sectors [0 79]
Error: failed to erase memory

This is using

STM32H_IPS_Riverdi_CM7_v3.stldr from project and STM32H_IPS_QSPI_Loader_CM7.stldr supplied by manufacturer

I hope you can help with this issue

Thank you

Mark

9 REPLIES 9
Osman SOYKURT
ST Employee

Hello Mark,

Have you tried to flash your board within STM32CubeProgrammer instead ?

Also, which board do you use ? Are you sure that the external loader used by TouchGFX Designer when you run on target is actually the same used on your STM32CubeIDE ?

/Osman

Osman SOYKURT
ST Software Developer | TouchGFX

+1

Definitely try from the GUI version of STM32 Cube Programmer (v2.11.0 currently), select the External Loader(s) and see if the behaviour is consistent there.

What type (make/model) of flash memory is used on these boards?

Did this work at some point, and then stop working?

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..

Micron MT25QL512ABB1EW9-0SIT (RW213)

https://github.com/riverdi/STM32H7_IPS_QSPI_Loader

PB2 CLK

PG6 NCS

PF8 D0

PF9 D1

PF7 D2

PF6 D3

Perhaps an alternate loader, rebuilt this using my own loader trees, and the pins used on the RIVERDI board.

https://github.com/cturvey/stm32extldr/blob/main/h7_mt25ql512a/CLIVEONE-MT25QL512A_STM32H7XX-PB2-PG6-PF8-PF9-PF7-PF6.stldr

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
markH
Associate III

Thanks I will look at this tomorrow :thumbs_up:

I'll review where I am with my Micron loaders (13 months since I touched the H7 ones), spent most of the time with the Macronix and Winbond parts as they are more prolific, and least covered by ST Support. In terms of availability/flexibility the SOP16W (SOIC16 300-mil) packaged parts is by far the broadest. Outside of Winbond, everyone seems to be moving to the BGA24 (6x8mm) for the stacked die parts (ie 1Gb (2x 512Mb die), 2Gb (4x 512Mb die))

Tips, Buy me a coffee, or three.. PayPal Venmo
Up vote any posts that you find helpful, it shows what's working..
markH
Associate III

I had tried programmer 2.8, 2.9 and 2.10 GUI, I managed to erase the ext flash but never write. Also tried all three cli versions in CubeIDE to no avail

With STcubeProg 2.11.0 your CLIVEONE-MT25QL512A works a treat! was able to program ext flash then load internal flash and run OK, this is further than I got before. Really looking to be able to program and debug from Cube IDE

loading in CubeIDE 1.9.0 with programmer 2.11.0 and your file, consol output os below

STMicroelectronics ST-LINK GDB server. Version 6.1.0
Copyright (c) 2022, STMicroelectronics. All rights reserved.
 
Starting server with the following options:
        Persistent Mode            : Disabled
        Logging Level              : 1
        Listen Port Number         : 61234
        Status Refresh Delay       : 15s
        Verbose Mode               : Disabled
        SWD Debug                  : Enabled
 
Waiting for debugger connection...
Debugger connected
Waiting for debugger connection...
Debugger connected
Waiting for debugger connection...
      -------------------------------------------------------------------
                       STM32CubeProgrammer v2.11.0                  
      -------------------------------------------------------------------
 
 
 
Log output file:   C:\Users\MarkH\AppData\Local\Temp\STM32CubeProgrammer_a22540.log
ST-Link Server is running on port : 7184
ST-LINK SN  : 31FF6D064D4E353839371043
ST-LINK FW  : V2J39S7
Board       : --
Voltage     : 3.25V
SWD freq    : 4000 KHz
Connect mode: Under Reset
Reset mode  : Hardware reset
Device ID   : 0x450
Revision ID : Rev V
Device name : STM32H7xx
Flash size  : 2 MBytes (default)
Device type : MCU
Device CPU  : Cortex-M7/M4
BL Version  : 0x0
 
 
 
Memory Programming ...
Opening and parsing file: ST-LINK_GDB_server_a22540.srec
  File          : ST-LINK_GDB_server_a22540.srec
  Size          : 495.69 KB 
  Address       : 0x08000000 
 
 
Erasing memory corresponding to segment 0:
Erasing internal memory sectors [0 1]
Erasing memory corresponding to segment 1:
Erasing external memory sectors [0 4]
Error: failed to erase memory
 
 
Error: failed to erase memory
Shutting down...
Exit.

To me looks like it invokes the programmer once to try to write both internal and external flash compared to TGFX invoking the programmer twice.

markH
Associate III

Compared to TGFX successfully programming

Flash
        make -f ../../STM32CubeIDE/CM7/Makefile flash
              -------------------------------------------------------------------
                               STM32CubeProgrammer v2.8.0                  
              -------------------------------------------------------------------
        
        STLinkUSBDriver.dll loaded
        STLinkUSBDriver.dll loaded
        ST-LINK SN  : 31FF6D064D4E353839371043
        ST-LINK FW  : V2J39S7
        Board       : --
        Voltage     : 3.26V
        SWD freq    : 4000 KHz
        Connect mode: Normal
        Reset mode  : Software reset
        Device ID   : 0x450
        Revision ID : Rev V
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Database: Config 1 is active.
        flash loader c:/Program Files/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/FlashLoader/0x450.stldr is loaded
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Database: Config 1 is active.
        Device name : STM32H7xx
        Reading data...
        r ap 0 @0x1FF1E880 0x00000004 bytes Data 0x00000800
        Flash size  : 2 MBytes
        Device type : MCU
        Device CPU  : Cortex-M7/M4
        r ap 0 @0x1FF1E7FE 0x00000004 bytes Data 0x003EFF90
        BL Version  : 0x90
        
        Reading data...
        r ap 0 @0x1FF095F0 0x00000004 bytes Data 0x00020200
        
        
        Memory Programming ...
        Opening and parsing file: flash.bin
          File          : flash.bin
          Size          : 181724 Bytes
          Address       : 0x08000000 
......
 
File download complete
        Time elapsed during download operation: 00:00:03.269
        Hard reset is performed
        
        Hard reset is performed
        Disconnected

second invoke

File download complete
        Time elapsed during download operation: 00:00:03.269
        Hard reset is performed
        
        Hard reset is performed
        Disconnected
              -------------------------------------------------------------------
                               STM32CubeProgrammer v2.8.0                  
              -------------------------------------------------------------------
        
        external loader C:/TouchGFXProjects/MyApplication_8/STM32CubeIDE/CM7//Middlewares/Stldr/STM32H_IPS_Riverdi_CM7_v3.stldr is loaded
        STLinkUSBDriver.dll loaded
        STLinkUSBDriver.dll loaded
        ST-LINK SN  : 31FF6D064D4E353839371043
        ST-LINK FW  : V2J39S7
        Board       : --
        Voltage     : 3.26V
        SWD freq    : 4000 KHz
        Connect mode: Normal
        Reset mode  : Software reset
        Device ID   : 0x450
        Revision ID : Rev V
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Database: Config 1 is active.
        flash loader c:/Program Files/STMicroelectronics/STM32Cube/STM32CubeProgrammer/bin/FlashLoader/0x450.stldr is loaded
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Buffer program...
        w ap 0 @0x580244F4 0x00000004 bytes Data 0x00000002
        Reading data...
        r ap 0 @0x58000528 0x00000004 bytes Data 0x00000001
        Database: Config 1 is active.
        Device name : STM32H7xx
        Reading data...
        r ap 0 @0x1FF1E880 0x00000004 bytes Data 0x00000800
        Flash size  : 2 MBytes
        Device type : MCU
        Device CPU  : Cortex-M7/M4
        r ap 0 @0x1FF1E7FE 0x00000004 bytes Data 0x003EFF90
        BL Version  : 0x90
        
        Reading data...
        r ap 0 @0x1FF095F0 0x00000004 bytes Data 0x00020200
        
        
        Memory Programming ...
        Opening and parsing file: qspi.bin
          File          : qspi.bin
          Size          : 325864 Bytes
          Address       : 0x90000000 
......
 
 run ap 0 
        Done
        r ap 0 reg 0 R0   0x00000001
        Write elapsed time: 3098ms
        Segment[0] downloaded successfully
        
        
        File download complete
        Time elapsed during download operation: 00:00:06.096
        Hard reset is performed
        
        Hard reset is performed
        Disconnected
    Done

firmwareguru
Associate II

I can confirm that the problem is still there using external flash loader provided with TouchGFX 4.21.1 and STM32CubeProgrammer 2.6, 2.10 and 2.13.

The workaround is, as mentioned above, to load internal and external flash separately from separate files.

Can you please provide steps on how to do this? I have this problem and cannot load the riverdi display with the cubeIDE generated code.