abutorin 0 13 января, 2013 Опубликовано 13 января, 2013 (изменено) · Жалоба Добрый вечер. Пытаюсь использовать прерывания в проекте с scmRTOS. При включении прерывания камень зависает. ПОтратив некоторое время понял что описаный мой обработчик прерывания неиспользуется, а используется обработчик по умолчанию (тот что бесконечнй цикл). Решил попробовать решить проблему кардинально, открыл файл startup.c, нашел там строчку #pragma weak USART1_IRQHandler = Default_Handler (меня интересует прерывание модуля USART) закомментировал ее, чтобы проверить корректно ли отрабатывается дериктива #pragma weak. Компилятор начал ргатся что отсутствует оприсание функии USART1_IRQHandler. Вообщем стало понятно почему уходить в бесконечный цикл. Вот теперь вопрос: Почему компилятор(линкер) может некорректно отрабатывать? Заранее спасибо за помощь. PS. использую "ARM Sourcery Linux GCC C++ Linker" Проблему решил. ) Лобавил OS_INTERRUPT перед определением обработчика и все получилос. Изменено 13 января, 2013 пользователем abutorin Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
haker_fox 60 14 января, 2013 Опубликовано 14 января, 2013 · Жалоба Лобавил OS_INTERRUPT перед определением обработчика и все получилос. А камешек-то какой?) Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться