Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: не работают прерывания [решено]
Форум разработчиков электроники ELECTRONIX.ru > Cистемный уровень проектирования > Операционные системы > scmRTOS
abutorin
Добрый вечер.
Пытаюсь использовать прерывания в проекте с scmRTOS. При включении прерывания камень зависает. ПОтратив некоторое время понял что описаный мой обработчик прерывания неиспользуется, а используется обработчик по умолчанию (тот что бесконечнй цикл). Решил попробовать решить проблему кардинально, открыл файл startup.c, нашел там строчку
Код
#pragma weak USART1_IRQHandler = Default_Handler

(меня интересует прерывание модуля USART)
закомментировал ее, чтобы проверить корректно ли отрабатывается дериктива #pragma weak. Компилятор начал ргатся что отсутствует оприсание функии USART1_IRQHandler. Вообщем стало понятно почему уходить в бесконечный цикл.
Вот теперь вопрос: Почему компилятор(линкер) может некорректно отрабатывать?
Заранее спасибо за помощь.

PS. использую "ARM Sourcery Linux GCC C++ Linker"


Проблему решил. )

Лобавил OS_INTERRUPT перед определением обработчика и все получилос.
haker_fox
QUOTE (abutorin @ Jan 14 2013, 02:19) *
Лобавил OS_INTERRUPT перед определением обработчика и все получилос.

А камешек-то какой?)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.