cancel
Showing results for 
Search instead for 
Did you mean: 

QSPI External Loader WriteMemory Fail

YCF.1
Associate III

I use STM32H750B-DK to do external loader function.

"H750_External_Loader.zip" is my test code.

On below have error happen, I got error while memcmp

0693W00000JMSYpQAP.png 

That's the code that I've used as my base:

https://github.com/WellinZHANG/External_Loader

QSPI Setting

0693W00000JMSZYQA5.png 

EVM STM32H750B-DK Flash0693W00000JMSZiQAP.png

16 REPLIES 16

Are you using the F1 part, or something else?

The OP is using the H7

What pins are you using?

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

I had a problem with a custom development board from China. It had the labeling of two pins mixed up. This forced me to study deep pdf on W25Q128 and create a QSPI port emulator on stm32f103. Now I'm trying to assemble a bootloader for a soybean board and ran into a similar problem as the author of the article. I use stm32f746vgt6 with W25Q128. Pins PB2 -> CLK, PB6 -> NCS, PD11 -> IO0, PD12 -> IO1, PD13 -> IO3, PE2 -> IO2.

I do not have deep knowledge and good practice in this matter. That's why I came here to deal with all this. Maybe it's in the algorithm of the flash memory itself. And if you use memory from Micron, then everything will work out.

There is an understanding of what could be the problem, looking through the files from the repository from ST, I decided to look at the linker file and noticed that the wrong RAM size was indicated in it, i.e. 512k is indicated, and mine has 320k. And if I understand correctly, then the stack and heap can be placed in an area that does not exist. then it is not clear why the external loader works with my file and does not give an error?

Well. I can be congratulated. I was able to defeat this issue. The loader is working. Writes, erases by sectors, erases completely, and verifies the recorded dump with the recorded one.

YCF.1
Associate III

This issue had to solve.

The code had some error, must change code like below.

Thanks.

0693W00000Y6qyaQAB.png

This is an important setting for the exchange protocol. It generates a delay between setting the start address of the page we are reading and the first byte of data. All this is described in pdf on a memory chip.