|
uint24_t |
|
|
|
 |
Ответов
|
Jan 26 2010, 10:16
|

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

|
Цитата(Злодей @ Jan 26 2010, 11:19)  Бутлодер для mega128 малость не влезает в 2k флэша, а нужно впихнуть. 1) Есть множество ключей компиляции, игры с которыми позволяют уменьшить код. 2) Попробуйте самый свежий WinAVR 20100110 - в нем сильно оптимизирована работа с eeprom. 3) Также очень помогает встраивание функций, вызываемых один раз. 4) Можно оптимизировать сам исходник. AVR231 у меня влез в 2К с запасом. Вот мои ключи: Код CFLAGS += -ffunction-sections CFLAGS += -fdata-sections
# code optimisation CFLAGS += -fno-ivopts #CFLAGS += -mcall-prologues #CFLAGS += -fno-tree-scev-cprop #CFLAGS += -fno-split-wide-types #CFLAGS += -fno-inline-small-functions
CFLAGS += --param inline-call-cost=0 <- это число подобрать. #CFLAGS += -fno-reorder-blocks #CFLAGS += -fno-reorder-blocks-and-partition #CFLAGS += -fno-reorder-functions #CFLAGS += -fno-toplevel-reorder CFLAGS += -fno-move-loop-invariants #CFLAGS += -fno-unroll-loops #CFLAGS += -fno-unroll-all-loops #CFLAGS += --param max-unroll-times=0
LDFLAGS += -Wl,--gc-sections LDFLAGS += -Wl,--relax попробуйте раскомментировать/закомментировать некоторые из них.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 27 2010, 10:37
|

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

|
Цитата(Сергей Борщ @ Jan 26 2010, 13:16)  Вот мои ключи... Есть такой ключ, что всем ключам ключ: Код CFLAGS += --combine CFLAGS += -fwhole-program
--------------------
“Будьте внимательны к своим мыслям - они начало поступков” (Лао-Цзы)
|
|
|
|
|
Jan 27 2010, 10:52
|

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

|
Цитата(demiurg_spb @ Jan 27 2010, 12:37)  Есть такой ключ, что всем ключам ключ: Код CFLAGS += --combine CFLAGS += -fwhole-program Вчера потратил 2 часа, пытаясь собрать с его помощью первый попавшийся проект на С++. Так и не удалось. Ругался undefined variable на все глобальные объекты и переменные. Без этого ключа все собирается и работает.
--------------------
На любой вопрос даю любой ответ"Write code that is guaranteed to work, not code that doesn’t seem to break" ( C++ FAQ)
|
|
|
|
|
Jan 28 2010, 09:51
|

Частый гость
 
Группа: Участник
Сообщений: 149
Регистрация: 29-04-08
Из: Петербург
Пользователь №: 37 142

|
Цитата(Сергей Борщ @ Jan 27 2010, 13:52)  Вчера потратил 2 часа, пытаясь собрать с его помощью первый попавшийся проект на С++. Так и не удалось. Ругался undefined variable на все глобальные объекты и переменные. Без этого ключа все собирается и работает. Ключ ломает стереотипы. Отпадают цели вроде "$(OBJDIR)/%.o : %.c", т.к. по одному они компилиться не могут больше. # Compile: create object files from C source files. # $(OBJDIR)/%.o : %.c # @echo # @echo $(MSG_COMPILING) $< # $(CC) -c $(ALL_CFLAGS) $< -o $@ compile: $(CC) $(CFLAGS) $(CDEFS) $(LDFLAGS) $(SRC) -o $(TARGET).elf ...Или дело даже не в этом, а в том, что у Вас C++?
Сообщение отредактировал Злодей - Jan 28 2010, 09:53
|
|
|
|
Сообщений в этой теме
Злодей uint24_t Jan 26 2010, 09:19 demiurg_spb Цитата(Злодей @ Jan 26 2010, 12:19) Если ... Jan 26 2010, 09:31   demiurg_spb Using the GNU Compiler Collection. For gcc version... Jan 27 2010, 12:00    Сергей Борщ Цитата(demiurg_spb @ Jan 27 2010, 14:00) ... Jan 27 2010, 12:30     demiurg_spb Цитата(Сергей Борщ @ Jan 27 2010, 15:30) ... Jan 27 2010, 12:36    Сергей Борщ Цитата(Злодей @ Jan 28 2010, 11:51) Ключ ... Jan 28 2010, 11:16    ReAl Цитата(Злодей @ Jan 28 2010, 11:51) Ключ ... Jan 28 2010, 14:50     singlskv Цитата(ReAl @ Jan 28 2010, 17:50) Стереот... Jan 28 2010, 23:44 SysRq Убрать таблицу векторов прерываний, если не нужна ... Jan 29 2010, 20:52 SysRq Ежели кого не сильно затруднит, выложите пожалуйст... Mar 12 2011, 12:50 demiurg_spb Это мой Makefile для проекта из соседнего топика п... Mar 13 2011, 09:50
3 чел. читают эту тему (гостей: 3, скрытых пользователей: 0)
Пользователей: 0
|
|
|