2011-12-08 11:04 AM
Hi,
I'm using ADC with DMA and periodically erasing the flash pages. But the dma interrupt is not fired while i'm erasing the flash pages. I'm also using a lot of flash constants in my code. Is it possible to avoid flash stall with the given MCU, which has a single bank flash? any help is sincerely appreciated! ted #flash-erase-stall-stm32f1032011-12-08 01:53 PM
Is it possible to avoid flash stall with the given MCU, which has a single bank flash?
Yes, you have to run entirely from RAM, if you touch the flash array it will stall. There is the same problem with the F2 and F4 series. You might want to check if any of the F1 1 or 2 MB models have multiple banks/planes.2011-12-08 03:42 PM
Do the models that have multiple banks/planes allow you to erase one bank/plane while running from the other without stall?
2011-12-08 06:44 PM
Do the models that have multiple banks/planes allow you to erase one bank/plane while running from the other without stall?
ST calls them banks, but they have separate controllers, and as far as I understand it, they act independently. So yes, if you don't touch an active bank with a read/fetch then the CPU will not stall. From http://www.st.com/internet/com/press_releases/p2478.jsp''The 1MB Flash memory is organized in two banks of 512Kbytes.This dual-bank architecture thereby enables safe upgrading of applications in the field by uploading new software into the second memory bank. The update can then be copied across safely into the main bank, and the process managed to protect against hazards such as power loss while the upgrade is being applied.''