Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: gcc компиляция с обратной связью
Форум разработчиков электроники ELECTRONIX.ru > Микроконтроллеры (MCs) > Cредства разработки для МК > GNU/OpenSource средства разработки
demiurg_spb
Ребята, кто-нибудь имеет положительный опыт по использованию опций компиляции с обратной связью?
Что-то пока не выходит каменный цветок...

-fprofile-arcs

-fprofile-generate
-fprofile-use

Хочу впихнуть невпихуемое:-)
klen
а что не выходит? чтото сгенеренное из выходного отверстия выходит или вообще неработает?
оч интересно разобратся с этим
demiurg_spb
Да не лезет в кринку вроде бы только, а очень хочется..

у меня так еле-еле помещается в 14К + 2К boot
Код
CFLAGS += --combine
CFLAGS += -fwhole-program

а с
Код
CFLAGS += -fprofile-arcs

имею
Код
xxx.elf section .text will not fit in region text
ld.exe: region text overflowed by 159476 bytes

Хоть gcc значительно дольше размышляет над исходниками.
Надо на другом проекте потренироваться видимо.
klen
мож я чето не понимаю, но мысль такая.

1. компилируется проектс опциями -fprofile-generate -fprofile-arcs -fprofile-values и тд
2. в скомпирированный код добавляется профилировцик - поеэтому код будет значительно больше чем обычная сборка.
3. запускается процесс, за время работы накапливается профилировачная информация - сохраняется в файл с расширением gcda
4. опять запускается компиляция с опциями fprofile-correction -fprofile-use -fbranch-probabilities -fprofile-values - уже используя статистику собранную профайлером из файла gcda.

вывод, как это провернуть на таргете с линуксом - понятно - главное чтоб в нем был интерфейс с возможностью записис вывода процесса куданить. а вот как на микроконтроллере это сделать - хрен его знает, мож под симулятором smile.gif

demiurg_spb
Цитата(klen @ Sep 6 2010, 20:26) *
мож я чето не понимаю, но мысль такая.
Да это несколько другое чем я понял с первого раза.
Я тоже об этом почитал внимательно.
Я то ведь понял что он без выполнения делает n-проходов компиляции
и всякий раз что-то подкручивает и сравнивает с уже полученным результатом. И запоминает лучший.
Раскатл губу, блинsad.gif
Целый день пытаюсь выкроить 40 байт в уже вылизанном проекте. Хрен-там...
klen
Цитата(demiurg_spb @ Sep 6 2010, 21:19) *
Целый день пытаюсь выкроить 40 байт в уже вылизанном проекте. Хрен-там...


давай помагу
demiurg_spb
Спасибо!
Я победил:-)
Переписал модуль rs485, отказался от указателей на регистры в дескрипторе порта в случае если в системе лишь один последовательный порт. Пришлось сделать макросы-обёртки для сохранения читабельности кода, но мне и так нравится.
Выиграл 224 байта!

PS: ничто так не стимулирует на изучение компилятора как закончившаяся память программsmile.gif
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.