Я считаю, что во время программирования флэш-памяти, любая попытка доступа к флэш будет простаивать процессор.
Так что вы хотите сделать так, чтобы критический код (возможно, обработчики прерываний, сторожевой кикер и т. Д.) Мог быть запущен из ОЗУ во время работы программы. В последний раз, когда я использовал STM32 (возможно, ~ 2 года назад), это именно то, что я сделал.
Так просто быть ясно, чтобы ответить на этот вопрос, в конце Вашего поста:
Другой способ задать этот вопрос будет «будет запущен мой флэш-программирование кода из ОЗУ избежать страницы флэш стирание стойла? ».
Я считаю, что ответ «нет». Это не имеет значения, где находится драйвер Flash-программирования, важно то, что делает ваш код , пока выполняется операция стирания/программы. Если CPU пытается получить доступ к флэш-памяти во время операции, даже для чтения инструкций для вашей программы или чтения таблицы констант, я считаю, что она остановится.
Я знаю, что это так, как вспышка NXP работает на своих ARC-UC, но я хотел привести стих главы & для STM32. По какой-то причине, ручной вспышки программирования, кажется, будут недоступны, но я нашел следующий язык в аналогичном документе (PM0068, я считаю):
Продолжающаяся операция флэш-памяти не будет блокировать процессор до тех пор, поскольку ЦП не получает доступ к флэш-памяти.
и
Если операция чтения/записи [мигать] инициируется при программировании, (BSY установлен бит), глохнет CPU до текущего основного программирования флэш-памяти закончена.
Удивительный, спасибо. То, что я делаю в данный момент, пытается загрузить код нарушения в ОЗУ, чтобы попробовать это. Я дам вам знать, как я себя чувствую. Я просто хочу, чтобы PM00042 был так же ясен, как и ваш PM ... –
PM00042 исчез - попробуйте найти PM0056 или PM0063. Вы также можете перейти на сайт ST, найти раздел STM32 и найти документацию «Руководство по программированию». –