Цитата(AlexandrY @ Dec 12 2007, 18:07)

Просто ремап не надо делать и все отдично работает.
Именно так делаю в дивайсах на STR91x.
Область векторов совместно используют и загрузчик и программа.
Этаж область то все равно одинаковая, зачем из-за нее делать ремапинг?
Получился загрузчик с ремапом, причем решение вышло довольно странное:
В программе загрузчике настраиваю FMI - маленькая flash bank1 на адресе 0x00, доступны обе flash (FMI->CR=0x018). Дальше забавнее - перед jump(ом) оставляю всё так же как и в примере IAP -
FMI->BBSR = 0x0;
FMI->NBBSR = 0x6;
//FMI->BBADR = 0x80000 >> 2;
FMI->NBBADR = 0x0 ;
Только вот строку, где маленькой flash присваивается новый адрес, закомментирую. Т.е имею две flash c нулевыми адресами. Если теперь сделать jump на нулевой адрес, то загрузчик начинает вечно крутиться, но если запретить использование маленькой flash:
FMI->CR = 0x010;
То после jump(a) начинает исполняться программа из большой flash, по нажатию клавиши reset снова запускается загрузчик.
Только вот если в основной программе ( большая flash) я "трогаю" регистры FMI, программа перестаёт запускаться ( в IAP было тоже самое). А задачка как раз в том, что бы загрузчик запускал основную программу, безо всяких изменений её кода.