Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Большой расход памяти в NIOS
Форум разработчиков электроники ELECTRONIX.ru > Программируемая логика ПЛИС (FPGA,CPLD, PLD) > Системы на ПЛИС - System on a Programmable Chip (SoPC)
juvf
создал пустой проект. в main.c
Код
int main()
{
    for(;;)
    ;
    return 0;
}

собрал. программа получилась размером 2.3 кб.
переименовал main.c в main.cpp. пересобрал. размер кода получился 33 кб. куда утекает память программ? Мож какой ключ дополнительный указать в BSP, чтобы с++ не жрал память программ?
Копейкин
Я могу ошибаться, но дополнительная память требуется для реализации плюсов к С.
Конструкторы, деструкторы и пр. автоматика даром не даётся.
Можно попробовать выключить флаг enable_c_plus_plus в BSP hal...
Но тогда конструкции С++ будут запрещены.
vadimuzzz
у плюсов рантайм пожирнее, да. можете objdump сделать, чтобы детали посмотреть
juvf
Цитата(vadimuzzz @ Apr 10 2013, 07:23) *
у плюсов рантайм пожирнее, да. можете objdump сделать, чтобы детали посмотреть

Могу.
vadimuzzz
так и есть, гляньте таблицу символов, это все плюсовый рантайм. понятия не имею, можно ли его уменьшить. ИМХО, если размер генерируемого кода критичен, лучше использовать pure-c
inco
Добавьте ключи -fno-rtti -fno-exceptions -fno-elide-constructors -Wl,--section-start
в свойствах проекта Nios II Application properties->User flags
juvf
Цитата(vadimuzzz @ Apr 10 2013, 09:47) *
ИМХО, если размер генерируемого кода критичен, лучше использовать pure-c


размер кода не зависит от языка. хоть с, хоть с++, хоть асм, хоть свой придуманный. Размер кода зависит от компилятора.
Однажды мне дали проект на чистом си для msp430. иар-си его собрал в 80 кб, я ни чего не меняя собрал проект в иар-с++ - получилось 70 кб


Цитата
Добавьте ключи -fno-rtti -fno-exceptions -fno-elide-constructors -Wl,--section-start


Спасибо, получилось. код получился как в си. только не съел компилятор все ключи. съел только
-fno-rtti -fno-exceptions -fno-elide-constructors

не знаю на что это влияет....... но голый проект для NIOS уменьшился, на текущий момент, с 36 кб до 5,6 кб. А вот готовый проект уменьшился с 72 кб до 71 кб.
inco
Это обычный gcc так что назначение ключей можно почитать у него. На счёт кода большого проекта, это уже надо смотреть map файл, на предмет кто тянет какие зависимости.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Invision Power Board © 2001-2025 Invision Power Services, Inc.