2023-01-07 08:18 AM
Good day. Faced such a problem. I wrote a loader for a non standard board, using stm32f476vgt MK, N25Q128A memory in extended SPI mode. All functions are tested in debugger mode. The data is written correctly, the memory is erased correctly, but verification fails. The reason is the incorrect reading of the stream in the Cube Programmer application. If the memory is read in a third-party programmer, then the data corresponds to the dump of the selected file previously selected for recording.
2023-01-07 10:16 PM
I am attaching the result of the work of External Loader
the result of comparing the contents of the flash memory with the firmware file in a third-party programmer, verification is "OK"
The dump was written to flash memory using ExternalLoader. If necessary, I can provide sources for FlashLoader, although it is unlikely that you will be able to keep the purity of the experiment, since you will not have the same N25Q128A.
2023-01-08 11:14 PM
What's the expected contents, and what's the contents read by your flash loader?
The CRC isn't helpful, you should compare byte by byte to see if there's a distinct error pattern, some pages not programmed, data shifted by one or more bytes, padding ...
2023-01-09 01:12 AM
Thanks for the question. The fact is that I have already formed a loader for the W25Q128FV and everything works well, it is written, compared, read. This N25Q128A flash memory series works correctly only at 54 MHz QSPI frequency. The test according to the example from ST passes without errors. And as I showed on the screenshots, the recorded data in the CubeProgrammer is correctly read by another programmer, from which I conclude that something is wrong with the reading script in the CubeProgrammer.