HEX ELF
Конвертация файлов

Конвертировать HEX в ELF

БЫСТРЫЙ ОТВЕТ
Возможно ли конвертировать HEX в ELF?
Да - HEX конвертируется в ELF.

Запустите avr-objcopy -I ihex -O elf32-avr firmware.hex firmware.elf, чтобы создать валидный ELF-файл. ELF будет корректно дизассемблироваться, но в нем не будет таблицы символов или разделов отладки DWARF - они создаются компилятором, а не берутся из файла .hex. Сначала проверьте директорию сборки; компилятор, скорее всего, уже создал .elf вместе с .hex.

Также в ELF: FAP · S19

На этой странице

Протестировано на macOS, Windows и Linux
Последняя проверка: Oct 2026

Больше бесплатных конвертеров

HEIC, PNG, WEBP, MP3 и другие - все инструменты здесь бесплатны.

Открыть инструменты

Зачем конвертировать HEX в ELF?

Некоторые встроенные цепочки инструментов и отладчики принимают только входные данные ELF, а не «сырой» HEX. Обертывание .hex в .elf позволяет загружать прошивку в GDB или утилиты для прошивки, требующие формат ELF, даже без таблицы символов. Полный ELF с символами и отладочной информацией создается компилятором; конвертация из HEX дает лишь «пустую оболочку».

Способы конвертации HEX в ELF

avr-objcopy OPEN-SOURCE

Запустите avr-objcopy -I ihex -O elf32-avr firmware.hex firmware.elf; замените elf32-avr на правильную цель (например, elf32-littlearm для ARM Cortex-M). avr-objcopy поставляется с avr-gcc и входит в состав Arduino IDE.

arm-none-eabi-objcopy OPEN-SOURCE

Для целей ARM Cortex-M запустите arm-none-eabi-objcopy -I ihex -O elf32-littlearm firmware.hex firmware.elf из GNU Arm Embedded Toolchain.

Об этих форматах

Качество и на что обратить внимание

  • Выходной ELF содержит только необработанные байты по их целевым адресам; имена разделов будут общими (например, .sec1), а не оригинальными именами .text, .data, .bss, назначенными компилятором.
  • Если вы компилировали прошивку самостоятельно, директория сборки, скорее всего, уже содержит .elf рядом с .hex - проверьте это перед конвертацией.
  • Флаг архитектуры -O elf32-avr должен соответствовать реальному процессору; использование неправильного флага создаст ELF, который отладчики или прошивальщики отклонят.

Часто задаваемые вопросы

Можно ли восстановить имена функций и отладочные символы из HEX-файла?
Нет - Intel HEX хранит только необработанные байты и адреса памяти; имена символов, отладочная информация DWARF и имена разделов отсутствуют.
Где найти avr-objcopy на моем компьютере?
Он поставляется с avr-gcc и находится внутри Arduino IDE по пути hardware/tools/avr/bin/; используйте arm-none-eabi-objcopy для целей ARM.
Будет ли полученный ELF корректно дизассемблироваться?
Да - необработанные байты и адреса загрузки сохранены, поэтому дизассемблирование работает, но имена функций и переменных будут отсутствовать.