реклама на сайте
подробности

 
 
 
Reply to this topicStart new topic
> Cortex-M3 (LPC1768) + Keil uVision3 3.90 - проблемы с прерываниями
koluna
сообщение Apr 16 2012, 10:39
Сообщение #1


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Здравствуйте!

Осваиваю Кейл и LPC1768.
Использую стандартную библиотеку драйверов (по крайней мере пока, чтобы освоиться немного) и CMSIS (скачал самые свежие с сайта NXP и интегрировал в проект).
Написал простейшую тестовую программку (мигаем светодиодом, шлем строку в порт). Все работает.
Попытался использовать таймер (прерывание по сравнению). Не работает.
Прерывание нужное генерируется, но хандлер, как я понимаю, не вызывается.
Смотрел дебаггером - попадаем в бесконечный цикл в стартапе (нужный вектор - нужный вектор, в стартапе отделил его на время, чтобы проверить).
Хандлер определен, но, такое ощущение, что почему-то не привязан к соответствующему вектору...
Пример от Кейла смотрел - в сырцах, вроде, все аналогично. Может настройки Кейла или со стартапом у меня что-то не так?

Проект в аттаче. Просьба помочь разобраться.
Прикрепленные файлы
Прикрепленный файл  test_LPC1768.zip ( 207.48 килобайт ) Кол-во скачиваний: 15
 


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post
_Артём_
сообщение Apr 16 2012, 11:16
Сообщение #2


Гуру
******

Группа: Свой
Сообщений: 2 128
Регистрация: 21-05-06
Пользователь №: 17 322



Цитата(koluna @ Apr 16 2012, 13:39) *
Здравствуйте!

Осваиваю Кейл и LPC1768.
Использую стандартную библиотеку драйверов (по крайней мере пока, чтобы освоиться немного) и CMSIS (скачал самые свежие с сайта NXP и интегрировал в проект).
Написал простейшую тестовую программку (мигаем светодиодом, шлем строку в порт). Все работает.
Попытался использовать таймер (прерывание по сравнению). Не работает.
Прерывание нужное генерируется, но хандлер, как я понимаю, не вызывается.
Смотрел дебаггером - попадаем в бесконечный цикл в стартапе (нужный вектор - нужный вектор, в стартапе отделил его на время, чтобы проверить).
Хандлер определен, но, такое ощущение, что почему-то не привязан к соответствующему вектору...
Пример от Кейла смотрел - в сырцах, вроде, все аналогично. Может настройки Кейла или со стартапом у меня что-то не так?

Проект в аттаче. Просьба помочь разобраться.


Попробуйте вписать строку:
Код
extern "C" void TIMER0_IRQHandler();

Go to the top of the page
 
+Quote Post
koluna
сообщение Apr 16 2012, 11:54
Сообщение #3


Профессионал
*****

Группа: Участник
Сообщений: 1 040
Регистрация: 3-01-07
Пользователь №: 24 061



Цитата(_Артём_ @ Apr 16 2012, 15:16) *
Попробуйте вписать строку:
Код
extern "C" void TIMER0_IRQHandler();


Спасибо большое! Работает, не учел name mangling в Си++...


--------------------
Благодарю заранее!
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 18th July 2025 - 17:48
Рейтинг@Mail.ru


Страница сгенерированна за 0.01376 секунд с 7
ELECTRONIX ©2004-2016