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

 
 
> Как сигналить из прерывания в scmRTOS?
_Макс
сообщение Apr 21 2010, 10:17
Сообщение #1


Знающий
****

Группа: Участник
Сообщений: 691
Регистрация: 24-05-07
Пользователь №: 27 945



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

В main.cpp объявил свой экземпляр класса TEventFlag. Какой включить заголовочный файл в файл с обработчиками прерывания stm32f10x_it.c, чтобы компилятор не ругался на неизвестный идентификатор при попытке просигналить функцией SignalISR()?

Пробовал выносить объявление экземпляра TEventFlag в новый файл h и включать его в main.cpp и stm32f10x_it.c, ругается компоновщик на двойное определение в файлах компилятора.

Что я делаю не правильно? Какая правильно пользоватся заголовочными файлами, чтобы все работало?

Спасибо!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
baralgin
сообщение Apr 23 2010, 06:02
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 92
Регистрация: 23-12-08
Из: Кишинёв
Пользователь №: 42 680



Цитата(dxp @ Apr 23 2010, 08:25) *
А просто выдать указатель - так это выдать полный доступ.

Ну так extern тоже даст полный доступ(даже ещё полнее). В этом и вопрос что лучше smile.gif . Этот вопрос из серии "можно ли пользоваться операторм безусловного перехода или нет". extern не из той же серии?
Go to the top of the page
 
+Quote Post
dxp
сообщение Apr 23 2010, 08:47
Сообщение #3


Adept
******

Группа: Свой
Сообщений: 3 469
Регистрация: 6-12-04
Из: Novosibirsk
Пользователь №: 1 343



Цитата(baralgin @ Apr 23 2010, 13:17) *
Ну так extern тоже даст полный доступ(даже ещё полнее). В этом и вопрос что лучше smile.gif .

Даст. А разве не это надо? Как еще создать глобальный объект? А если вам надо объект спрятать внутри единицы трансляции, то статик в сочетании с функцией, возвращающей указатель на объект и имеющей глобальную область видимости, приведет ровно к такому же результату. Только этот вариант более запутанный. Зачем это?

Если хотите реально закрыть какие-то данные и/или предоставить ограниченный интерфейс, то тут придумывать ничего не надо, надо использовать классы, представление помещать в закрытую (private) часть, а интерфейс - в открытую (public).

Цитата(baralgin @ Apr 23 2010, 13:17) *
Этот вопрос из серии "можно ли пользоваться операторм безусловного перехода или нет". extern не из той же серии?

Нет, не из этой. extern - совершенно необходимое средство для связывания имен, без него никуда. А goto - это средство для решения частного случая (выход из вложенных циклов), больше в нем нигде необходимости не возникает.


--------------------
«Отыщи всему начало, и ты многое поймёшь» К. Прутков
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- _Макс   Как сигналить из прерывания в scmRTOS?   Apr 21 2010, 10:17
- - AHTOXA   Создайте отдельный заголовочный файл, например, ma...   Apr 21 2010, 10:38
- - Сергей Борщ   Цитата(_Макс @ Apr 21 2010, 13:32) Что я ...   Apr 21 2010, 10:43
- - _Макс   Для чего используется extern? Моя проблема в том, ...   Apr 21 2010, 11:10
|- - dxp   Цитата(_Макс @ Apr 21 2010, 18:25) Для че...   Apr 21 2010, 11:43
|- - _Макс   Цитата(dxp @ Apr 21 2010, 14:58) А как бы...   Apr 21 2010, 18:12
|- - dxp   Цитата(_Макс @ Apr 22 2010, 01:27) Думал ...   Apr 22 2010, 02:23
- - _Макс   Действительно, это был пробел в моих знаниях. Что ...   Apr 22 2010, 10:05
|- - dxp   Цитата(_Макс @ Apr 22 2010, 17:20) Что оз...   Apr 22 2010, 11:04
- - _Макс   Вы правы. Прочитал вот это: ЦитатаСпецификатор sta...   Apr 22 2010, 12:07
|- - dxp   Цитата(_Макс @ Apr 22 2010, 19:22) Прочит...   Apr 22 2010, 12:53
- - _Макс   Спасибо!   Apr 22 2010, 14:10
- - baralgin   Цитата(dxp @ Apr 22 2010, 16:08) Чтобы га...   Apr 22 2010, 18:58
|- - dxp   Цитата(baralgin @ Apr 23 2010, 02:13) что...   Apr 23 2010, 05:10
- - baralgin   Цитата(dxp @ Apr 23 2010, 12:02) Только э...   Apr 23 2010, 12:10


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

 


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


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