diff --git a/Makefile b/Makefile index d33ccf2..54d0d01 100644 --- a/Makefile +++ b/Makefile @@ -62,15 +62,28 @@ AVRDUDECONF = /etc/avrdude.conf PROGPORT = /dev/arduino # PROGPORT = /dev/ttyUSB0 -# atmega168 -#PROGBAUD = 19200 -# atmega328p, 644p, 1280 -PROGBAUD = 57600 -# atmega 2560 -# PROGBAUD = 115200 +############################################################################## +# # +# This depends on the bootloader (or programmer) in use. # +# Examples: # +# # +# Arduino Diecimilia with genuine bootloader: 19200 # +# Sanguino bootloader: 57600 # +# Gen7 bootloader: 115200 # +# # +# Set PROGBAUD to 0 (Zero) for programmers. # +# # +############################################################################## -# at least mega2560 needs stk500v2 -PROGID = arduino +PROGBAUD = 115200 + +############################################################################## +# # +# Firmware upload device type. Typically stk500 or stk500v2. # +# # +############################################################################## + +PROGID = stk500v2 ############################################################################## # # @@ -104,6 +117,12 @@ else SOURCES += serial.c endif +ifeq ($(PROGBAUD),0) +PROGBAUD_FLAG = +else +PROGBAUD_FLAG = -b$(PROGBAUD) +endif + OBJ = $(patsubst %.c,%.o,${SOURCES}) .PHONY: all program clean size subdirs program-fuses doc functionsbysize @@ -122,16 +141,16 @@ program: $(PROGRAM).hex config.h stty $(PROGBAUD) raw ignbrk hup < $(PROGPORT) @sleep 0.1 @stty $(PROGBAUD) raw ignbrk hup < $(PROGPORT) - $(AVRDUDE) -c$(PROGID) -b$(PROGBAUD) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U flash:w:$^ + $(AVRDUDE) -c$(PROGID) $(PROGBAUD_FLAG) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U flash:w:$^ stty 115200 raw ignbrk -hup -echo ixoff < $(PROGPORT) program-fuses: avr-objdump -s -j .fuse mendel.o | perl -ne '/\s0000\s([0-9a-f]{2})/ && print "$$1\n"' > lfuse avr-objdump -s -j .fuse mendel.o | perl -ne '/\s0000\s..([0-9a-f]{2})/ && print "$$1\n"' > hfuse avr-objdump -s -j .fuse mendel.o | perl -ne '/\s0000\s....([0-9a-f]{2})/ && print "$$1\n"' > efuse - $(AVRDUDE) -c$(PROGID) -b$(PROGBAUD) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U lfuse:w:lfuse - $(AVRDUDE) -c$(PROGID) -b$(PROGBAUD) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U hfuse:w:hfuse - $(AVRDUDE) -c$(PROGID) -b$(PROGBAUD) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U efuse:w:efuse + $(AVRDUDE) -c$(PROGID) $(PROGBAUD_FLAG) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U lfuse:w:lfuse + $(AVRDUDE) -c$(PROGID) $(PROGBAUD_FLAG) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U hfuse:w:hfuse + $(AVRDUDE) -c$(PROGID) $(PROGBAUD_FLAG) -p$(MCU_TARGET) -P$(PROGPORT) -C$(AVRDUDECONF) -U efuse:w:efuse clean: clean-subdirs rm -rf *.o *.elf *.lst *.map *.sym *.lss *.eep *.srec *.bin *.hex *.al *.i *.s *~ *fuse