Skip to main content
Graduate
December 23, 2024
Solved

How to load the external QSPI using USB-DFU method

  • December 23, 2024
  • 2 replies
  • 1902 views

Hello

Controller - STM32H745

We are using an external QSPI to store the application image. Currently we are flashing the image using JTAG and .stldr file as an argument to cmd ln utility STM32_Programmer_CLI.exe 

When I pull the boot0 pin HIGH I am able to load the internal flash. Is there a possibility to flash the external QSPI using USB-DFU method?

I tried this cmd but it didn't work and help section of the STM32_Programmer_CLI.exe is not clear about this topic

STM32_Programmer_CLI.exe -c port=USB1 pid=0xDF11 vid=0x0483 -w "%FW_FILE_PATH%App-CM7.hex" -v -el "%FW_FILE_PATH%qspiflashLoader-CM7.stldr"

 

    This topic has been closed for replies.
    Best answer by Ethan HUANG

    According to the NOTE in Section 3.2.13 (External loader command) in UM2237 (Rev 24), using external loader over bootloader interface is not supported:

    NOTE: This command (-el) is only supported with SWD/JTAG ports.

    2 replies

    ST Employee
    December 23, 2024

    According to the NOTE in Section 3.2.13 (External loader command) in UM2237 (Rev 24), using external loader over bootloader interface is not supported:

    NOTE: This command (-el) is only supported with SWD/JTAG ports.

    Graduate II
    December 23, 2024

    Isn't the path here to create your own USB DFU Device implementation supporting/reporting the memory regions in your design?

    Madhav_1Author
    Graduate
    December 24, 2024

    No, first I wanted to understand if there is a possibility of using internal ROM Bootloader to load the external QSPI flash using the USB.

    Ethan's answer clarifies that its not possible.

    Can you suggest any example projects to achieve your own USB DFU Device implementation supporting/reporting the memory regions in your design?

    Graduate II
    December 24, 2024

    Technicaly one simple way exist , based on how big image you require load. Idea is place image into imNx.hex with flasher code. Load over DFU and run. Wait for flashing to ext and load next hex as internal or next part ext...

    For big external image load some intermediate fw ... that open some protocol and load ext. Then DFU internal back.

    For some size you can DFU to ram and run, require more finness