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

 
 
> организация проэкта 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
Ответов
Сергей Борщ
сообщение Oct 4 2011, 06:18
Сообщение #2


Гуру
******

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



QUOTE (factorial @ Oct 3 2011, 22:04) *
А ну и -fpack-struct
Уберите. Вы заставляете к каждому полю любой структуры обращаться побайтово. Если в каких-то местах программ и требуется упаковка структур (например, при организации протокола обмена), то правильнее там объявить нужную структуру с атрибутом packed:
CODE
typedef struct my_type
{
.....
} __attribute__((packed));



QUOTE (factorial @ Oct 4 2011, 00:30) *
Бомба это реально, что нужно!!! Вы имели ввиду, что оптимизация будет идти не над каждым файлом отдельно, а с учетом всех файлов, я правильно понял???
Да но есть некоторые но: 1) это работает только с С-программами (С++ забудьте) 2)в более свежих версиях этого механизма уже нет - там появился механизм LTO (link-time optimization).


--------------------
На любой вопрос даю любой ответ
"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
defunct
сообщение Oct 4 2011, 21:49
Сообщение #3


кекс
******

Группа: Свой
Сообщений: 3 825
Регистрация: 17-12-05
Из: Киев
Пользователь №: 12 326



Цитата(Сергей Борщ @ Oct 4 2011, 09:18) *
Уберите. Вы заставляете к каждому полю любой структуры обращаться побайтово.

Для AVR это не важно. Все структуры и так упакованы побайтово.
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   demiurg_spb ЦитатаА чтоб вообще заполировать: CFLA...   Oct 3 2011, 21:30
|- - demiurg_spb   Цитата(factorial @ Oct 4 2011, 01:30) Бом...   Oct 4 2011, 04:44
- - factorial   Добавление -mcall-prologues еще -2048 байт....   Oct 3 2011, 22:38
- - Сергей Борщ   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 - 12:40
Рейтинг@Mail.ru


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