Цитата(xelax @ Apr 20 2011, 12:19)

Так камни с ядром avr имеют гарвардскую архитектуру и умеют исполнять код только из FLASH области, к сожалению это не cortex

.
И что с того?
В ОЗУ для каждого вектора пусть лежит адрес обработчика, а по реальному вектору прерывания во флеш пусть лежит буквально следующий код:
Код
lds zh, high( vector_i )
lds zl, low( vector_i)
ijmp
Где vector_i - переменная в ОЗУ.
Если с асмом туго, переместите все вектора в область бутлоадера, и состряпайте Сишные wrapper'ы:
Код
ISR( vect_xxx)
{
if (handlers[ vect_xxx ])
handlers[ vect_xxx ]();
}
где "handlers" массив в ОЗУ, где каждый элемент - адрес обработчика.
Цитата(V_G @ May 11 2011, 16:04)

Но не думаю, что IAR C умеет ее использовать для целей, потребных топикстартеру.
Все-таки 2 отдельных проекта реальнее, чем так извращаться на Си
Toolchain от IAR включает еще и транслятор Asm'а. Создаете .s файл, пишете в нем код таблицы векторов, и линкером кладете в секцию таблицы векторов вот и всего делов.
Цитата(vvppvv @ May 13 2011, 16:00)

__interrupt __raw void irqUSART0_RXC (void)
{
interrupt_entry ();
(* Ufunc_ptr)();
interrupt_exit ();
}
Не вижу смысла в ручных entry / exit.
Надо просто тупо вызвать функцию.