juvf 10 9 апреля, 2013 Опубликовано 9 апреля, 2013 · Жалоба создал пустой проект. в main.c int main() { for(;;) ; return 0; } собрал. программа получилась размером 2.3 кб. переименовал main.c в main.cpp. пересобрал. размер кода получился 33 кб. куда утекает память программ? Мож какой ключ дополнительный указать в BSP, чтобы с++ не жрал память программ? Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
Копейкин 0 9 апреля, 2013 Опубликовано 9 апреля, 2013 · Жалоба Я могу ошибаться, но дополнительная память требуется для реализации плюсов к С. Конструкторы, деструкторы и пр. автоматика даром не даётся. Можно попробовать выключить флаг enable_c_plus_plus в BSP hal... Но тогда конструкции С++ будут запрещены. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 10 апреля, 2013 Опубликовано 10 апреля, 2013 · Жалоба у плюсов рантайм пожирнее, да. можете objdump сделать, чтобы детали посмотреть Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 10 апреля, 2013 Опубликовано 10 апреля, 2013 · Жалоба у плюсов рантайм пожирнее, да. можете objdump сделать, чтобы детали посмотреть Могу. objdump.7z Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
vadimuzzz 0 10 апреля, 2013 Опубликовано 10 апреля, 2013 · Жалоба так и есть, гляньте таблицу символов, это все плюсовый рантайм. понятия не имею, можно ли его уменьшить. ИМХО, если размер генерируемого кода критичен, лучше использовать pure-c Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
inco 1 10 апреля, 2013 Опубликовано 10 апреля, 2013 · Жалоба Добавьте ключи -fno-rtti -fno-exceptions -fno-elide-constructors -Wl,--section-start в свойствах проекта Nios II Application properties->User flags Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться
juvf 10 10 апреля, 2013 Опубликовано 10 апреля, 2013 · Жалоба ИМХО, если размер генерируемого кода критичен, лучше использовать 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 1 10 апреля, 2013 Опубликовано 10 апреля, 2013 · Жалоба Это обычный gcc так что назначение ключей можно почитать у него. На счёт кода большого проекта, это уже надо смотреть map файл, на предмет кто тянет какие зависимости. Цитата Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты Поделиться