cancel
Showing results for 
Search instead for 
Did you mean: 

how to External QSPI Nor Flash download Image?

ikassma
Senior

I built a Custom Board based on the STM32F769I-Discovery Board.

The other major part is the connection Pin of the QSPI Nor Flash.

Could I most easily download the image of TouchGFX to QSPI Nor Flash?

How do I download a HEX file that contains a combination of programs and images?

8 REPLIES 8

Typically you would create an external loader for the STLINK utilities or Keil that runs in RAM and handles the board and chip ​specifics of your design.

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

thanks to your answer.

when i 4 days ago i will try to st-link utility custom external loader(Compile IAR8.x) but it was not working.

I also saw a lot of your answers on the ST Forum.

Are there any special considerations to customize the external Loader?

I tried very hard to keep interrup from working and I used the example of ST CUBE Programmer.

All QSPI operations did not have problems when run on internal FLASH, and the example used the QSPI BSP from the STM32F769I-disco Board.

thank you​

this is my Connection

STM32F767 MX25L51245G

PF10 ---------- QSPI_CLK

PF8 ---------- QSPI_D0

PF9 ---------- QSPI_D1

PE2 ---------- QSPI_D2

PB6 ---------- QSPI_NSS

I do not understand. Why does not the normal running program work on Ram?

Do you have an example program of a proven External Loader? If yes, can I get it?

You'd need to review what actually gets placed in the object. The HAL model fits poorly with loader paradigm as interrupts, callbacks and systick timeout methods are not viable. The loaders are also extremely hard to debug as the JTAG/SWD is being used for the programmer.

You would want to come at this with significant understanding of linkers and loaders, and in the case here the .ELF object format. Find the team member with the most direct experience to code the loader.

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

>>I do not understand. Why does not the normal running program work on Ram?

Likely because the code you have written has internal dependencies on things not present in the debugger/system context the code is expected to run in.

I have written several of these external loaders, and work in this space commercially.

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

If you're not tied to a specific programmer you could try openOCD with either this patch

http://openocd.zylin.com/4321

or that one

http://openocd.zylin.com/4760

The configuration according to a specific board isn't that complicated. However, you have to build openOCD with the patch yourself. On Linux that's almost trivial, on Windows it's probably not that trivial.

Note that this affects only the actual flash programming, not the whole toolchain, you can still use any compiler/linker/IDE.

thanks for your answer ^^

ikassma
Senior

i solved this problems.