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

 
 
> организация проэкта gcc, проект с использованием gcc
factorial
сообщение Sep 29 2011, 18:36
Сообщение #1





Группа: Новичок
Сообщений: 7
Регистрация: 14-01-09
Пользователь №: 43 376



При переносе проекта из IAR в gcc возник вопрос. Помогите разобраться.
Припустим у меня есть "драйвер", который
просто состоит из "с" и "h" файлов, не под ось, а просто, скажем к индикатору.
В "h" файле описаны порты ну и декларация функций.
В "с" файл также включен файл с описанием задержек, которые зависят от проца и от
частоты тактирования. В драйвере описаны как функции, которые используються
проэктом, так и функции, которые этим конкретным проектом не используються.
Так как gcc, в отличие от иара, на этапе компиляции закидывает в обьектные файлы
все функции без исключений, то это влияет на размер выходного бинарника.
Ну в принципе, хули там - делай драйер библиотекой, разбивай сишный файл
на множество сишных файликов, в каждой по своей фунции и дело с концом.
Но тут, вопервых, много гемора, во вторых, как вести отдельно поддержку драйевра,
ведь он зависит от конкретных задержек, описанных в файле, который тоже где-то
должен поддерживаться (может измениться, потом наведи лад со всеми этими библами).
Получаеться хрень какаето - что бы убрать из кода не используемые функции, нужно
проделать кучу лишних движений, плюс к этому это все нужно поддерживать, да если еще
и куча проэктов на этом висит, то это пипец.... Как это лучше организовать с ипосльзованием gcc?
wacko.gif
Go to the top of the page
 
+Quote Post
 
Start new topic
Ответов
factorial
сообщение Oct 3 2011, 21:30
Сообщение #2





Группа: Новичок
Сообщений: 7
Регистрация: 14-01-09
Пользователь №: 43 376



demiurg_spb
Цитата
А чтоб вообще заполировать:
CFLAGS += --combine
CFLAGS += -fwhole-program

естественно. нужно не просто добавить этот флаг а и передать все исходники компилятору разом, а не кормить по одному...



Бомба это реально, что нужно!!! Вы имели ввиду, что оптимизация будет идти не над каждым файлом отдельно, а с учетом всех файлов, я правильно понял???
Если да, то не зря после компиляции произошло сокращение: 60140 - 57596 = еще на 2544 байта меньше! Хоть что-то...., но все равно, как-то маловато.
Go to the top of the page
 
+Quote Post
demiurg_spb
сообщение Oct 4 2011, 04:44
Сообщение #3


неотягощённый злом
******

Группа: Свой
Сообщений: 2 746
Регистрация: 31-01-08
Из: Санкт-Петербург
Пользователь №: 34 643



Цитата(factorial @ Oct 4 2011, 01:30) *
Бомба это реально, что нужно!!! Вы имели ввиду, что оптимизация будет идти не над каждым файлом отдельно, а с учетом всех файлов, я правильно понял???
Правильно. Читайте доки...
http://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html

CFLAGS += -Wl,--relax
CFLAGS += --param inline-call-cost=2


--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
Go to the top of the page
 
+Quote Post

Сообщений в этой теме
- factorial   организация проэкта gcc   Sep 29 2011, 18:36
- - Idle   ЦитатаYou can enable the toolchain to remove unuse...   Sep 29 2011, 19:13
|- - demiurg_spb   А чтоб вообще заполировать: CFLAGS += --combine C...   Sep 30 2011, 05:02
|- - factorial   после добавления CFLAGS += -ffunction-sections LD...   Oct 2 2011, 21:57
|- - demiurg_spb   Удалите руками все старые объектники и файлы завис...   Oct 3 2011, 04:45
|- - factorial   Добавление либы LDFLAGS += -lm на удивление помогл...   Oct 3 2011, 09:48
|- - demiurg_spb   Цитата(factorial @ Oct 3 2011, 13:48) Доб...   Oct 3 2011, 12:03
|- - Сергей Борщ   QUOTE (factorial @ Oct 3 2011, 12:48) LDF...   Oct 3 2011, 12:19
|- - factorial   Ррр, Работает как с --gc-sections, так и с -gc-sec...   Oct 3 2011, 17:47
|- - factorial   А ну и -fpack-struct -fshort-enums...   Oct 3 2011, 19:04
- - factorial   Добавление -mcall-prologues еще -2048 байт....   Oct 3 2011, 22:38
- - Сергей Борщ   QUOTE (factorial @ Oct 3 2011, 22:04) А н...   Oct 4 2011, 06:18
- - defunct   Цитата(Сергей Борщ @ Oct 4 2011, 09:18) У...   Oct 4 2011, 21:49
- - Сергей Борщ   QUOTE (defunct @ Oct 5 2011, 00:49) Для A...   Oct 5 2011, 05:43


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

 


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


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