X-Git-Url: https://oss.titaniummirror.com/gitweb/?a=blobdiff_plain;f=support%2Fmake%2Favr%2Favr.rules;h=a8c5d025884e010d877fcdd857d93649df303bba;hb=e9bfab607e051bae6afb47b44892ce37541d1b44;hp=9d398109da857f1058fdb5d93fb54c49a32f2c1c;hpb=742d9605d866e62bec6fc0f27344b278d11d31dd;p=tinyos-2.x.git diff --git a/support/make/avr/avr.rules b/support/make/avr/avr.rules index 9d398109..a8c5d025 100644 --- a/support/make/avr/avr.rules +++ b/support/make/avr/avr.rules @@ -7,13 +7,12 @@ define AVR_HELP debug : compile with minimal optimization and debug symbols debugopt : compile with debug symbols - xnp : compile for network programming Programmer options: dapa : (default) use parallel port programmer - mib510, : use MIB510 serial port programming board at port - eprb, : use EPRB at hostname + mib510, : use MIB510/MIB520 serial port programming board at port + eprb, : use EPRB (MIB600) at hostname avrisp, : use AVRISP serial programmer at port The dev or host parameter for the programmer option need not be specified, @@ -23,31 +22,70 @@ define AVR_HELP endef HELP += $(AVR_HELP) +ifdef MAKE_DEPUTY_FLAG + NCC_SAFE_TINYOS_FLAGS = -DSAFE_TINYOS -I$(TOSDIR)/lib/safe -fnesc-deputy -fnesc-deputy-args='-I$(TOSDIR)/lib/safe/include --FLIDs=build/$(PLATFORM)/flids.txt --envmachine -DSAFE_TINYOS --nolib ' +else + NCC_SAFE_TINYOS_FLAGS = +endif + OBJCOPY = avr-objcopy OBJDUMP = avr-objdump SET_ID = tos-set-symbols -PROGRAMMER = uisp +PROGRAMMER ?= uisp NCC = ncc LIBS = -lm -AMADDR = ActiveMessageAddressC\$$addr -BUILDDIR = build/$(PLATFORM) +# Use __ as the separator - requires nesC 1.2.9 or later +ifneq ($(filter sim,$(GOALS)),sim) +ifneq ($(filter sim-sf,$(GOALS)),sim-sf) + PFLAGS += -fnesc-separator=__ +endif +endif +AMADDR = ActiveMessageAddressC__addr +BUILDDIR ?= build/$(PLATFORM) MAIN_EXE = $(BUILDDIR)/main.exe MAIN_SREC = $(BUILDDIR)/main.srec MAIN_IHEX = $(BUILDDIR)/main.ihex INSTALL_SREC = $(MAIN_SREC).out$(if $(NODEID),-$(NODEID),) VOLUMEFILE = volumes-at45db.xml +VOLUME_ALLOCATOR ?= tos-storage-at45db +VOLUME_ALLOCATOR_FLAGS ?= PFLAGS += -Wall -Wshadow $(NESC_FLAGS) PFLAGS += -target=$(PLATFORM) -fnesc-cfile=$(BUILDDIR)/app.c -board=$(SENSORBOARD) ifdef MSG_SIZE PFLAGS += -DTOSH_DATA_LENGTH=$(MSG_SIZE) endif +ifdef DEFAULT_LOCAL_GROUP +PFLAGS += -DDEFINED_TOS_AM_GROUP=$(DEFAULT_LOCAL_GROUP) +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) + ifeq ($(findstring Darwin, $(shell uname)), Darwin) + AVRDUDE_CONF ?= /opt/local/etc/avrdude.conf + endif + 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 ifndef NOWIRING @@ -60,12 +98,19 @@ $(if $(PROGRAM),,$(call TOSMake_include,avr/$(DEFAULT_PROGRAM).extra)) # Build storage file if volumes.xml present ifneq ($(wildcard $(VOLUMEFILE)), ) -exe0: $(BUILDDIR)/StorageVolumes.h +build_storage: $(BUILDDIR)/StorageVolumes.h +exe0: build_storage + +VOLUME_ALLOCATOR_FLAGS ?= $(BUILDDIR)/StorageVolumes.h: $(VOLUMEFILE) - tos-storage-at45db $(PLATFORMDIR) <$(VOLUMEFILE) >$@ || rm -f $@ + $(VOLUME_ALLOCATOR) $(VOLUME_ALLOCATOR_FLAGS) $(PLATFORMDIR) <$(VOLUMEFILE) >$@ || rm -f $@ PFLAGS += -I$(BUILDDIR) +else + +build_storage: + endif ifndef BUILD_DEPS @@ -97,9 +142,14 @@ exe: exe0 bytes FORCE exe0: builddir $(BUILD_EXTRA_DEPS) FORCE @echo " compiling $(COMPONENT) to a $(PLATFORM) binary" - $(NCC) -o $(MAIN_EXE) $(OPTFLAGS) $(PFLAGS) $(CFLAGS) $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS) + $(NCC) -o $(MAIN_EXE) $(NCC_SAFE_TINYOS_FLAGS) $(OPTFLAGS) $(PFLAGS) $(CFLAGS) $(WIRING_CHECK_FLAGS) $(COMPONENT).nc $(LIBS) $(LDFLAGS) ifdef WIRING_CHECK_FILE @nescc-wiring $(WIRING_CHECK_FILE) +endif +ifdef STACK_CHECK + @echo + @-tos-ramsize $(PLATFORM) $(MAIN_EXE) + @echo endif @echo " compiled $(COMPONENT) to $(MAIN_EXE)"