Първо да посоча че бях допуснал грешка в кода който постнах. Надявам се да си направил copy-paste след като я оправих.
Второ в startup файла който ползваш се извиква main с вдигнат I bit в CPSR. Т.е. прекъсванията ти са забранени глобално. Освен ако в main някъде в началото не го сваляш. Махни редовете:
И добави непосредствено преди "b main" това:
Твоят startup те оставя в user mode. Като за начало ползвай supervisor mode.
.set IRQ_STACK_SIZE, 0X00000080
Може да се окаже малко в един момент.
И нещо което е препоръчително - добави си обработчик на Default вектора.
Преди "b main"
Добавяш:
И някъде след "b main" самия обработчик:
разбира се в началото на crt.s трябва да имаш и: