cancel
Showing results for 
Search instead for 
Did you mean: 

Storing Images in QSPI Flash

TonyFocusLCDs
Associate II

Hello,

I am using the STM32H747I-DISCO board for prototyping. I was able to load up the "Tutti Frutti" game demo on the board to verify the hardware. In my own application I was able to store a small 320 x 240 image in the internal flash of the STM32H747XIH6 device on the discovery board. I understand how that works.

I have my image data as a C array of uint32_t data formatted as ARGB8888.

My questions are:

1.  How do I compile/build/assemble that data into a .bin or .hex file to load into the external Quad SPI flash available on the discovery board? I just want the image data stored there, not the entire application.

2. What tools do I need besides what comes with STM32CubeMX, STM32CubeIDE, and STM32CubeProg? 

3. If the QSPI flash stores the data as bytes, do I have to do bit shifting conversion as I read the bytes out? What I mean is do I read 4 bytes and shift them into a uint32_t variable or can I just move the bytes from the QSPI to SDRAM (where my frame buffer is stored) and it is just how the LTDC reads the data that determines if the bytes are read as a uint_32_t?

In the game demo, the files stored in the external flash are .hex files, so my guess would be that some how I need to turn my C array (or just the data) into a .hex file that can be loaded into the external flash. I don't know how to do that.

From there I can then access the address of the image in the external flash through the QSPI interface (HAL driver).

Thanks for any help.

11 REPLIES 11
Pavel A.
Evangelist III

Of course, I don't mean to get in the middle. Good luck!

@Pavel A. 

Thanks for the information and suggestions. Hopefully I did not offend with my last reply.