Цитата(IEC @ Dec 28 2006, 12:13)

Переход из загрузчика в тело программы: JMPCODE(0x0000);
В теле программы возврат векторов:
/* Разрешение изменения векторов прерываний */
/* Перемещение векторов ив загрузочного сектора флэш-памяти */
MCUCR = 0x01; // MCUCR |= (1<<IVCE);
MCUCR = 0x00; // MCUCR |= (1<<IVSEL);
Такой подход имеет один недостаток - "основная" программа должна знать, что работает совместно с загрузчиком. Если же обратное переключение таблицы мы перенесем в загрузчик, то единственой особенностью "основной" программы останется огнраничение по размеру:
Код
__disable_interrupt();
MCUCR = 0x01; // MCUCR |= (1<<IVCE);
MCUCR = 0x00; // MCUCR |= (1<<IVSEL);
(void (*)())0x0000();