Makefile: clarify definition of the firmware upload device in use.

Programmers typically don't do baud rate, so setting the avrdude -b
flag has to be avoided in this case.
This commit is contained in:
Markus Hitter 2012-07-13 23:20:24 +02:00
parent a2f1412aec
commit 7f3c1e61ba
1 changed files with 31 additions and 12 deletions

View File

@ -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