I am having very weird problem using RWW functionality on STM32F767VIT6. I have searched through various places and found no hints to my issue. Any pointers are welcome.
My flash organization is following:
- sectors <0-4> bootloader
- sectors <5-11> app1
- sectors <17-23> app2
The trouble I am having is when I am upgrading application during runtime. The simplified process is following:
- erase the second application image (if in app1, delete app2. if in app2 delete app1).
- program the received image in the erased space.
- if all is good - restart the mcu. bootloader will boot the newer app image.
Problem is following: Sometimes the whole MCU freezes during the erase phase. This happens like 20% of time. These freezes range from approximately 150ms to over 1s. This of course forces the watchdog to reset the whole MCU.
How is that possible? The whole dual bank concept is designed to allow RWW without any stalls at all. The weirdest thing is, that it happens only from time to time. I flash 5 times in a row without any issue and during the sixth attempt I get the stall and MCU restarts.
Thank you for your time.