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

 
 
> Не ставятся точки останова в теле прерывания.
Вячик13
сообщение Sep 16 2015, 07:03
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 17-01-12
Пользователь №: 69 604



Имеется IAR 6.50 для ARM. Тестовый проект для STM32F103VCT6 (почти пустой). В нём имеются файлы: main.cpp,
main.h,
startup_stm32f10x_hd.s,
stm32f10x_vector.c,
stm32f10x_it.c,
stm32f10x_it.h.

Задействовано одно прерывание - TIM3_IRQHandler.

При отладке наблюдается интересный эффект - если обработчик прерывания находится в файле main.cpp, то точки останова в его тексте ставятся и отладчик по ним останавливается. А если я его переношу в файл stm32f10x_it.c, то точки останова не ставятся и отладчик "улетает" (скорее всего при срабатывании прерывания). Такое впечатление, что обработчик при линковании не включается в код программы.

Оптимизация при компиляции отключена.

Текст обработчика:

extern "C" void TIM3_IRQHandler(void) {
TIM3_SR_bit.UIF=false; //Сброс флага прерывания таймера ADC
it=12;
ty=14;
tg=it+ty;
}

Хотя пробовал и без "extern "C" и в файле main.cpp он всё равно работает.

Почему?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Вячик13
сообщение Sep 16 2015, 10:47
Сообщение #2


Участник
*

Группа: Участник
Сообщений: 71
Регистрация: 17-01-12
Пользователь №: 69 604



Спасибо всем. Проблема решилась. Оказывается, действительно, нужно добавлять "extern "C", если обработчик находится в другом файле, который имеет расширение ".с", а не ".cpp".
Go to the top of the page
 
+Quote Post
zltigo
сообщение Sep 16 2015, 11:27
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 13 372
Регистрация: 27-11-04
Из: Riga, Latvia
Пользователь №: 1 244



QUOTE (Вячик13 @ Sep 16 2015, 13:47) *
Спасибо всем. Проблема решилась. Оказывается, действительно, нужно добавлять "extern "C", если обработчик находится в другом файле, который имеет расширение ".с", а не ".cpp".

Собственно обработчик здесь ни причем. Это относится ко всем, ибо в С++ имена замангаливаются ввиду поддержки перегрузки функций.

P.S.
Пост отредактировал. Что-то затмение нашло sad.gif



--------------------
Feci, quod potui, faciant meliora potentes
Go to the top of the page
 
+Quote Post



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

 


RSS Текстовая версия Сейчас: 31st July 2025 - 12:37
Рейтинг@Mail.ru


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