Я полагаю, что во время программирования флэш-памяти любая попытка доступа к флэш-памяти остановит процессор.
Итак, вы хотите убедиться, что критический код (например, обработчики прерываний, сторожевой таймер и т. Д.) Может бытьнехватка ОЗУ во время работы программы.В последний раз, когда я использовал STM32 (возможно, ~ 2 года назад), именно это я и сделал.
Так что, чтобы было ясно, чтобы ответить на вопрос в конце вашего поста:
Еще один способ задать этот вопрос - «не запустит ли мой флэш-программный код из ОЗУ сбой при остановке флэш-страницы?».
Я считаю, что ответ «нет».Неважно, где находится драйвер флеш-программирования, важно то, что делает ваш код во время выполнения операции стирания / программирования .Если процессор пытается получить доступ к флэш-памяти во время операции, даже для чтения инструкций для вашей программы или чтения таблицы констант, я полагаю, что она остановится.
Я точно знаю, что так работает флэш-память NXP.на их ARM UC, но я хотел бы также процитировать главу и стих для STM32.По какой-то причине руководство по программированию флэш-памяти кажется сейчас недоступным, но я нашел следующий язык в аналогичном документе (я полагаю, PM0068):
Текущая операция флэш-памяти не блокируетПроцессор, если процессор не обращается к флэш-памяти.
и
Если во время программирования инициируется операция чтения / записи [на флэш-память] (бит BSYустановлено), процессор останавливается, пока не завершится текущее программирование основной флэш-памяти.