C исполняемый файл в шестнадцатеричном формате

Я использую CLion в качестве IDE. После сборки на выходе получается исполняемый файл example. Чего я хотел бы добиться, так это сделать из него файл .hex и загрузить его на мой AVR через avrdude. Я прочитал и попробовал некоторые spac">возможные решения здесь

xxd -p example | tr -d '\n' > example.hex

и

avrdude -u -c usbasp-clone -p atmega8 -P /dev/bus/usb/001/006 -U flash:w:example.hex

но avrdude выводит

avrdude: input file example.hex auto detected as invalid format
avrdude: invalid input file format: -1
avrdude: read from file 'example.hex' failed

Любые идеи здесь?


person etilge    schedule 02.12.2015    source источник


Ответы (1)


Инструмент для извлечения разделов из исполняемого файла и преобразования их в другой формат — objcopy.

avr-objcopy -j .text -j .data -O ihex example example.hex

Или, если ваш avrdude создан с поддержкой ELF, вы можете использовать исполняемый файл напрямую.

avrdude -c usbasp-clone -p atmega8 -U flash:w:example
person Ignacio Vazquez-Abrams    schedule 02.12.2015
comment
Великолепно! Последний пример был тот. - person etilge; 02.12.2015