Цитата(mronetwo @ May 24 2012, 17:23)

каким образом должен выглядеть скрипт для линкера для загружаемой программы (IAR).
Насчёт размещения загрузчика в начале флеш-памяти и способа передачи управления согласен с предыдущими ораторами.

Теперь чтобы собрать программу для работы с загрузчиком достаточно в IAR поправить файл .icf, заменить ему только две строчки:
define symbol __ICFEDIT_intvec_start__ = 0x08000000;
define symbol __ICFEDIT_region_ROM_start__ = 0x08000000;
тут вместо 0x08000000 нужно указать адрес откуда начинается приложение.
В самой программе, если она аккуратно написана, ничего не меняется, только перекомпилировать с другим .icf
Единственное, что нужно проконтролировать - это правильность инициализации контроллера прерываний.
В примерах в функции NVIC_SetVectorTable() обычно тупо пишут константу, а лучше взять адрес начала секции .intvec с помощью __section_begin(".intvec").
Russia est omnis divisa in partes octo.