C可执行文件到十六进制
C executable to hex
我将 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
有什么想法吗?
从可执行文件中提取部分并将其转换为另一种格式的工具是 objcopy
。
avr-objcopy -j .text -j .data -O ihex example example.hex
或者,如果您的 avrdude 是使用 ELF 支持构建的,那么您可以直接使用可执行文件。
avrdude -c usbasp-clone -p atmega8 -U flash:w:example
我将 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
有什么想法吗?
从可执行文件中提取部分并将其转换为另一种格式的工具是 objcopy
。
avr-objcopy -j .text -j .data -O ihex example example.hex
或者,如果您的 avrdude 是使用 ELF 支持构建的,那么您可以直接使用可执行文件。
avrdude -c usbasp-clone -p atmega8 -U flash:w:example