tinyos-2.x.rar

源代码在线查看: msp.rules

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

相关代码

				#-*-Makefile-*- vim:syntax=make
				#$Id: msp.rules,v 1.19 2009/11/12 20:40:06 razvanm Exp $
				
				define MSP_HELP
				
				 MSP extras:
				
				   debug    : compile with minimal optimization and debug symbols
				   debugopt : compile with debug symbols
				
				 Programmer options:
				
				   bsl,auto      : (default) use BSL programmer on the first mote found
				   bsl,    : use BSL programmer on  serial port
				   bsl,ref, : use BSL programmer on the mote with reference 
				
				   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 BSL).
				
				endef
				HELP += $(MSP_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
				
				#MSP_NESC_TARGET ?= msp430
				#MSP_GCC ?= msp430-gcc
				#MSP_MCU ?= msp430x149
				#PFLAGS += -fnesc-target=$(MSP_NESC_TARGET) -gcc=$(MSP_GCC) -mmcu=$(MSP_MCU)
				
				OBJCOPY = msp430-objcopy
				OBJDUMP = msp430-objdump
				SET_ID = tos-set-symbols
				NCC = ncc
				LIBS = -lm
				
				# Use __ as the separator - requires nesC 1.2.9 or later
				ifneq ($(filter sim,$(GOALS)),sim)
				        PFLAGS += -fnesc-separator=__
				endif
				
				AMADDR = ActiveMessageAddressC__addr
				BUILDDIR ?= build/$(PLATFORM)
				MAIN_EXE = $(BUILDDIR)/main.exe
				MAIN_IHEX = $(BUILDDIR)/main.ihex
				INSTALL_IHEX = $(MAIN_IHEX).out$(if $(NODEID),-$(NODEID),)
				
				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
				
				DEFAULT_PROGRAM ?= bsl
				
				BUILDLESS_DEPS += bytes
				
				# 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,msp/$(DEFAULT_PROGRAM).extra))
				
				# Build storage file if volumes.xml present
				ifneq ($(wildcard $(VOLUME_FILE)), )
				build_storage: $(BUILDDIR)/StorageVolumes.h
				
				exe0: build_storage
				
				VOLUME_ALLOCATOR_FLAGS ?= 
				$(BUILDDIR)/StorageVolumes.h: $(VOLUME_FILE)
					$(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 = tosimage $(POST_BUILD_EXTRA_DEPS)
				  endif
				endif
				
				setid: FORCE
					@cmd () { echo "$$@"; $$@; }; if [ x = x$(NODEID) ]; then cmd cp $(MAIN_IHEX) $(INSTALL_IHEX); else cmd $(SET_ID) --objcopy $(OBJCOPY) --objdump $(OBJDUMP) --target ihex $(MAIN_IHEX) $(INSTALL_IHEX) TOS_NODE_ID=$(NODEID) $(AMADDR)=$(NODEID); fi
				
				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
					@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}); }'
				
							

相关资源