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

 
 
> Условная компиляция в WinAVR
injen-d
сообщение Apr 17 2008, 16:54
Сообщение #1


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

Группа: Свой
Сообщений: 91
Регистрация: 10-10-07
Из: Воронежа
Пользователь №: 31 250



Хочу, чтоб компилился кусок кода(обработчик прерывания), только если используется нужная мне функция(которая собственно использует эти прерывания).
В CodeVisionAVR есть удобное средство:
Код
#if funcused имя_функции_без_скобок

А вот в GCC, как ни искал - ничего похожего не нашел.
Все бы ничего, но объявленный обработчик прерывания линкуется, как и положено, в любом случае.
Код
ISR(USART_UDRE_vect)
{}

Есть ли альтернатива #if funcused ? Очень хочется, чтоб критерием выбора компилировать/не компилировать был только факт использования в итоговом(после выброса мусора) коде какой-либо, нужной мне функции.


--------------------
- Бендер, ты же робот, зачем тебе пить пиво?
- Незачем! Я могу бросить в любой момент!
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
Terminator
сообщение Apr 18 2008, 02:32
Сообщение #2


Местный
***

Группа: Участник
Сообщений: 209
Регистрация: 7-12-04
Из: Томск
Пользователь №: 1 382



Разве обычный ifdef не сработает?

типа
#ifdef имя_функции_без скобок
#endif
Go to the top of the page
 
+Quote Post
AHTOXA
сообщение Apr 18 2008, 03:09
Сообщение #3


фанат дивана
******

Группа: Свой
Сообщений: 3 387
Регистрация: 9-08-07
Из: Уфа
Пользователь №: 29 684



Цитата(Terminator @ Apr 18 2008, 08:32) *
Разве обычный ifdef не сработает?


Нет, функция может быть defined, но не used.

По сути вопроса - вряд ли. Препроцессор совершенно не в курсе, какая функция используется, а какая - нет.


--------------------
Если бы я знал, что такое электричество...
Go to the top of the page
 
+Quote Post
Aleksandr Barano...
сообщение Apr 18 2008, 15:24
Сообщение #4


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

Группа: Участник
Сообщений: 169
Регистрация: 31-08-05
Из: New York
Пользователь №: 8 118



Цитата(AHTOXA @ Apr 17 2008, 23:09) *
Нет, функция может быть defined, но не used.

По сути вопроса - вряд ли. Препроцессор совершенно не в курсе, какая функция используется, а какая - нет.

Более того, если не принять специальных мер - неиспользуемые функции успешно прилинкуются и включатся в hex-файл.


--------------------
ASB
Go to the top of the page
 
+Quote Post



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

 


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


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