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

 
 
> Не ставятся точки останова в теле прерывания.
Вячик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



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

 


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


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