2022-03-04 07:39 AM
I try to add external loader to C:\ST\STM32CubeIDE_1.8.0\STM32CubeIDE\plugins\com.st.stm32cube.ide.mcu.externaltools.cubeprogrammer.win32_2.0.100.202110141430\tools\bin\ExternalLoader
In debug configuration, check ExternalLodaer and than press Scan.
The scan fail with message "Failed to list external Loader"
If I remove the external loader that I added the scan work fine.
The exetrnal loader that I try to add is MX25L6433F_GFX01M2_STM32G0.stldr from X-CUBE-DISPLAY pack.
STM32CubeIDE Version: 1.8.0
Solved! Go to Solution.
2022-05-04 03:22 AM
This has been fixed with the new X-CUBE-DISPLAY 2.1.0 release available from here : X-CUBE-DISPLAY - Display module software expansion for STM32Cube - STMicroelectronics
2022-03-04 11:28 AM
Weird
Perhaps something specific about the form/structure of the ELF object.
Or a very long path/file name combo
Does STM32 Cube Programmer work in stand-alone mode?
2022-03-06 11:27 PM
STM32CubeProgrammer works in stand-alone mode.
The versions are:
2022-03-07 11:35 PM
Hi,
I have the same issue with same versions of Cube Ide and Cube Programmer.
2022-03-08 03:01 AM
I just tried with latest STM32CubeIde version 1.9.0. The plugin STM32CubeProgrammer is update to v2.10.0.
Same problem!!
2022-03-08 05:33 AM
The error should not be in CubeProg. Must be in CubeIDE code.
The IDE tries to populate a list of loaders showing more than the file name, like: memory start address, length, ...
In order to do so the IDE tries to read the elf-file... If the loader (stldr-file) is built with some specifical way possibly stripping som headers I guess that the tool could generate such error.
We should not "fail the scan", we should simply not populate all fields... Just my first guess.
Could you share the elf-file and preferably also the project and code so that we can see how it is built?
You find my e-mail in my profile.
2022-03-08 09:48 AM
I have exactly the same problem, but on Linux.
I copied MX25L6433F_GFX01M2_STM32G0.stldr to the directory where other ExternalLoaders are. If I click "Scan" I get the same error message, "Failed to list external loaders".
If I delete the file from that directly, scan works.
I can also just keep MX25L6433F_GFX01M2_STM32G0.stldr in original directory, and copypaste path to that file to the "External Loader" field in Debugger settings. IDE will accept that, and will pass the filename to gdbserver while flashing. However the flashing does not work, it always fails with "Load failed".
I'm slightly ****** about this. I bought a STMG071RB Nucleo board and GFX01M2 module, genuine ST modules. Then downloaded STM32CubeIDE and X-CUBE-DISPLAY. I'm able to build the example project with no errors, but can't program the board because this External Loader issue.
I have not yet written a single line of my own code, everything is straight from ST and not working.
Other projects (without extloaders) build and program fine.
2022-03-08 10:41 AM
Update to my last message: Just downloaded STM32CubeProgrammer, can confirm that the same ExternalLoader works right away and I finally was able to program my board. :)
btw @mattias norlander , STM32CubeIDE External Loader list does not have any details you mention (memory start address, length).. Just file names in a huge dropdown menu which can't be searched. STM32CubeProgrammer has much nicer GUI here.
2022-03-08 11:02 AM
Yes, once upon a time there were some internal name vs .stldr naming issues.
It probably also looks for external bind points for Init, StorageInfo, Erase, Write, etc
Perhaps also look at the dash vs underscore naming convention used for most of the ST furnished loaders.
ELF files between IAR, Keil and GNU can all be subtlety different. Plus there's frequently a huge amount of clutter in the files.
Some of the Keil built ones have expectations that R9 points to the data section, related to the address independence settings.
Also Keil has a file name length issue with their .FLM loaders.
2022-03-08 11:46 AM
@mattias norlander
Comparatively, StorageInfo structure is truncated vs other examples, normally 200 bytes, slack data nulled out.