Ich nutze avrdude mit makefile. Hier habe ich ein Target namens flash. Ich mach einfach ein "make flash" und alles wird übersetzt und anschliessend in den Atmega mittels avrdude reingepumpt 
Code:
CC=avr-gcc-4.5.3
RM=rm -f
OBJCOPY=avr-objcopy
AVRDUDE=sudo avrdude -p m168 -c avrispmkii -P USB -e -U flash:w:
AVRSIZE=avr-size
MCU=atmega168
F_CPU=16000000
CFLAGS=-g -DF_CPU=$(F_CPU) -Wall -Os -mcall-prologues
OBJ = main.o uart.o twimaster.o
BIN = fgcontrol.bin
HEX = fgcontrol.hex
MAP = fgcontrol.map
.phony: all
all: $(OBJ)
$(RM) $(HEX) $(BIN) $(MAP)
$(CC) -mmcu=$(MCU) $(CFLAGS) -o $(BIN) -Wl,-Map,$(MAP) $(OBJ)
$(OBJCOPY) -R .eeprom -O ihex $(BIN) $(HEX)
%.o: %.cpp
$(CC) -mmcu=$(MCU) $(CFLAGS) -c $<
clean:
$(RM) $(OBJ) $(BIN) $(HEX) $(MAP)
flash: $(OBJ)
$(AVRDUDE)$(HEX)
size: $(BIN)
$(AVRSIZE) -C --mcu=$(MCU) $(BIN)
Hoffe dass dir das hilft 
Gruß
Georg
Lesezeichen