Passed tests on Raven 1284p in 3 seconds with 56KB program memory disk
[contiki-2.x.git] / platform / sky / Makefile.sky
blob755c5998a6407e68047981ba3b8f4ff3e3673d65
1 # $Id: Makefile.sky,v 1.26 2009/06/26 12:00:49 joxe Exp $
4 ARCH=msp430.c leds.c watchdog.c light.c spi.c ds2411.c \
5      xmem.c i2c.c sht11.c battery-sensor.c acc-sensor.c \
6      cc2420.c cc2420-aes.c cc2420-arch.c irq.c \
7      node-id.c sensors.c button-sensor.c cfs-coffee.c \
8      radio-sensor.c uart1.c uip-ipchksum.c \
9      checkpoint-arch.c #slip.c slip_uart1.c
11 CONTIKI_TARGET_DIRS = . dev apps net
12 ifndef CONTIKI_TARGET_MAIN
13 CONTIKI_TARGET_MAIN = contiki-sky-main.c
14 endif
16 ifdef UIP_CONF_IPV6
17 CFLAGS += -DWITH_UIP6=1
18 endif
20 CONTIKI_TARGET_SOURCEFILES += $(ARCH) $(UIPDRIVERS) $(CONTIKI_TARGET_MAIN)
22 MCU=msp430x1611
23 include $(CONTIKI)/cpu/msp430/Makefile.msp430
25 contiki-$(TARGET).a: ${addprefix $(OBJECTDIR)/,symbols.o}
26 #       $(AR) rcf $@ $^
29 NUMPAR=20
30 IHEXFILE=tmpimage.ihex
32 # Check if we are running under Windows
33 ifdef OS
34   ifneq (,$(findstring Windows,$(OS)))
35     USBDEVPREFIX=/dev/com
36     SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-windows
37     MOTELIST = $(CONTIKI)/tools/sky/motelist-windows
38     TMOTE_BSL=$(if $(wildcard $(CONTIKI)/tools/sky/tmote-bsl.exe),1,0)
39     ifeq ($(TMOTE_BSL), 1)
40       NUMPAR = 1
41       BSL =  $(CONTIKI)/tools/sky/tmote-bsl
42       MOTES = $(shell $(MOTELIST) | grep COM | \
43          cut -f 4 -d \  )
44     else
45       BSL = $(CONTIKI)/tools/sky/msp430-bsl-windows --telosb
46       BSL_FILETYPE = -I
47       MOTES = $(shell $(MOTELIST) | grep COM | \
48          cut -f 4 -d \  | \
49          perl -ne 'print $$1 - 1 . " " if(/COM(\d+)/);')
50     endif
51     CMOTES = $(shell $(MOTELIST) | grep COM | \
52        cut -f 4 -d \  | \
53        perl -ne 'print $$1 . " " if(/COM(\d+)/);')
54   endif
55 endif
57 # If we are not running under Windows, we assume Linux
58 ifndef MOTELIST
59   USBDEVPREFIX=
60   SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-linux
61   MOTELIST = $(CONTIKI)/tools/sky/motelist-linux
62   TMOTE_BSL=$(if $(wildcard $(CONTIKI)/tools/sky/tmote-bsl-linux),1,0)
63   ifeq ($(TMOTE_BSL), 1)
64     PATH := $(PATH):$(CONTIKI)/tools/sky
65     BSL =  $(CONTIKI)/tools/sky/tmote-bsl-linux
66     NUMPAR = 1
67   else
68     BSL = $(CONTIKI)/tools/sky/msp430-bsl-linux --telosb
69     BSL_FILETYPE = -I
70   endif
71   MOTES = $(shell $(MOTELIST) 2>&- | grep USB | \
72      cut -f 4 -d \  | \
73      perl -ne 'print $$1 . " " if(m-(/dev/\w+)-);')
74   CMOTES=$(MOTES)
75 endif
77 sky-motelist:
78         $(MOTELIST)
79 sky-motes:
80         @echo $(MOTES)
82 %.upload: %.ihex
83         cp $< $(IHEXFILE)
84         $(MAKE) sky-reset sky-upload
86 sky-upload: sky-reset
87         $(MAKE) -j $(NUMPAR) sky-upload-sequence
89 sky-upload-sequence:    $(foreach PORT, $(MOTES), sky-u.$(subst /,-,$(PORT)))
90         @echo Done
92 sky-reset:
93         $(MAKE) -k -j $(NUMPAR) sky-reset-sequence
95 sky-reset-sequence:     $(foreach PORT, $(MOTES), sky-r.$(subst /,-,$(PORT)))
96         @echo Done
98 sky-u.%:
99         @echo +++++ Erasing $(subst -,/,$*); \
100         $(BSL) -c $(subst -,/,$*) -e && sleep 2 ; \
101         echo +++++ Programming $(subst -,/,$*) ; \
102         $(BSL) -c $(subst -,/,$*) $(BSL_FILETYPE) -p $(IHEXFILE) && sleep 2 ; \
103         echo +++++ Resetting $(subst -,/,$*) ; \
104         $(BSL) -c $(subst -,/,$*) -r
106 sky-r.%:
107         $(BSL) -c $(subst -,/,$*) -r
109 sizeplot:
110         msp430-size $(OBJECTDIR)/*.o | $(CONTIKI)/tools/sky/check-size > size-data
111         gnuplot $(CONTIKI)/tools/sky/plot-size
112         gv size.pdf
114 winslip:
115 ifdef INTERFACE
116         $(CONTIKI)/tools/wpcapslip/wpcapslip -s $(USBDEVPREFIX)$(firstword $(CMOTES)) $(INTERFACE) 172.16.0.0 255.255.0.0
117 else
118         @echo "Usage: \"$(MAKE) $@ INTERFACE=<the IP address of a local network interface>\""
119         @echo "Use the \"ipconfig\" command to find out the IP addresses of the local interfaces"
120 endif
122 linslip: $(CONTIKI)/tools/tunslip
123         $(CONTIKI)/tools/tunslip -s $(USBDEVPREFIX)$(firstword $(CMOTES)) 172.16.0.0 255.255.0.0
125 $(CONTIKI)/tools/tunslip:
126         (cd $(CONTIKI)/tools; $(MAKE) tunslip)
128 ifdef MOTE
129 serialdump:
130         $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(word $(MOTE), $(CMOTES)) | $(CONTIKI)/tools/timestamp | tee serialdump-`date +%Y%m%d-%H%M`
132 serialview:
133         $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(word $(MOTE), $(CMOTES)) | $(CONTIKI)/tools/timestamp
135 login:
136         $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(word $(MOTE), $(CMOTES))
137 else
138 serialdump:
139         $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(CMOTES)) | $(CONTIKI)/tools/timestamp | tee serialdump-`date +%Y%m%d-%H%M`
141 serialview:
142         $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(CMOTES)) | $(CONTIKI)/tools/timestamp
144 login:
145         $(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(CMOTES))
146 endif