AnsweredAssumed Answered

STM32F072 IAP solution

Question asked by Roberto Giovinetti on Apr 16, 2018

Hello Everybody

I'm new in this Community and I hope to find ideas to solve my problem: I've an application in which I deal with a phone via a tag and I2C. I store an image of the new firmware I've to write to microcontroller Flash in a SPI extern memory. I want to update firmware of my STM32 reading from SPI memory and then writing to Flash. I'd like to update all the flash content, so I know I've to execute software in RAM in order to update correctly the Flash content.

I thought about doing the following steps:

  • Read SPI memory and find if there's necessity to update firmware
  • If we've to update, then load SPI communications functions and Flash upgrade functions in the RAM
  • Execute Entire Chip Flash Erase function
  • Start to update by reading SPI memory and writing to the Flash
  • End of update procedure: update SPI extern memory content and reset the STM32 via software


I know that is hazardous update software in this way, but i think is the only way to avoid to write a bootloader dedicated.

I wouldn't like to implement a complete bootloader that reside at the beginning of memory space, but I would like to update all the Flash content as described before.

Anyone can tell me how can execute part of software in RAM? How can I manage it?

Thank you very much for support.