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-03-08 12:21 PM
Try this
2022-03-08 10:10 PM
Thanks!
This version can be added to IDE. However it still can't program the board:
Failed to start GDB server
Error in initializing ST-LINK device.
Reason: (0) Unknown. Please check power and cabling to target.
Flashing some other project without external loader works fine.
2022-03-10 01:17 PM
Indeed. Had a look at this today. These loader files are not compiled the way they normally are.
That said, CubeIDE should make as few constraining assumption as possible as to how an stldr-file is built. If it works with CubeProg, then it should also be able to work with CubeProg bundled in CubeIDE.
@TSuik.2 :
As you mentioned the "scan button" issue can be worked around by simply inputting the path to the stldr-file in the external loader field. You don't need to scan. The stldr-file can be placed anywhere, and you just need to point to it.
But that does not solve the larger issue that you can flash the external memory using CubeProg stand-alone, but not with CubeProg integrated in CubeIDE.
This we have to take a deeper look at.
2022-03-10 02:01 PM
I have a GFX01M2 coming from DigiKey so might get to look at next week.
I will observe that some of the .STLDR are built with the expectation that R9 points to the data section, I think these are Keil built, using address independent settings. And to be honest I'm not sure it's handled properly by your tools.
"The role of register r9 is platform specific. A virtual platform may assign any role to this register and must document this usage. For example, it may designate it as the static base (SB) in a position-independent data model, or it may designate it as the thread register (TR) in an environment with thread-local storage. The usage of this register may require that the value held is persistent across all calls. A virtual platform that has no need for such a special register may designate r9 as an additional callee-saved variable register, v6."
2022-03-14 07:38 AM
I had some internal discussion and this problem had already been internally reported as a bug.
(ST Internal ticket reference 119761)
I will see if we can provide a fixed stldr-file in this thread before next X-CUBE-DISPLAY release.
@TSuik.2, help me prioritize the work for the responsible team... Is it only this stldr-file which you currently need? MX25L6433F_GFX01M2_STM32G0.stldr.
Let us know which files are the most important for quick fix and I hope we can prioritize...
2022-03-14 08:39 AM
@mattias norlander Yes I only need MX25L6433F_GFX01M2_STM32G0.stldr.
2022-03-15 04:11 AM
2022-03-15 05:34 AM
@TSuil2 I have the NUCLEO-STM32G071RB + X-NUCLEO-GFX01M1 after fighting the issue I found:
D:\STM32Cube\Repository\Packs\STMicroelectronics\X-CUBE-DISPLAY\2.0.1\Projects\NUCLEO-G071RB\Applications\GFX01M1_HelloWorld\Binary\GFX01M1_HelloWorld.bat
I had to edit the paths to where I installed STM32CubeProgrammer and then I got the extfirmware loaded. Read up on the process to generate external firmware loader, informative. FYI: TouchGFX (4.18.1) generates external loaders, they fail, but that is another thread.
2022-03-15 06:43 AM
@mattias norlander i just tried your external loader on NUCLEO-G0B1RE and X-NUCLEO-GFX01M2.
The scan in STM32CubeIDE (v1.9.0) works, also downalod and debug.
2022-03-15 10:52 PM
Can confirm this works. Great work, thanks for the quick support!