cancel
Showing results for 
Search instead for 
Did you mean: 

Details about MBED drag-and-drop programming with ST-Link (using USB mass storage, MSC)

mwb
Associate III

Hi all,

I've got an STM32 evaluation board (STM32H745-DISCO). As soon as I connect the board using the ST-Link connector the Windows PC also detects a mass storage device.

I haven't used this feature before but it seems that "drag-and-drop programming" is possible. But I haven't really found details about this mechanism. It must be a feature of the ST-Link firmware which can be deactivated (by programming other firmware if I understand correctly).

  • Does this mechanism allow to program both banks of the internal flash?
  • Does this mechanism allow to program an external QSPI flash (somehow using an external loader) on the board or is this limited to internal flash?
  • What file types are supported? .bin, .hex, .elf?
  • Is there any detailed documentation about this?

There's a DETAILS.TXT and an MBED.HTM file on the virtual mass storage device.

The HTML file only forwards to http://mbed.org/device/?code=08470221012961693E6DF813 which is resolves to https://os.mbed.com/platforms/ST-Discovery-H745I/ - telling me that there's no further info.

The DETAILS.TXT file gives the following two lines, probably info about the ST-Link firmware.

Version: V3J9M3
Build:   Nov  2 2021 16:57:17

I'll probably stick to flashing using STM32CubeProgrammer or the ST-LINK Utility. However, I'd be interested in more details about the "MBED drag-and-drop programming" and its limitations.

Edit: Found another info which led my to the following idea: Is the ST-Link firmware (or this feature) based on "DAPLink interface firmware"?

Cheers,

Matthias

1 ACCEPTED SOLUTION

Accepted Solutions

Only supports .BIN, written in a continuous/linear fashion. ie pretending to be a FAT file system, sectors/clusters go to FLASH memory.

Is suspect you can write both banks with an image large enough to touch both. Not addressable.

Things like .ELF would need to have true random access, and stage the image, and then navigate. Too complicated here.

No, core implementation has not idea what you've placed on board vs memory, pins, etc. So doesn't support External Loaders.

You could likely create your OWN loader that works similarly, and supports YOUR hardware.

I think Arduino and Microsoft have some specific class/implementation.

Your own DFU implementation could support external memories.

You could perhaps create a CDC/VCP supporting X/Y-MODEM and use terminal application if you wished.

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

View solution in original post

4 REPLIES 4

Only supports .BIN, written in a continuous/linear fashion. ie pretending to be a FAT file system, sectors/clusters go to FLASH memory.

Is suspect you can write both banks with an image large enough to touch both. Not addressable.

Things like .ELF would need to have true random access, and stage the image, and then navigate. Too complicated here.

No, core implementation has not idea what you've placed on board vs memory, pins, etc. So doesn't support External Loaders.

You could likely create your OWN loader that works similarly, and supports YOUR hardware.

I think Arduino and Microsoft have some specific class/implementation.

Your own DFU implementation could support external memories.

You could perhaps create a CDC/VCP supporting X/Y-MODEM and use terminal application if you wished.

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

Tried the same with a new STLINK-3 MINI

all attempts failed, the NDIR_109.BIN file is 48k, the STLINK_V3M USB flash has 392k

the BIN files shows for a short time then the window is closed, the FAIL.TXT is then created saying:

"The application file format is unknown and cannot be parsed and/or processed"

It seems not to work at all in my opinion.

AM
ST Employee

Hello,

You will find details about Drag-and-Drop programming with ST-Link (supported .bin .hex format and limitations) in RN00093 STSW-LINK007 firmware upgrade release note. It is available here: https://www.st.com/en/development-tools/stsw-link007.html#documentation ,

RN0093 Firmware upgrade for ST-LINK, ST-LINK/V2, ST-LINK/V2-1 and STLINK-V3 boards

Best regards

Pavel A.
Evangelist III

Dear @AM​ this information is very useful, thanks.

Is it possible in the next revision of RN0093 or UM2502 or other document to put the info on Drag-and-Drop programming in a separate chapter to be easily discovered?