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

 
 
 
Reply to this topicStart new topic
> где посмотреть сколько места занимает приложение под Nios
Fynjisx
сообщение Feb 29 2012, 13:12
Сообщение #1


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Доброго времени.
где в Eclipse можео увидеть размер кода и даных занимаемых написанной программой?
Заранее благодарю...


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
Konst_777
сообщение Feb 29 2012, 17:55
Сообщение #2


Знающий
****

Группа: Свой
Сообщений: 549
Регистрация: 1-06-05
Пользователь №: 5 644



Цитата(Fynjisx @ Feb 29 2012, 17:12) *
...где в Eclipse можно увидеть размер кода и данных занимаемых написанной программой?...

После выполнения "Build Project" в окне "Console" будут строки типа:
Код
Info: (YourProgram.elf) 25 KBytes program size (code + initialized data).
Info:             6620 Bytes free for stack + heap.
Go to the top of the page
 
+Quote Post
barabek
сообщение Mar 1 2012, 02:18
Сообщение #3


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Fynjisx @ Feb 29 2012, 23:12) *
Доброго времени.
где в Eclipse можео увидеть размер кода и даных занимаемых написанной программой?
Заранее благодарю...


В файле xxx.objdump много информации. Этот файл получается на основе elf-файла либо автоматически после build, либо вручную через "command shell" выполнением команды nios2-elf-objdump. Смотрите подробности в "software developers handbook"
Go to the top of the page
 
+Quote Post
Alex77
сообщение Mar 1 2012, 07:30
Сообщение #4


Местный
***

Группа: Участник
Сообщений: 295
Регистрация: 2-12-05
Пользователь №: 11 695



Цитата(Fynjisx @ Feb 29 2012, 17:12) *
Доброго времени.
где в Eclipse можео увидеть размер кода и даных занимаемых написанной программой?
Заранее благодарю...


В окошке CONSOLE в Eclipse по окончанию компиляции.

Finished building target: test_rom.elf
' '
Invoking: MicroBlaze Print Size
mb-size test_rom.elf |tee "test_rom.elf.size"
text data bss dec hex filename
3710 456 2090 6256 1870 test_rom.elf
Finished building: test_rom.elf.size
Go to the top of the page
 
+Quote Post
juvf
сообщение Mar 2 2012, 02:44
Сообщение #5


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

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



Цитата(Konst_777 @ Feb 29 2012, 22:55) *
После выполнения "Build Project" в окне "Console" будут строки типа:
Код
Info: (YourProgram.elf) 25 KBytes program size (code + initialized data).
Info:             6620 Bytes free for stack + heap.

На uC/OS проект был 200-300 кБ. После перехода на FreeRTOS у меня после выполнения "Build Project" в окне "Console" такое
Код
Info: (handlerFree.elf) 8523 KBytes program size (code + initialized data).
Info:                   122548 KBytes free for stack + heap.

ВОСЕМЬ Мбайт!!! Сначала подумал - "ну и ОС! Прожорливая". Но потом залил флешпрограматором конфигурацию и прогу в epcs16. Всё работает. По даташиту epcs16 всего 2 Мбайта. Как могла туда уместиться программа в 8,5 Мбайт? Получается что этот вывод, после сборки - неправильный.
Go to the top of the page
 
+Quote Post
barabek
сообщение Mar 2 2012, 03:12
Сообщение #6


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(juvf @ Mar 2 2012, 12:44) *
На uC/OS проект был 200-300 кБ. После перехода на FreeRTOS у меня после выполнения "Build Project" в окне "Console" такое
Код
Info: (handlerFree.elf) 8523 KBytes program size (code + initialized data).
Info:                   122548 KBytes free for stack + heap.

ВОСЕМЬ Мбайт!!! Сначала подумал - "ну и ОС! Прожорливая". Но потом залил флешпрограматором конфигурацию и прогу в epcs16. Всё работает. По даташиту epcs16 всего 2 Мбайта. Как могла туда уместиться программа в 8,5 Мбайт? Получается что этот вывод, после сборки - неправильный.

Это как раз тот случай, который нужно посмотреть в objdump-файле. У меня такая же ситуация была - по размерам код не должен был бы поместиться во флэш, но работало. И при прошивке programmer выдавал, что записал всего 94кБ, вместо 300кБ по отчету. Дело в том, что сюда же в 300кБ (или в 8М Ваших) входят неинициализируемые переменные. Например буферы. У меня один буфер был ~200кБ. В файле objdump все это расписано. Правда нужно не забывать, что объем и виды информации в objdump зависит от того, с какими ключами вызывается команда nios2-elf-objdump.
Go to the top of the page
 
+Quote Post
juvf
сообщение Mar 2 2012, 04:13
Сообщение #7


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

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



Цитата(barabek @ Mar 1 2012, 07:18) *
В файле xxx.objdump много информации. Этот файл получается на основе elf-файла либо автоматически после build, либо вручную через "command shell" выполнением команды nios2-elf-objdump. Смотрите подробности в "software developers handbook"
А как посмотреть этой командой? в "software developers handbook" нету про размер прошивки. А nios2-elf-objdump --help выдал много чего, но нет там ни одного ключа типа
Display program size.
Go to the top of the page
 
+Quote Post
barabek
сообщение Mar 2 2012, 04:39
Сообщение #8


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(juvf @ Mar 2 2012, 14:13) *
Display program size.


По простому - выведете все хедеры. Ключ -x.


Код
nios2-elf-objdump -D -S -x <project>.elf > <project>.elf.objdump
-этот набор на все случаи жизни.







Go to the top of the page
 
+Quote Post
juvf
сообщение Mar 2 2012, 05:04
Сообщение #9


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

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



ключ -х вывел 100500 строчек "матрицы". хрен посмотришь в терминале. пришлось вывод в файл отправлять. см аттач


Цитата
набор на все случаи жизни
этот набор генерирует дамп <project>.elf.objdump файла <project>.elf >. Зачем мне дамп<project>.elf.objdump? И где размер программы?

Сообщение отредактировал juvf - Mar 2 2012, 05:08
Прикрепленные файлы
Прикрепленный файл  matrix.txt ( 117.99 килобайт ) Кол-во скачиваний: 156
 
Go to the top of the page
 
+Quote Post
barabek
сообщение Mar 2 2012, 05:55
Сообщение #10


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(juvf @ Mar 2 2012, 15:04) *
ключ -х вывел 100500 строчек "матрицы". хрен посмотришь в терминале. пришлось вывод в файл отправлять. см аттач


этот набор генерирует дамп <project>.elf.objdump файла <project>.elf >. Зачем мне дамп<project>.elf.objdump? И где размер программы?

1. Да, в консоли не посмотришь.

2. Давайте разбираться. Смотрим раздел sections. Вся информация, интересующая Вас, здесь. Видно, где располагается каждая секция и какой она занимает размер. Расположение это - VMA и LMA, т.е. виртуальный и логический адрес начала секции. Без использования мощных ОСей они одинаковы. Размер (size) - тут вообще все понятно. Теперь что касается самих секций. Есть основные, пользовательские. И есть служебные. Про них я молчу, ничего не знаю. А про пользовательские можете почитать. Вкратце опишу. Секция .text - основная Ваша программа, т.е. код написанных Вами функций. Rodata - readOnlyData - константы. rwdata - read/write data - переменные. bss - это тоже секция данных, инициализируемая нулями. exceptions - из названия понятно, что в ней располагается код исключений (в том числе и прерываний). entry - код "входа", если он есть, например, бутлоадера (но у Вас 0). Где располагаются те или иные секции - управляете Вы настройками линкера. Судя по Вашему вложению - все они в области памяти с 08000000. И Ваша секция bss занимает аж 0x00810a5f(8 456 799)байт. Эту секцию во флэш хранить не нужно, т.к. при запуске программы там будут одни нули.


Go to the top of the page
 
+Quote Post
juvf
сообщение Mar 2 2012, 06:40
Сообщение #11


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

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



ну так и сколько в итоге моя моя прошивка отжрёт у EPCS? Складывать размеры всех секций?
.text + .rodata + .rwdata + ... + .debug_info + .debug_abbrev + ...

Не понятно. Нужно курить про каждую секцию, гуглить. Что складывать, а что нет. А возможно в прошивку что-то ляжет, чего в выводе -х нет. А потом появятся новые секции - опять гуглить. как-то всё сложно. ((



наверно гораздо проще оценить размер программы можно с помощью команды nios2-elf-size

Сообщение отредактировал juvf - Mar 2 2012, 06:41
Go to the top of the page
 
+Quote Post
barabek
сообщение Mar 2 2012, 06:42
Сообщение #12


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(juvf @ Mar 2 2012, 16:27) *
ну так и сколько в итоге моя моя прошивка отжрёт у EPCS? Складывать размеры всех секций?
.text + .rodata + .rwdata + ... + .debug_info + .debug_abbrev + ...

Не понятно. Нужно курить про каждую секцию, гуглить. Что складывать, а что нет. А возможно в прошивку что-то ляжет, чегочч в выводе -х нет. А потом появятся новые секции - опять гуглить. как-то всё сложно. ((


Как и говорил, насчет служебных могу обмануть. Но, ЕМНИП, они во флэш не заливаются. Кто-нибудь может подскажет. Я же скажу один путь, как это можно выяснить sm.gif. Раз Вы пишете про EPCS, значить у Вас при заливке вызывается elf2flash, который создает файл xxx.flash. Формат этого файла известен. Отсюда определите непосредственно размер того, что пишется в EPCS
Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Mar 2 2012, 06:57
Сообщение #13


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(barabek @ Mar 2 2012, 08:55) *
Где располагаются те или иные секции - управляете Вы настройками линкера.

Подскажите где это место в котором я могу задавать расположение секций? Задавал кажись уже такой вопрос на форуме...
Есть настройки BSP-editor, в которых отображаются имена секций и регионы памяти. А как задать их место положение и размер, я так и не нашел
Цитата(barabek @ Mar 2 2012, 08:55) *
Судя по Вашему вложению - все они в области памяти с 08000000.

Откуда такой вывод?


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post
barabek
сообщение Mar 2 2012, 07:15
Сообщение #14


Знающий
****

Группа: Свой
Сообщений: 540
Регистрация: 16-08-07
Из: Владивосток
Пользователь №: 29 831



Цитата(Fynjisx @ Mar 2 2012, 16:57) *
Подскажите где это место в котором я могу задавать расположение секций? Задавал кажись уже такой вопрос на форуме...
Есть настройки BSP-editor, в которых отображаются имена секций и регионы памяти. А как задать их место положение и размер, я так и не нашел


Во вкладке linker script. Там Вы выставляете, куда, в какую физическую память поместить конкретную секцию. Размер - зачем он Вам нужен? Что Вы под этим подразумеваете? Как можно знать, допустим, какой будет размер у секции .text до завершения компиляции? Теоретически, конечно, можно sm.gif, и то при выключенной оптимизации. И зачем этот размер задавать? Скомпилировался проект, появились данные о размерах всех секций. Дальше линкер их распихивает. В простейшем случае при одной физической памяти подряд друг за другом, а остатки под кучу. В некоторых ситуациях можно делать дополнительные секции. В общем, непонятен контекст вопроса.

Цитата
Откуда такой вывод?


Так в его файле все пользовательские секции идут одна за другой, начиная с адреса 0x08000000 секция exceptions.




Go to the top of the page
 
+Quote Post
Fynjisx
сообщение Mar 4 2012, 14:50
Сообщение #15


студент
****

Группа: Свой
Сообщений: 571
Регистрация: 3-07-08
Из: Russia
Пользователь №: 38 712



Цитата(barabek @ Mar 2 2012, 10:15) *
Размер - зачем он Вам нужен? Что Вы под этим подразумеваете? Как можно знать, допустим, какой будет размер у секции .text до завершения компиляции? И зачем этот размер задавать? Скомпилировался проект, появились данные о размерах всех секций.

я неправильно понял вот это:
Цитата(barabek @ Mar 2 2012, 10:15) *
...Где располагаются те или иные секции - управляете Вы настройками линкера...

здесь "Где" - у Вас имелось ввиду в какой памяти, а я под "Где" понял как "в каком месте памяти" т.е по каким адресам.


Сообщение отредактировал Fynjisx - Mar 4 2012, 14:56


--------------------
С Уважением...
Go to the top of the page
 
+Quote Post

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

 


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


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