From: sallai Date: Tue, 6 Nov 2007 19:32:56 +0000 (+0000) Subject: updated AVR specific makefiles with dual support for uisp and avrdude X-Git-Tag: release_tinyos_2_1_0_0~668 X-Git-Url: https://oss.titaniummirror.com/gitweb/?p=tinyos-2.x.git;a=commitdiff_plain;h=4a57660b0c94816a2098e73375aaa7d85ae80ff5 updated AVR specific makefiles with dual support for uisp and avrdude --- diff --git a/support/make/avr/avr.rules b/support/make/avr/avr.rules index 9d398109..a284d455 100644 --- a/support/make/avr/avr.rules +++ b/support/make/avr/avr.rules @@ -12,7 +12,7 @@ define AVR_HELP Programmer options: dapa : (default) use parallel port programmer - mib510, : use MIB510 serial port programming board at port + mib510, : use MIB510/MIB520 serial port programming board at port eprb, : use EPRB at hostname avrisp, : use AVRISP serial programmer at port @@ -26,11 +26,16 @@ HELP += $(AVR_HELP) OBJCOPY = avr-objcopy OBJDUMP = avr-objdump SET_ID = tos-set-symbols -PROGRAMMER = uisp +PROGRAMMER ?= uisp NCC = ncc LIBS = -lm + AMADDR = ActiveMessageAddressC\$$addr +# Uncomment the next two lines if you have a toolchain without the dollar sign +# patch. This needs nesc 1.2.8 or newer (1.2.9 is recommended). +#PFLAGS += -fnesc-separator=__ +#AMADDR = ActiveMessageAddressC__addr BUILDDIR = build/$(PLATFORM) MAIN_EXE = $(BUILDDIR)/main.exe MAIN_SREC = $(BUILDDIR)/main.srec @@ -44,9 +49,28 @@ ifdef MSG_SIZE PFLAGS += -DTOSH_DATA_LENGTH=$(MSG_SIZE) endif -ifndef DEFAULT_PROGRAM -DEFAULT_PROGRAM = dapa +AVRGCCMAJOR = $(shell avr-gcc -v 2>&1 | grep "gcc version" | sed -n 's/gcc version \([2-5]\)\.\([0-9]\)\.\([0-9]\).*/\1/p') +ifeq ($(AVRGCCMAJOR),4) + PFLAGS += --param max-inline-insns-single=100000 +else + PFLAGS += -finline-limit=100000 +endif + +ifeq ($(PROGRAMMER),avrdude) + AVRDUDE_CONF ?= /etc/avrdude/avrdude.conf + ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin) + AVRDUDE_CONF := $(shell cygpath -m $(AVRDUDE_CONF)) + endif + PROGRAMMER_EXTRA_FLAGS += -C$(AVRDUDE_CONF) +# PROGRAMMER_EXTRA_FLAGS += -v -v +endif + +ifdef DEFAULT_PROGRAM_AVR +DEFAULT_PROGRAM = $(DEFAULT_PROGRAM_AVR) endif +DEFAULT_PROGRAM ?= dapa + + BUILDLESS_DEPS += bytes diff --git a/support/make/avr/avrisp.extra b/support/make/avr/avrisp.extra index 559ca060..c56de450 100644 --- a/support/make/avr/avrisp.extra +++ b/support/make/avr/avrisp.extra @@ -6,12 +6,28 @@ $(error AVRISP must be defined, try "make $(TARGETS) help") endif PROGRAM = avrisp -PROGRAMMER_FLAGS=-dprog=stk500 -dserial=$(AVRISP) --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS_AVRISP) + +ifeq ($(PROGRAMMER),avrdude) + ifdef BOOTLOADER + ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin) + BOOTLOADER := $(shell cygpath -m $(BOOTLOADER)) + endif + endif + PROGRAMMER_FLAGS = -cstk500 -P$(MIB510) -U hfuse:w:$(AVR_FUSE_H):m $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_AVRISP) + PROGRAMMER_INSTALL_SREC_FLAGS = -U flash:w:$(INSTALL_SREC):a + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = -D -U flash:w:$(BOOTLOADER):a +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_FLAGS = -dprog=stk500 -dserial=$(AVRISP) --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_AVRISP) + PROGRAMMER_INSTALL_SREC_FLAGS = --erase --upload if=$(INSTALL_SREC) --verify + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = --upload if=$(BOOTLOADER) --verify +endif program: FORCE @echo " installing $(PLATFORM) binary using avrisp" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --erase --upload if=$(INSTALL_SREC) + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_SREC_FLAGS) program_bl: FORCE @echo " installing $(PLATFORM) bootloader using avrisp" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --upload if=$(BOOTLOADER) \ No newline at end of file + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_BOOTLOADER_FLAGS) diff --git a/support/make/avr/dapa.extra b/support/make/avr/dapa.extra index 54b982b2..6717198d 100644 --- a/support/make/avr/dapa.extra +++ b/support/make/avr/dapa.extra @@ -1,19 +1,33 @@ #-*-Makefile-*- vim:syntax=make #$Id$ + + + + PROGRAM = dapa -PROGRAMMER_FLAGS = -dprog=dapa --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) + +ifeq ($(PROGRAMMER),avrdude) + ifdef BOOTLOADER + ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin) + BOOTLOADER := $(shell cygpath -m $(BOOTLOADER)) + endif + endif + PROGRAMMER_FLAGS = -cdapa -U hfuse:w:$(AVR_FUSE_H):m $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_MIB) + PROGRAMMER_INSTALL_SREC_FLAGS = -U flash:w:$(INSTALL_SREC):a + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = -D -U flash:w:$(BOOTLOADER):a +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_FLAGS = -dprog=dapa --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_MIB) + PROGRAMMER_INSTALL_SREC_FLAGS = --erase --upload if=$(INSTALL_SREC) --verify + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = --upload if=$(BOOTLOADER) --verify +endif program: FORCE - @echo " installing $(PLATFORM) binary with dapa" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --erase - sleep 1 - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --upload if=$(INSTALL_SREC) - sleep 1 - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --verify if=$(INSTALL_SREC) + @echo " installing $(PLATFORM) binary using dapa" + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_SREC_FLAGS) program_bl: FORCE - @echo " installing $(PLATFORM) bootloader with dapa" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --upload if=$(BOOTLOADER) - sleep 1 - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --verify if=$(BOOTLOADER) + @echo " installing $(PLATFORM) bootloader using dapa" + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_BOOTLOADER_FLAGS) diff --git a/support/make/avr/eprb.extra b/support/make/avr/eprb.extra index 3dcd4b7f..9b2da7d5 100644 --- a/support/make/avr/eprb.extra +++ b/support/make/avr/eprb.extra @@ -6,12 +6,28 @@ $(error EPRB must be defined, try "make $(TARGETS) help") endif PROGRAM = eprb -PROGRAMMER_FLAGS = -dprog=stk500 -dhost=$(EPRB) --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS_STK) + +ifeq ($(PROGRAMMER),avrdude) + ifdef BOOTLOADER + ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin) + BOOTLOADER := $(shell cygpath -m $(BOOTLOADER)) + endif + endif + PROGRAMMER_FLAGS = -cstk500 -P$(EPRB) -U hfuse:w:$(AVR_FUSE_H):m $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_STK) + PROGRAMMER_INSTALL_SREC_FLAGS = -U flash:w:$(INSTALL_SREC):a + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = -D -U flash:w:$(BOOTLOADER):a +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_FLAGS = -dprog=stk500 -dhost=$(EPRB) --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_STK) + PROGRAMMER_INSTALL_SREC_FLAGS = --erase --upload if=$(INSTALL_SREC) --verify + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = --upload if=$(BOOTLOADER) --verify +endif program: FORCE @echo " installing $(PLATFORM) binary using eprb" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --erase --upload if=$(INSTALL_SREC) + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_SREC_FLAGS) program_bl: FORCE @echo " installing $(PLATFORM) bootloader using eprb" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --upload if=$(BOOTLOADER) + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_BOOTLOADER_FLAGS) diff --git a/support/make/avr/mib510.extra b/support/make/avr/mib510.extra index 6b818927..56c02fe2 100644 --- a/support/make/avr/mib510.extra +++ b/support/make/avr/mib510.extra @@ -6,12 +6,27 @@ $(error MIB510 must be defined, try "make $(TARGETS) help") endif PROGRAM = mib510 -PROGRAMMER_FLAGS = -dprog=mib510 -dserial=$(MIB510) --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS_MIB) +ifeq ($(PROGRAMMER),avrdude) + ifdef BOOTLOADER + ifeq ($(shell [ -f /bin/cygwin1.dll ] && echo cygwin),cygwin) + BOOTLOADER := $(shell cygpath -m $(BOOTLOADER)) + endif + endif + PROGRAMMER_FLAGS = -cmib510 -P$(MIB510) -U hfuse:w:$(AVR_FUSE_H):m $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_MIB) + PROGRAMMER_INSTALL_SREC_FLAGS = -U flash:w:$(INSTALL_SREC):a + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = -D -U flash:w:$(BOOTLOADER):a +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_FLAGS = -dprog=mib510 -dserial=$(MIB510) --wr_fuse_h=$(AVR_FUSE_H) $(PROGRAMMER_PART) $(PROGRAMMER_EXTRA_FLAGS) $(PROGRAMMER_EXTRA_FLAGS_MIB) + PROGRAMMER_INSTALL_SREC_FLAGS = --erase --upload if=$(INSTALL_SREC) --verify + PROGRAMMER_INSTALL_BOOTLOADER_FLAGS = --upload if=$(BOOTLOADER) --verify +endif program: FORCE @echo " installing $(PLATFORM) binary using mib510" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --erase --upload if=$(INSTALL_SREC) - + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_SREC_FLAGS) + program_bl: FORCE @echo " installing $(PLATFORM) bootloader using mib510" - $(PROGRAMMER) $(PROGRAMMER_FLAGS) --upload if=$(BOOTLOADER) \ No newline at end of file + $(PROGRAMMER) $(PROGRAMMER_FLAGS) $(PROGRAMMER_INSTALL_BOOTLOADER_FLAGS) diff --git a/support/make/btnode3.target b/support/make/btnode3.target index 6908815e..a144ae2c 100644 --- a/support/make/btnode3.target +++ b/support/make/btnode3.target @@ -3,8 +3,14 @@ PLATFORM ?= btnode3 SENSORBOARD ?= micasb -PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff -PFLAGS += -finline-limit=100000 +PROGRAMMER ?= uisp +ifeq ($(PROGRAMMER),avrdude) + PROGRAMMER_PART ?= -pm128 -U efuse:w:0xff:m +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff +endif ifdef TINYOS_NP ifeq ($(TINYOS_NP),BNP) diff --git a/support/make/iris.target b/support/make/iris.target new file mode 100644 index 00000000..ce4e7d51 --- /dev/null +++ b/support/make/iris.target @@ -0,0 +1,20 @@ +#-*-Makefile-*- vim:syntax=make +#$Id$ + +PLATFORM = iris +SENSORBOARD ?= micasb +PROGRAMMER ?= avrdude +ifeq ($(PROGRAMMER),avrdude) + PROGRAMMER_PART ?= -pm1281 -U efuse:w:0xff:m +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_PART ?= -dpart=ATmega1281 --wr_fuse_e=ff +endif + +AVR_FUSE_H ?= 0xd9 +AVR_FUSE_L ?= 0xff +$(call TOSMake_include_platform,avr) + +iris: $(BUILD_DEPS) + @: \ No newline at end of file diff --git a/support/make/mica2.target b/support/make/mica2.target index a5e06f59..b81960f2 100644 --- a/support/make/mica2.target +++ b/support/make/mica2.target @@ -3,8 +3,14 @@ PLATFORM = mica2 SENSORBOARD ?= micasb -PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff -PFLAGS += -finline-limit=100000 +PROGRAMMER ?= uisp +ifeq ($(PROGRAMMER),avrdude) + PROGRAMMER_PART ?= -pm128 -U efuse:w:0xff:m +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff +endif AVR_FUSE_H ?= 0xd9 diff --git a/support/make/mica2dot.target b/support/make/mica2dot.target index 5b43738f..55980269 100644 --- a/support/make/mica2dot.target +++ b/support/make/mica2dot.target @@ -2,8 +2,15 @@ #$Id$ PLATFORM = mica2dot -PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff -PFLAGS += -finline-limit=100000 + +PROGRAMMER ?= uisp +ifeq ($(PROGRAMMER),avrdude) + PROGRAMMER_PART ?= -pm128 -U efuse:w:0xff:m +endif + +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff +endif AVR_FUSE_H ?= 0xd9 diff --git a/support/make/micaz.target b/support/make/micaz.target index 677f5118..9f3a1f50 100644 --- a/support/make/micaz.target +++ b/support/make/micaz.target @@ -3,9 +3,15 @@ PLATFORM = micaz SENSORBOARD ?= micasb -PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff -PFLAGS += -finline-limit=100000 +PROGRAMMER ?= uisp +ifeq ($(PROGRAMMER),avrdude) + PROGRAMMER_PART ?= -pm128 -U efuse:w:0xff:m +endif +ifeq ($(PROGRAMMER),uisp) + PROGRAMMER_PART ?= -dpart=ATmega128 --wr_fuse_e=ff +endif + AVR_FUSE_H ?= 0xd9 $(call TOSMake_include_platform,avr)