QUOTE (Xeon @ Feb 13 2012, 18:42)

Раскажите,плиз, по подробней как это всё дело работает, для чего нужно. Камень stm32f407vg.
Я, конечно, далеко не спец. Но маленько сталкивался с этим делом
По сути, не важно, где размещена программа (в ОЗУ или РПЗУ). Микроконтроллеру все равно. Другое дело, что нужно правильно слинковать программу, т.е. указать ее реальный стартовый адрес. Для FLASH, как правило, это 0, для ОЗУ - самый различный вариант.
Также, необходимо правильно организовать таблицу (вектора) прерываний. Т.е., например, разместить их в ОЗУ, либо из FLASH сделать соответствующие переходы.
Также, в ОЗУ можно разместить либо всю программу, либо ее фрагмент (вроде считается, что код из ОЗУ исполняется быстрее, это может быть полезно для вычислительных функций).
Для чего нужно? Мне вот лично, имея на борту 32 Мб ОЗУ, проще "прошивать" (правильнее загружать) их как раз туда, не "портя" FLASH. Мой загрузчик как раз это может, принимая файлы либо по последовательному порту, либо через Ethernet (пока в стадии дописывания). Считаю, что это помогает при отладке, т.к. программу хоть каждые 5 секунд меняй, ОЗУ-то на такой режим работы расчитано, чего не скажешь о ФЛЕШ (вот тут я могу ошибаться, ФЛЕШ тоже можно очень часто перепрошивать). Ну, и в конце концов, программу в ОЗУ загрузить быстрее, чем во FLASH...
Как-то так... спонтанный поток мыслей...
Выбор.