Цитата(Olegovich @ Sep 20 2005, 16:45)
Цитата(VladislavS @ Sep 20 2005, 08:57)
prottoss прав, в IAR размещение сегментов в памяти надо ручками в xcl править. В примере с Atmel лежит экселевский скрипт, который это xcl генерит.
Но мне кажется лучше это сделать ручками для полного контроля и понимания.
Возможно (а скорее точно), ещё надо будет написать свой cstartup (ассемблерный файл который проводит первичную инициализацию и в котором записан переход на начало кода main).
Ну и останется придумать протокол для загрузки и правила входа в загрузчик, когда пользовательское приложение уже будет загружено. // я загрузчик кстати писал

Не вижу смысла писать что то еще на ассемблере.
Пишем основную программу, начинающуюся с void main(void) или int main(void), кому как угодно.
За тем создаем сегмент кода, где будет располагаться бутлоадер. Пишем бутлоадер
void main(void)
{ bootloader();
......// основная программа
}
void bootloader(void)
{ if(условие для начала перепрошивки)
{ .......// шьем основную память
}
else
{ return;
}
}