Цитата(xelax @ Feb 28 2011, 13:26)

Может дело не в uart'е? Вы же не зря атмегу2560 выбрали, вам известно что у gcc по дефолту проблемы с использованием кода в старших 128к? Без заморочек с trampoline секцией, вызовы функций(находящихся в старших 128к) по указателю приводит к попаданию на левые адреса. Я не утверждаю что проблема в этом, но как вариант проверить стоит.
То есть прерывания есть, но в обработчики, которые вне тела прерывания(в супер петле, ну или что там вы используете) вы не попадаете.
Не судите строго, но я уже перестаю чего-либо понимать. Размер адреса у UART2 и UART3 по размерности такие же, как и у UART0 и UART1 (в моём случае UART0 - 0000041E, UART1 - 00000484, UART2 - 000004EE, UART3 - 00000554).
Ставил точки прерывания в таблице адресов прерывания, на все строки. Та же картина, UART0 и UART1 остановы есть, UART2 и UART3 остановов нет. Ладно, переход из таблицы прерываний не туда (куда? и если не туда, то невероятно, что программа не рушится), но должна же программа прийти в таблицу прерывания
Ни когда не работал с trampoline секцией. Где об этом почитать, поисковики куда-то ни туда направляют.