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

 
 
 
Reply to this topicStart new topic
> Большой расход памяти в NIOS
juvf
сообщение Apr 9 2013, 07:36
Сообщение #1


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



создал пустой проект. в main.c
Код
int main()
{
    for(;;)
    ;
    return 0;
}

собрал. программа получилась размером 2.3 кб.
переименовал main.c в main.cpp. пересобрал. размер кода получился 33 кб. куда утекает память программ? Мож какой ключ дополнительный указать в BSP, чтобы с++ не жрал память программ?
Go to the top of the page
 
+Quote Post
Копейкин
сообщение Apr 9 2013, 14:28
Сообщение #2


Частый гость
**

Группа: Участник
Сообщений: 190
Регистрация: 7-11-07
Из: С-Петербург
Пользователь №: 32 134



Я могу ошибаться, но дополнительная память требуется для реализации плюсов к С.
Конструкторы, деструкторы и пр. автоматика даром не даётся.
Можно попробовать выключить флаг enable_c_plus_plus в BSP hal...
Но тогда конструкции С++ будут запрещены.
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 10 2013, 01:23
Сообщение #3


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



у плюсов рантайм пожирнее, да. можете objdump сделать, чтобы детали посмотреть
Go to the top of the page
 
+Quote Post
juvf
сообщение Apr 10 2013, 03:01
Сообщение #4


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(vadimuzzz @ Apr 10 2013, 07:23) *
у плюсов рантайм пожирнее, да. можете objdump сделать, чтобы детали посмотреть

Могу.
Прикрепленные файлы
Прикрепленный файл  objdump.7z ( 60.98 килобайт ) Кол-во скачиваний: 12
 
Go to the top of the page
 
+Quote Post
vadimuzzz
сообщение Apr 10 2013, 03:47
Сообщение #5


Гуру
******

Группа: Свой
Сообщений: 2 291
Регистрация: 21-07-05
Пользователь №: 6 988



так и есть, гляньте таблицу символов, это все плюсовый рантайм. понятия не имею, можно ли его уменьшить. ИМХО, если размер генерируемого кода критичен, лучше использовать pure-c
Go to the top of the page
 
+Quote Post
inco
сообщение Apr 10 2013, 04:38
Сообщение #6


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 26-08-05
Из: Российская Империя
Пользователь №: 7 984



Добавьте ключи -fno-rtti -fno-exceptions -fno-elide-constructors -Wl,--section-start
в свойствах проекта Nios II Application properties->User flags
Go to the top of the page
 
+Quote Post
juvf
сообщение Apr 10 2013, 07:12
Сообщение #7


Профессионал
*****

Группа: Свой
Сообщений: 1 261
Регистрация: 14-05-09
Из: Челябинск
Пользователь №: 49 045



Цитата(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 кб.
Go to the top of the page
 
+Quote Post
inco
сообщение Apr 10 2013, 08:04
Сообщение #8


Частый гость
**

Группа: Свой
Сообщений: 161
Регистрация: 26-08-05
Из: Российская Империя
Пользователь №: 7 984



Это обычный gcc так что назначение ключей можно почитать у него. На счёт кода большого проекта, это уже надо смотреть map файл, на предмет кто тянет какие зависимости.
Go to the top of the page
 
+Quote Post

Reply to this topicStart new topic
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 


RSS Текстовая версия Сейчас: 17th June 2025 - 21:06
Рейтинг@Mail.ru


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