2014-02-17 2 views
1

Как узнать размер вспышки голого металлического кода руки. Если у меня есть эльф, можно ли узнать, сколько флэш потребуется для хранения программы? Например, если у меня есть файл elf, который должен войти в MCU на основе ARM, как я могу определить, какая часть вспышки MCU будет потребляться кодом?Размер вспышки голого металлического ARM-программы

+0

@dwelch Он говорит, что у него уже есть файл эльфа. – ams

+0

, то просто используйте инструменты gnu ... readelf, objdump и т. Д. –

+0

['размер'] (http://unixhelp.ed.ac.uk/CGI/man-cgi?size) является стандартным для этого. Единственное предостережение в том, что если у вас огромные дыры в формате ELF, они могут сделать двоичное изображение со вспышкой огромным. –

ответ

2

Заголовки ELF должны содержать необходимую информацию. Вы можете использовать инструмент objdump (с -h) или readelf. Эти инструменты должны быть включены в вашу инструментальную цепочку.

В принципе, вы хотите добавить размер всех загружаемых разделов, таких как .text и .data. Посмотрите на флаг LOAD на выходе от objdump, например.

Вы можете игнорировать, не загружаемые разделы, такие как .comment, .debug и .bss · Некоторые из них находятся там на благо отладчика, например, и некоторые из них просто заполнителей для памяти, которые будут использоваться программой при пробеге но не содержит ранее существовавших данных.

Когда я говорю «добавьте размер», это не совсем верно; компоновщик уже выделил каждый раздел на определенный адрес во флэш-памяти (я предполагаю, что ваша программа будет запускаться непосредственно из ПЗУ), поэтому вам нужно найти конечный адрес последнего раздела, чтобы определить, сколько осталось.

+0

Или просто вы * toolprefix * -размер, который создан для этой цели, если он доступен. –

+0

@artlessnoise спасибо мужчина! То точно, что я искал! :) – user2668988

+0

Я нахожу вывод 'size' неудовлетворительным; слишком много скрытых предположений. Как я сказал выше, то, что вы действительно ищете, - это последний использованный адрес во flash. – ams

Смежные вопросы