Цитата(Skaf @ Nov 15 2011, 18:11)

При компиляции ошибок и предупреждений нет. Однако протокол работает не правильно. Если обработчик прерывания от SPI перенести в файл SPIProtocol.c - то все начинает работать нормально.
1. А вы уверены что предупреждений нет? Может быть у вас просто уровень предупреждений вообще отключен и компилятор их не показывает? Попробуйте максимально возможный уровень включить.
2. Компилятору по барабану, в каком файле что расположено, если грамотно произведено объявление общих функций и переменных (через директиву extern). Иногда бывают зависимые вещи, которые могут зависеть от порядка следования хедер-файлов в головном инклуде. Но если у вас меняется результат(работает-неработает) от порядка следования си-файлов - это нихт гут.
3. Подозреваю, что никто не ответит на ваш вопрос более конкретно до того как вы не предоставите проект, точнее два- работающий и неработающий. Может быть проблема вовсе не там, где вы ее ищете.