Инициализация такая:
COM1 = AT91C_BASE_US1;
AT91F_PIO_CfgPeriph(
AT91C_BASE_PIOA,
((unsigned int) RXD ) |
((unsigned int) TXD ) ,
0 );
AT91F_PMC_EnablePeriphClock ( AT91C_BASE_PMC, 1<AT91F_US_Configure (COM1, MCK, AT91C_US_ASYNC_MODE, USART_BAUD_RATE , 0);
COM1->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;
USART_INTERRUPT_LEVEL,AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart_c_irq_handler);
AT91F_AIC_ConfigureIt (AT91C_BASE_AIC, AT91C_ID_US1, USART_INTERRUPT_LEVEL, AT91C_AIC_SRCTYPE_INT_HIGH_LEVEL, Usart_c_irq_handler);
AT91F_AIC_EnableIt (AT91C_BASE_AIC, AT91C_ID_US1);
AT91F_US_EnableIt(COM1, AT91C_US_TXRDY | AT91C_US_RXRDY );
В итоге не вызывается Usart_c_irq_handler ни по окончании передачи (просто в регистр кидаю и смотрю на осциллографе), ни по приему (на ноге сигнал есть)