Я с кейлом и иаром не работал, но примеры видел. В тех примерах у кейла был отдельный файл
irq_arm.c, в котором были расположены обработчики исключений.
Так как сделали вы - тоже можно. Вы объявили для каждого из обработчиков прерывания минимальную заглушку, зацикливающую выполнение программы. Когда станет надо использовать прерывание (например IRQ), удалите из файла
startup.s строчку
Код
IRQ_Handler: B IRQ_Handler
,вместо неё верните строчку
Код
EXTERN IRQ_Handler
и добавьте в какой-нибудь из си-файлов обработчик прерывания:
Код
void IRQ_Handler(void) __irq
{
...
}
Или же можно объявить в
startup.s обработчики прерываний как WEAK, то есть, слабые. В этом случае менять
startup.s при добавлении своего обработчика станет не надо, достаточно будет создать свой обработчик, и он будет задействован вместо WEAK-обработчика. К сожалению, я не знаю, как это делать в кейле.
Если бы я знал, что такое электричество...