tinyos-2.x.rar

源代码在线查看: avr.rules

软件大小: 21877 K
上传用户: Whibsvvy
关键词: tinyos
下载地址: 免注册下载 普通下载 VIP

相关代码

				#-*-Makefile-*- vim:syntax=make
				#$Id: avr.rules,v 1.27 2009/11/30 20:39:12 razvanm Exp $
				
				define AVR_HELP
				
				 AVR extras:
				
				   debug    : compile with minimal optimization and debug symbols
				   debugopt : compile with debug symbols
				
				 Programmer options:
				
				   dapa         : (default) use parallel port programmer
				   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,
				   in which case it is expected to be defined as in an environment variable of
				   the same name in all caps (such as MIB510, EPRB, or AVRISP).
				
				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
				NCC = ncc
				LIBS = -lm
				
				# 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
				
				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, $(OSTYPE)), 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
				include $(TINYOS_MAKE_PATH)/wiring.extra
				endif
				
				# Use the 'if' function instead of the 'ifdef' construct because ifdef freaks
				# out with call in there.  I don't know why.
				$(if $(PROGRAM),,$(call TOSMake_include,avr/$(DEFAULT_PROGRAM).extra))
				
				# Build storage file if volumes.xml present
				ifneq ($(wildcard $(VOLUMEFILE)), )
				build_storage: $(BUILDDIR)/StorageVolumes.h
				
				exe0: build_storage
				
				VOLUME_ALLOCATOR_FLAGS ?= 
				$(BUILDDIR)/StorageVolumes.h: $(VOLUMEFILE)
					$(VOLUME_ALLOCATOR) $(VOLUME_ALLOCATOR_FLAGS) $(PLATFORMDIR) $@ || rm -f $@
				
				PFLAGS += -I$(BUILDDIR)
				else
				
				build_storage:
				
				endif
				
				ifndef BUILD_DEPS
				  ifeq ($(filter $(BUILDLESS_DEPS),$(GOALS)),)
				    BUILD_DEPS = srec tosimage bytes $(POST_BUILD_EXTRA_DEPS)
				  endif
				endif
				
				setid: FORCE
					@cmd () { echo "$$@"; $$@; }; if [ x = x$(NODEID) ]; then cmd cp $(MAIN_SREC) $(INSTALL_SREC); else cmd $(SET_ID) $(MAIN_SREC) $(INSTALL_SREC) TOS_NODE_ID=$(NODEID) $(AMADDR)=$(NODEID) ; fi
				
				delsetid: FORCE
					rm -f $(subst .srec.,.exe.,$(INSTALL_SREC)) $(INSTALL_SREC) 
				
				srec: exe FORCE
					$(OBJCOPY) --output-target=srec $(MAIN_EXE) $(MAIN_SREC)
				
				tos_buildinfo: ihex build_buildinfo FORCE
				  @:
				  
				tosimage: ihex build_tosimage FORCE
					@:
				
				ihex: exe FORCE
					$(OBJCOPY) --output-target=ihex $(MAIN_EXE) $(MAIN_IHEX)
				
				exe: exe0 bytes FORCE
					@:
				
				exe0: builddir $(BUILD_EXTRA_DEPS) FORCE
					@echo "    compiling $(COMPONENT) to a $(PLATFORM) binary"
					$(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)"
				
				builddir: FORCE
					mkdir -p $(BUILDDIR)
				
				bytes: FORCE
					@$(OBJDUMP) -h $(MAIN_EXE) | perl -ne '$$b{$$1}=hex $$2 if /^\s*\d+\s*\.(text|data|bss)\s+(\S+)/; END { printf("%16d bytes in ROM\n%16d bytes in RAM\n",$$b{text}+$$b{data},$$b{data}+$$b{bss}); }'
				
							

相关资源