2025-07-28 6:17 AM - last edited on 2025-07-28 6:37 AM by Andrew Neil
Hello
hope some one can shed some light please,
I have a STM32F446RE board with SPI1 setup for 8pin SPI FRAM memory
I have written my own firmware using DMA / SPI1 to read and write to this FRAM IC
This is a very fast no volatile memory IC that does not have the limitations of standard FLASH memory
Reading and Writing continuously SPI1 40MHz speed
It does not require or use Block / Page / Sector , polling, time delays for write etc.
Its just continually allows write at very high speed, so eliminates all the pain of poor endurance, latency of normal serial flash memory.
Can I find an external flash loader routine for this type of memory so I can use STcube programmer to load the FRAM with my custom data, of course not ????
Could someone please advise in very basic steps how to create a flash loader for my ST32446
I have tried looking at various flash files / github etc. but there is so much code relative to page size, block size, sector size etc. None of that is applicable for me
Just need to be able to read and write to the SPI, from cube programmer
please can someone advise how to make a simple external loader
Thank you
2025-07-28 8:17 AM
Just create as a SPI_FLASH or I2C_EEPROM type loader, at a pseudo-address you want it the live in within STM32 Cube Programmers interface.
Implement Init(), Write() and Read() functions using your BSP/CSP code, you can use whatever UART/Serial interface you want for diagnosis/telemetry like output to understand how it is interacting.
SectorErase() and MassErase() can basically just return SUCCESS immediately, not sure if I2C_EEPROM model would call or not, easy enough to check / observe, or just succeed.
Mask the address passed into Read/Write however is appropriate for your memory device, it's just not that complicated.
Create your input linker script so linker builds the content for your chosen pseudo-address, or go to the programming tab/pane and plug in this address for the .BIN you want to push in.
2025-07-28 8:30 AM
Thank you for the reply
but as a newbe to this, I have limited knowledge on what you are suggesting, I guess everything is easy when you know how,
But really need much more basic steps
Thank you
2025-07-28 9:06 AM
I'm saying to look at the other External Loader examples and tutorials, and stop focusing on the specifics of FRAM vs others. The memories in most of these instances are just perceived as large linear regions. If they are 256MB or less than can appear to live in an 0x70000000 or 0x90000000 type address space for the purpose of programming.