cancel
Showing results for 
Search instead for 
Did you mean: 

STM32CubeIDE builds quad spi bin file in different order to TouchGFX

JGile
Associate II

Hi,

I have a project started from a TouchGFX template (Riverdi 7inch) and can load to the display and run.

I have then been able to develop further, using the CubeIDE, to use some of the peripherals such as the ADC to monitor a signal for the application to display. This works well to however when running from the IDE, the screen images are offset. This is because the quad spi binary image created by TouchGFX is in a different order to that expected by the CubeIDE.

What determines the order that images are stored into the quad spi flash? Is it possible to make the IDE store them or expect them in the same order as the original TouchGFX project? The .ld files are the same.

At the moment I have to load the IDE-Produced qspi.bin file into quad flash using stm32PRG before using the IDE.

This is not a big problem but I would have thought that the IDE  linker files etc would be in synch with the TouchGFX project.

Thanks in advance.

John

 

4 REPLIES 4

The linker is mostly a single pass affair, thus the order of the objects encountered is apt to dictate how data/code is assigned to different section bins. I think you'd need to control the build / make process, or get a more sophisticated linker

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

Thank you for your response.

I am not sure how I do this as I cannot control how TouchGFX allocates the qspi memory.

If I was able to know how it did this then maybe I could somehow force the linker to do the same on the IDE side.

Is there no file that dictates the order so that I could sink them?

Thanks

John

FBL
ST Employee

Hello @JGile 


I suggest you taking a look to Memory Usage | TouchGFX Documentation

This may help to control the external memory and understand better how to use the linker!

 

To give better visibility on the answered topics, please click on Accept as Solution on the reply which solved your issue or answered your question.


I'm out of offce with limited access to my emails.
Happy New Year!
JGile
Associate II

Thank you for your advice. The document is indeed interesting and has made a lot more sense of the map file however it still does not tell me how TouchGFX decides the order that files are stored in internal flash. I guess I am hoping for too much.

I can look at the map file, of course, and then force the same order in the IDE by controlling the build order but if I add more images in TouchGFX, I would need to do the same again.

This is quite a manual process. The solution, at the moment, is to use the qspi.bin file, produced by the IDE, and load that in first using stm32PRG before debugging using the IDE, but it would be useful if the IDE, long term, could somehow refer to or use the same build order that TouchGFX uses.

It probably seems a minor point but I am developing for a large customer that will eventually take over the maintenance once the testing phase has passed and they will require full build and test intructions, which are more complicated than they need to be.

It is our first time using TouchGFX and the stm32IDE, as in the past we have used Keil and stemWin, which I felt, gave us a lot more control. 

(The community for the stm products is much better though)