Цитата(Shuuura @ Dec 21 2005, 14:37)

Пытаюсь переделать образец с AT91.com для работы через прерывания. В половине случаев при старте возникает Spurious Interrupt. Есть предположение что как-то неправильно включаю превывание от endpoint0. Посмотрите, может кто сталкивался
void UDP_interrupt()
{
AT91_REG isr = pUDP->UDP_ISR;
isr &= pUDP->UDP_IMR;
if (isr & AT91C_UDP_ENDBUSRES) {
Помнится в UDP_IMR нету битика AT91C_UDP_ENDBUSRES - сброс шины событие немаскируемое. Соответственно, Ваш обработчик после 'isr & pUDP->UDP_IMR' событие сброса не видит -> ложное прерывание.