0d39ee96ad
Use the Z1 product ID as MAC/Node ID if no value is found in XMEM
183 lines
4.9 KiB
Makefile
183 lines
4.9 KiB
Makefile
# Common Makefile between the Z1 and Z1SP
|
|
|
|
ifdef GCC
|
|
CFLAGS+=-Os -g
|
|
endif
|
|
|
|
ifdef IAR
|
|
CFLAGS += -D__MSP430F2617__=1 -e --vla -Ohz --multiplier=16s --core=430X --double=32
|
|
else
|
|
LDFLAGS += -Wl,--defsym -Wl,__P1SEL2=0x0041 -Wl,--defsym -Wl,__P5SEL2=0x0045
|
|
endif
|
|
|
|
CLEAN += symbols.c symbols.h
|
|
|
|
ARCH=msp430.c leds.c watchdog.c xmem.c \
|
|
spi.c cc2420.c cc2420-arch.c cc2420-arch-sfd.c\
|
|
node-id.c sensors.c button-sensor.c cfs-coffee.c \
|
|
radio-sensor.c uart0.c uart0-putchar.c uip-ipchksum.c \
|
|
slip.c slip_uart0.c \
|
|
z1-phidgets.c sht11.c sht11-sensor.c light-sensor.c \
|
|
battery-sensor.c sky-sensors.c tmp102.c temperature-sensor.c light-ziglet.c \
|
|
relay-phidget.c tlc59116.c
|
|
|
|
CONTIKI_TARGET_DIRS = . dev apps net
|
|
ifndef CONTIKI_TARGET_MAIN
|
|
CONTIKI_TARGET_MAIN = contiki-z1-main.c
|
|
endif
|
|
|
|
ifeq ($(UIP_CONF_IPV6),1)
|
|
CFLAGS += -DWITH_UIP6=1
|
|
endif
|
|
|
|
ifdef nodemac
|
|
CFLAGS += -DMACID=$(nodemac)
|
|
endif
|
|
|
|
CONTIKI_TARGET_SOURCEFILES += $(ARCH) $(UIPDRIVERS)
|
|
CONTIKI_TARGET_SOURCEFILES += i2cmaster.c adxl345.c
|
|
|
|
MCU=msp430f2617
|
|
|
|
# Platform has a MSP430X MCU with 20-bit support
|
|
CPU_HAS_MSP430X=1
|
|
|
|
include $(CONTIKI)/cpu/msp430/Makefile.msp430
|
|
|
|
# Add LDFLAGS after IAR_PATH is set
|
|
ifdef IAR
|
|
LDFLAGSNO += -xm "$(IAR_PATH)/lib/dlib/dl430xsfn.r43" -f "$(IAR_PATH)/config/lnk430f2617.xcl"
|
|
LDFLAGS += $(LDFLAGSNO) -Felf -yn
|
|
endif
|
|
|
|
contiki-$(TARGET).a: ${addprefix $(OBJECTDIR)/,symbols.o}
|
|
# $(AR) rcf $@ $^
|
|
|
|
|
|
NUMPAR=20
|
|
IHEXFILE=tmpimage.ihex
|
|
|
|
ifeq ($(HOST_OS),Darwin)
|
|
ifndef MOTELIST
|
|
USBDEVPREFIX=
|
|
SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-linux
|
|
MOTELIST = $(CONTIKI)/tools/z1/motelist-z1-macos
|
|
BSL = $(CONTIKI)/tools/z1/z1-bsl-nopic --z1
|
|
BSL_FILETYPE = -I
|
|
MOTES = $(shell $(MOTELIST) -c 2>&- | \
|
|
cut -f 2 -d ,)
|
|
CMOTES=$(MOTES)
|
|
REFNUM = $(shell $(MOTELIST) -c 2>&- | \
|
|
cut -f 1 -d , | tail -c5)
|
|
ifneq (,$(REFNUM))
|
|
# No device fo-und
|
|
ifeq (,$(findstring und, $(REFNUM)))
|
|
CFLAGS += -DSERIALNUM=$(REFNUM)
|
|
endif
|
|
endif
|
|
endif
|
|
else
|
|
# If we are not running under Mac, we assume Linux
|
|
ifndef MOTELIST
|
|
USBDEVPREFIX=
|
|
SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-linux
|
|
MOTELIST = $(CONTIKI)/tools/z1/motelist-z1
|
|
BSL = $(CONTIKI)/tools/z1/z1-bsl-nopic --z1
|
|
BSL_FILETYPE = -I
|
|
MOTES = $(shell $(MOTELIST) -c 2>&- | \
|
|
cut -f 2 -d , | \
|
|
perl -ne 'print $$1 . " " if(m-(/dev/\w+)-);')
|
|
CMOTES=$(MOTES)
|
|
REFNUM = $(shell $(MOTELIST) -c 2>&- | \
|
|
cut -f 1 -d , | tail -c5 )
|
|
ifneq (,$(REFNUM))
|
|
# No device fo-und
|
|
ifeq (,$(findstring und, $(REFNUM)))
|
|
CFLAGS += -DSERIALNUM=$(REFNUM)
|
|
endif
|
|
endif
|
|
endif
|
|
endif
|
|
|
|
|
|
|
|
motelist: z1-motelist
|
|
|
|
z1-motelist:
|
|
$(MOTELIST)
|
|
z1-motes:
|
|
@echo $(MOTES)
|
|
|
|
ifdef MOTE
|
|
%.upload: %.ihex
|
|
cp $< $(IHEXFILE)
|
|
$(MAKE) z1-u.$(subst /,-,$(word $(MOTE), $(MOTES)))
|
|
else # MOTE
|
|
%.upload: %.ihex
|
|
cp $< $(IHEXFILE)
|
|
@echo $(MOTES)
|
|
$(MAKE) z1-reset z1-upload
|
|
endif # MOTE
|
|
|
|
z1-upload: z1-reset
|
|
$(MAKE) -j $(NUMPAR) z1-upload-sequence
|
|
|
|
z1-upload-sequence: $(foreach PORT, $(MOTES), z1-u.$(subst /,-,$(PORT)))
|
|
@echo Done
|
|
|
|
z1-reset:
|
|
$(MAKE) -k -j $(NUMPAR) z1-reset-sequence
|
|
|
|
z1-reset-sequence: $(foreach PORT, $(MOTES), z1-r.$(subst /,-,$(PORT)))
|
|
@echo Done
|
|
|
|
z1-u.%:
|
|
@echo +++++ Erasing $(subst -,/,$*); \
|
|
$(BSL) -c $(subst -,/,$*) -e && sleep 2 ; \
|
|
echo +++++ Programming $(subst -,/,$*) ; \
|
|
$(BSL) -c $(subst -,/,$*) $(BSL_FILETYPE) -p $(IHEXFILE) && sleep 2 ; \
|
|
echo +++++ Resetting $(subst -,/,$*) ; \
|
|
$(BSL) -c $(subst -,/,$*) -r
|
|
|
|
z1-r.%:
|
|
$(BSL) -c $(subst -,/,$*) -r
|
|
|
|
sizeplot:
|
|
msp430-size $(OBJECTDIR)/*.o | $(CONTIKI)/tools/sky/check-size > size-data
|
|
gnuplot $(CONTIKI)/tools/sky/plot-size
|
|
gv size.pdf
|
|
|
|
winslip:
|
|
ifdef INTERFACE
|
|
$(CONTIKI)/tools/wpcapslip/wpcapslip -s $(USBDEVPREFIX)$(firstword $(CMOTES)) $(INTERFACE) 172.16.0.0 255.255.0.0
|
|
else
|
|
@echo "Usage: \"$(MAKE) $@ INTERFACE=<the IP address of a local network interface>\""
|
|
@echo "Use the \"ipconfig\" command to find out the IP addresses of the local interfaces"
|
|
endif
|
|
|
|
linslip: $(CONTIKI)/tools/tunslip
|
|
$(CONTIKI)/tools/tunslip -s $(USBDEVPREFIX)$(firstword $(CMOTES)) 172.16.0.0 255.255.0.0
|
|
|
|
$(CONTIKI)/tools/tunslip:
|
|
(cd $(CONTIKI)/tools; $(MAKE) tunslip)
|
|
|
|
ifdef MOTE
|
|
serialdump:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(word $(MOTE), $(CMOTES)) | $(CONTIKI)/tools/timestamp | tee serialdump-`date +%Y%m%d-%H%M`
|
|
|
|
serialview:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(word $(MOTE), $(CMOTES)) | $(CONTIKI)/tools/timestamp
|
|
|
|
login:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(word $(MOTE), $(CMOTES))
|
|
else
|
|
serialdump:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(CMOTES)) | $(CONTIKI)/tools/timestamp | tee serialdump-`date +%Y%m%d-%H%M`
|
|
|
|
serialview:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(CMOTES)) | $(CONTIKI)/tools/timestamp
|
|
|
|
login:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(CMOTES))
|
|
endif
|