Все, вроде понимание появилось, но прерывания все-равно не хотят работать

Подскажите пожалуйста, что делаю не так, или чего не хватает?
Настраиваю прерывания IRQ таким образом
Код
void Irq_init
{
PINSEL0 = 0x00100000; // Настраиваю пин P2.10 на внешнее прерывание EINT0
VICIntSelect &= ~0x00004000; // Настраиваю прерывание по слоту 14 как IRQ
VICIntEnable |= 0x00004000; // Делаю это прерывание доступным
VICVectCntl14 = 0x05; // Настраиваю приоритет прерывания (наверное)
VICVectAddr14 = (tU32)Irq_Handler; // Указываю адрес обработчика
}
void Irq_Handler(void) __attribute__((interrupt("IRQ"))); // Указываю компилятору, что это IRQ- обработчик
Собственно, обработчик:
void Irq_Handler(void)
{
FIO2DIR |= P2i00;
FIO2SET |= P2i00; // Мигаю светодиодом
EXTINT = 0x00000002;//Clear the peripheral interrupt flag
VICVectAddr = 0x00000000;//Dummy write to signal end of interrupt
}
Причина редактирования: Оформление цитаты исходника.