Problem with our proprietary bootloader. Interface interrupts may come too quickly while flash pages are being deleted and written.
Hi everyone,
I have a problem with our proprietary bootloader on STM32L151, STM32L451 and STM32F303 micros.
I transfer the content of a flash page via any interrupt-controlled interface (CAN, UART, USB etc.). If all the data for a flash page is available, it is deleted and then written with this content. The data of the following flash page is collected further in the background with the help of the interface. Sometimes an interrupt is apparently lost, so that part of the data is lost. I suspect that the erasing and writing of the flash page takes longer than the successive interrupts that display the incoming data fragments. According to the specifications, the microprocessor cannot read from the flash memory when an erase or write action is in progress. This means that the microprocessor cannot process the code of the interrupt service routine that shovels the data fragment onto a RAM buffer.
Is this assumption correct? If so, is there a possible solution to the problem or a workaround?
Thanks and Greetings
Carsten
