|
...
//Инициализируем UART0
PINSEL0=0x00000005; //Подключить RxD0 и TxD0 к UART0
U0LCR=0x83; //8 битов данных,не проверять четность,1 стоп-бит,DLAB -> 1
U0DLL=32; //115200 Бит/Сек., при этом VPB Clock = (14.7456 MHz * 4)
U0DLM=0; //115200 Бит/Сек., при этом VPB Clock = (14.7456 MHz * 4)
U0FCR=0x07; //Разрешить и сбросить FIFO для приемника и передатчика.
//Глубина буферов FIFO - по одному байту на буфер
U0LCR=0x03; //DLAB -> 0
U0IER=0x01; //разрешить прерывания от UART0 по приему символа и тайм-ауту
VICVectCntl0=0x00000020; //Разрешить нулевой слот и считать, что прерывания от этого
//слота имеют нулевой номер
VICVectAddr0=(unsigned int)uart0_handler; //Загрузить адрес обработчика в слот
VICIntEnable = 0x00000040; //Разрешить прерывание от UART0
...
В отладчике видно, что при приходе символа обработчик просто не вызывается. Если ту же программу переписать с использованием FIQ, то она работает нормально. В чем может быть проблема ?