Цитата(mempfis_ @ Aug 16 2010, 19:44)

Сегодня всё проверил - приложение вызванное из загрузчика запустилось и работает как положено

Спасибо за помощь

КАК у вас это получилось?! Вы даже про вектора не спрашивали в этой ветке. Или у вас основное приложение работает без прерываний?
Цитата(mempfis_ @ Jul 29 2010, 15:31)

Вот тут мне не всё понятно но спрашивать буду когда дойдёт до этого дело.
А можно мне спросить, что нужно сделать с этими векторами?
У меня похожий контроллер, AT91SAM7X256:
ROM: 0x00100000-0x0013FFFF, RAM : 0x00200000-0x0020FFFF
После старта, на нулевой адрес отображается флэш.
После ремапа с нулевого адреса видна ОЗУ.
К примеру, беру 2 одинаковых проекта (под IAR 6) работающих "мигалок". Оба со своими стартапами (которые мне пока вообще не понять)
1й будет бутлоадером, будет лежать в начале флеш.
В нем пишу так:
Код
#define PROG_JUMP_ADDRESS (0x00110000)
//запрет всех прерываний
AT91C_BASE_AIC->AIC_IDCR = 0xFFFFFFFF;
//запуск основной программы(выход из bootloader)
work_start_address = (void(*)(void))PROG_JUMP_ADDRESS;
work_start_address();
В нем же, в этом тестовом примере в low_level_init сделан ремап RAM.
_________________________________
Беру 2й проект, ставлю в Linker-> Options:
Код
define symbol __ICFEDIT_intvec_start__ = 0x00110000;
/*-Memory Regions-*/
define symbol __ICFEDIT_region_ROM_start__ = 0x00110000;
Загружаю стандартной самбой 1й бинарник с адреса 100000, второй с адреса 110000. Дергаю питание.
Запускается 1я мигалка, прыгает на 0х110000, запускается вторая мигалка(рабочая). Вижу отладочный текст в консоли, все ОК. Но рабочая программа доходит видимо до первого прерывания и виснет.
Что нужно сделать еще?
Заранее спасибо за ответы.