C可执行到十六进制

时间:2015-12-02 09:03:14

标签: cmake hex avr clion avrdude

我使用CLion作为IDE。构建输出后是一个可执行文件example。我想要实现的是从中获取.hex文件并通过avrdude将其上传到我的AVR。我阅读并尝试了一些possible solutions here

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

这里有什么想法吗?

1 个答案:

答案 0 :(得分:3)

用于从可执行文件中提取部分并将其转换为其他格式的工具是objcopy

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

或者,如果您的avrdude是使用ELF支持构建的,那么您可以直接使用可执行文件。

avrdude -c usbasp-clone -p atmega8 -U flash:w:example