2010-11-21 05:41 PM
Why does Flash_ErasePage() stop interrupts?
2011-05-17 05:15 AM
If your code or your vectors are being read from flash, it's going to block.
2011-05-17 05:15 AM
But the code still executes, looping to read the done bit! Or does it halt, then read the done bit after the operation?
Where in the manuals did you find this info?
2011-05-17 05:15 AM
But the code still executes, looping to read the done bit! Or does it halt, then read the done bit after the operation?
And how many iterations can you count, vs the core cycle counter? Try the experiment again while running entirely in RAM (code/vectors/everything)Where in the manuals did you find this info?
Flash memory has a very long write time. You cannot read flash arrays while the write functions complete, most standalone parts return programming status and toggling signals. You can avoid this by having two or more flash banks, the STM32 1MB and 2MB parts have multiple banks. Try the ''STM32F10xxx Flash programming manual'' PM0042 13259.pdf ''During a write operation to the Flash memory, any attempt to read the Flash memory will stall the bus. The read operation will proceed correctly once the write operation has completed. This means that code or data fetches cannot be made while a write/erase operation is ongoing.'' QED2011-05-17 05:15 AM
Thanks for that... I looked and looked but didn't see that line. It is exactly what I was looking for!