В чем разница между файлами ELF и файлами bin?



окончательные изображения, созданные комплиерами, содержат как файл bin, так и файл ELF расширенного формата загрузчика ,в чем разница между ними , особенно утилита ELF file.

727   3  

3 ответов:

файл Bin-это чистый двоичный файл без каких-либо исправлений памяти или перемещений, более чем вероятно, что он имеет явные инструкции для загрузки по определенному адресу памяти. Поскольку....

эльф файлы представляют собой исполняемый формат, который состоит из поиска символов и перемещаемой таблицы, то есть он может быть загружен ядром по любому адресу памяти и автоматически, все используемые символы, настраиваются на смещение от того адреса памяти, в который он был загружен. Обычно файлы ELF имеют несколько разделов, таких как "данные", "текст", "bss", чтобы назвать, но a few...it находится в тех разделах, где во время выполнения можно вычислить, где динамически настроить ссылки на память символа во время выполнения.

файл bin-это только биты и байты, которые входят в ПЗУ или определенный адрес, с которого вы будете запускать программу. Вы можете взять эти данные и загрузить их напрямую, как есть, вам нужно знать, что такое базовый адрес, хотя, как правило, там нет.

файл elf содержит информацию о Бине, но он окружен множеством другой информации, возможной отладочной информацией, символами, может отличать код от данных в двоичном файле. Позволяет использовать более одного куска двоичного кода данные (когда вы сбрасываете один из них в корзину, вы получаете один большой файл bin с данными заполнения, чтобы поместить его в следующий блок). Говорит вам, сколько у вас двоичных файлов и сколько данных bss есть, которые хотят быть инициализированы в нули (инструменты gnu имеют проблемы с правильным созданием файлов bin).

формат файла elf является стандартным, arm публикует свои усовершенствования / варианты стандарта. Я рекомендую всем писать программу разбора elf, чтобы понять, что там есть, не беспокойтесь о библиотеке, это довольно просто просто использовать информацию и структуры в спецификации. Помогает преодолеть проблемы gnu в общем создании .файлы bin, а также отладочные скрипты компоновщика и другие вещи, которые могут помочь испортить ваш вывод bin или elf.

ресурсы:

  1. эльф для руки architecture
    http://infocenter.arm.com/help/topic/com.arm.doc.ihi0044d/IHI0044D_aaelf.pdf
  2. эльф из Вики
    http://en.wikipedia.org/wiki/Executable_and_Linkable_Format

формат ELF обычно является выходом по умолчанию компиляции. если вы используете цепочки инструментов GNU, вы можете перевести их в двоичный формат с помощью objcopy, например как:

  arm-elf-objcopy -O binary [elf-input-file] [binary-output-file]

или с помощью утилиты fromELF(построен в большинстве интегрированных сред разработки, таких как рекламу):

 fromelf -bin -o [binary-output-file] [elf-input-file]

Comments

    Ничего не найдено.