Цитата(nameless @ Jan 10 2007, 15:13)

Не могли бы Вы показать как AIC при этом настраивать? У меня никак не получается.
Восприму вопрос о моих возможностях как просьбу.
Например вот так:
Код
// open UDP interrupt
AT91F_AIC_ConfigureIt( AT91C_BASE_AIC, m_ID, m_uPriority, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, IrqHandler );
AT91F_AIC_EnableIt( AT91C_BASE_AIC, m_ID );
Перед этим нужно настроить события, по которым AIC будет генерить прерывание:
Код
AT91F_UDP_DisableIt( pstUDP, ~m_uEvents ); // Disable all events
AT91F_UDP_InterruptClearRegister( pstUDP, (UINT)-1 ); // Clear all events
AT91F_UDP_EnableIt( pstUDP, m_uEvents ); // Enable events
Возможно, первые две строки - лишние, добавил на всякий случай.
Всё вышеописанное - строго IMHO. И вообще проект пока не готов, и находится в стадии отладки. Например, я пока не добился корректного отрабатывания прерывания от конечных точек.
Интересный исходник написал
jjoannic -> на странице
AT91SAM Application Notes лежит архив
AT91 USB Framework - Core 1.02 + MSD 1.0, в котором есть файл udp.c. В нём есть обработчик прерывания. Жаль проект не для IAR EWARM