私はAVRマイクロコントローラ(OS:Debian 32 bit)の以下のエラーを解決する方法をお手伝いします。avrdude:ELFファイルcheckio.hexを処理できません。ELFファイルのサポートがコンパイルされていません。
/* checkio.c*/
#ifndef F_CPU
#define F_CPU 16000000UL
#endif
#include<avr/io.h>
#include<util/delay.h>
#include<avr/fuse.h>
int main()
{
DDRA=0xFF;
PORTA=0;
while(1)
{
PORTA=0xFF;
_delay_ms(1000);
PORTA=0;
_delay_ms(1000);
}
return 0;
}
および関連makeファイルは次のとおりです。
CFLAGS1=-g -mmcu=atmega32 -c
CFLAGS2=-g -mmcu=atmega32 -o
GFLAGS3=-j .text -j .data ihex
checkio.hex:checkio.elf
avr-objcopy $(CFLAGS3) checkio.elf checkio.hex
checkio.elf:checkio.o
avr-gcc $(CFLAGS2) checkio.elf checkio.o
checkio.o:checkio.c
avr-gcc $(CFLAGS1) checkio.c
burn:
sudo /home/poonam/proj_utility/avr_dude/install/bin/avrdude -p atmega32 -P /dev/bus/usb/002/004 -c usbasp -u -U flash:w:checkio.hex
clean:
rm *.elf *.hex *.o
AVRDUDE:警告:SCK期間を設定することはできません。 usbaspファームウェアのアップデートを確認してください。
AVRDUDE:AVRデバイス初期化され、受け入れる準備指示
読書| ########################## | 100%0.01秒
AVRDUDE:デバイス署名= 0x1e9502
AVRDUDE:注:「フラッシュ」メモリが指定されているが、消去サイクルは、この機能を無効に-Dオプションを指定するには を実行されます。
AVRDUDE:消去チップ
AVRDUDE:警告:SCK期間を設定することはできません。 usbaspファームウェア アップデートを確認してください。
AVRDUDE:入力ファイル "checkio.hex" を読ん
AVRDUDE:ELF
AVRDUDEとして検出された入力ファイルcheckio.hex自動:ELFファイルcheckio.hexを扱うことができない、ELFファイルのサポートはありませんでした
AVRDUDEでコンパイル:ファイル 'checkio.hex' から読み取る
AVRDUDE行いませんでした。ありがとうございました。
Typo:変数 'GFLAGS3'を設定しましたが、ルールで' CFLAGS3'を参照しています。 (個人的には、私は 'AVRDUDE_OPTS'と呼んでいます) – duskwuff
objcopyコマンドは' CFLAGS3'を使いますが、定義されていません。代わりに 'GFLAGS3'を定義しました。 – Clifford