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

 
 
> Проблемы с C++, C++ class
Brain13
сообщение Feb 15 2011, 07:30
Сообщение #1


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



Доброго времени суток!

Пишу на arm-none-eabi для STM32. Использую startup код из примера в библиотеке от ST. Хочу реализовать modbus в виде класса. Если я пытаюсь использовать классы в обработчике прерываий, при компиляции вылезают ошибки. Я так понял что файл stm32f10x_it.c компилится с помошью компилятора С и с классами он не работает. Если переименовываю файл в stm32f10x_it.cpp, он компилится с помощью g++, ошибок нет. Но когда происходит прерывание проц уходит в DefaultHandler и зависает в бесконечном цикле. Если возвращаю имя файла на .c, убираю работу с классами, все компилится нормально, вызывается правильный обработчик прерывания.

Как прикрутить классы в обработчики прерываний?
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов (1 - 2)
Сергей Борщ
сообщение Feb 15 2011, 07:47
Сообщение #2


Гуру
******

Группа: Модераторы
Сообщений: 8 455
Регистрация: 15-05-06
Из: Рига, Латвия
Пользователь №: 17 095



QUOTE (Brain13 @ Feb 15 2011, 09:30) *
Если переименовываю файл в stm32f10x_it.cpp, он компилится с помощью g++, ошибок нет. Но когда происходит прерывание проц уходит в DefaultHandler и зависает в бесконечном цикле.
Name mangling. Объявите ваш обработчик с квалификатором extern "C".


--------------------
На любой вопрос даю любой ответ
"Write code that is guaranteed to work, not code that doesn’t seem to break" (C++ FAQ)
Go to the top of the page
 
+Quote Post
Brain13
сообщение Feb 15 2011, 08:07
Сообщение #3


Участник
*

Группа: Участник
Сообщений: 65
Регистрация: 28-08-09
Пользователь №: 52 078



Цитата(Сергей Борщ @ Feb 15 2011, 10:47) *
Name mangling. Объявите ваш обработчик с квалификатором extern "C".

Спасибо, помогло. 08.gif
Go to the top of the page
 
+Quote Post

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

 


RSS Текстовая версия Сейчас: 22nd July 2025 - 14:04
Рейтинг@Mail.ru


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