Цитата(pvo125 @ Feb 7 2017, 11:31)

Да так и сделал

Специально не считал но думал что запись 2 слов по 4 байта за раз во флэш не займет много времени. Тем более что в это время все равно останавливается выполнение инструкций из основной (рабочей ) части флэш.
А Вы вообще проверили запись по 8 байт? Что-то мне подсказывает, что это возможно не будет работать.
Во многих МК флешь-память организована так, что позволяет дозаписывать только кусками не менее чем определённой величины и с определённым выравниванием.
Например в LPC17xx невозможно записать менее 16 байт за раз и с выравниванием 16. Т.е. - записать-то можно, только в реальности записаться может не то, что писали.
Это связано с тем, что внутри флешь имеет контроль целостности, который разбивает весь массив на блоки по 16 байт, для каждого такого блока считается контрольная область (избыточные данные) и пишется вместе с ним во флешь. Эта контрольная область не входит в адресное пространство флешь, её нельзя считать, она невидима, но она влияет на читаемые данные.
Таким образом если писать меньше чем по 16 байт или невыравненно, то потом при чтении этого места получаем белиберду.
Это описано в соответствующих AN. Думаю что в STM32 такая же система.
Цитата(pvo125 @ Feb 7 2017, 11:31)

что в сети есть stm32f10x контроллер и у них такой фичи нет потому решил делать общий алгоритм чтобы на оба типа можно было перенести. А в таком общем виде вторая половина и первая физически одно целое и выполниние инструкций останавливается.(последнюю фразу хочу уточнить у участников форума).
Это решается просто переносом в ОЗУ кода всех ISR, которые должны работать при записи флешь.