100 lines
2.8 KiB
Text
100 lines
2.8 KiB
Text
### Zoul Makefile
|
|
|
|
ifndef CONTIKI
|
|
$(error CONTIKI not defined! You must specify where CONTIKI resides!)
|
|
endif
|
|
|
|
### If no board is specified the default option is the RE-Mote
|
|
ifeq ($(BOARD),)
|
|
BOARD=remote
|
|
endif
|
|
|
|
PYTHON = python
|
|
BSL_FLAGS += -e -w -v
|
|
|
|
ifdef PORT
|
|
BSL_FLAGS += -p $(PORT)
|
|
endif
|
|
|
|
### Configure the build for the board and pull in board-specific sources
|
|
CONTIKI_TARGET_DIRS += . dev
|
|
CONTIKI_TARGET_DIRS += . $(BOARD)
|
|
PLATFORM_ROOT_DIR = $(CONTIKI)/platform/$(TARGET)
|
|
|
|
### Include the board dir if one exists
|
|
-include $(PLATFORM_ROOT_DIR)/$(BOARD)/Makefile.$(BOARD)
|
|
|
|
### Include
|
|
CONTIKI_TARGET_SOURCEFILES += contiki-main.c
|
|
CONTIKI_TARGET_SOURCEFILES += leds.c leds-arch.c cc1200-zoul-arch.c
|
|
CONTIKI_TARGET_SOURCEFILES += adc-sensors.c button-sensor.c zoul-sensors.c
|
|
CONTIKI_TARGET_SOURCEFILES += $(BOARD_SOURCEFILES)
|
|
|
|
CONTIKI_SOURCEFILES += $(CONTIKI_TARGET_SOURCEFILES)
|
|
|
|
CLEAN += *.zoul
|
|
|
|
### Unless the example dictates otherwise, build with code size optimisations
|
|
ifndef SMALL
|
|
SMALL = 1
|
|
endif
|
|
|
|
### Define the CPU directory
|
|
CONTIKI_CPU=$(CONTIKI)/cpu/cc2538
|
|
include $(CONTIKI_CPU)/Makefile.cc2538
|
|
|
|
MODULES += core/net core/net/mac \
|
|
core/net/mac/contikimac \
|
|
core/net/llsec dev/cc1200
|
|
|
|
BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py
|
|
|
|
### USe the specific Zoul subplatform to query for connected devices
|
|
ifdef MOTELIST_ZOLERTIA
|
|
MOTELIST_FLAGS += -b $(MOTELIST_ZOLERTIA)
|
|
endif
|
|
|
|
### Detect if a mote is connected over serial port
|
|
ifeq ($(HOST_OS),Darwin)
|
|
USBDEVPREFIX=
|
|
MOTELIST = $(CONTIKI)/tools/zolertia/motelist-zolertia-macos
|
|
MOTES = $(shell $(MOTELIST) -c 2>&- | cut -f 2 -d ,)
|
|
else
|
|
### If we are not running under Mac, we assume Linux
|
|
USBDEVPREFIX=
|
|
SERIALDUMP = $(CONTIKI)/tools/sky/serialdump-linux
|
|
MOTELIST = $(CONTIKI)/tools/zolertia/motelist-zolertia
|
|
MOTES = $(shell $(MOTELIST) -b $(MOTELIST_ZOLERTIA) -c 2>&- | cut -f 2 -d , | \
|
|
perl -ne 'print $$1 . " " if(m-(/dev/\w+)-);')
|
|
endif
|
|
|
|
%.upload: %.bin %.elf
|
|
ifeq ($(wildcard $(BSL)), )
|
|
@echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?"
|
|
else
|
|
$(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h $*.elf | grep -B1 LOAD | \
|
|
grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \
|
|
sort -g | head -1))
|
|
$(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $<
|
|
endif
|
|
|
|
motelist:
|
|
$(MOTELIST)
|
|
zoul-motelist:
|
|
$(MOTELIST) $(MOTELIST_FLAGS)
|
|
zoul-motes:
|
|
@echo $(MOTES)
|
|
|
|
ifdef PORT
|
|
serialview:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX) $(PORT) | $(CONTIKI)/tools/timestamp
|
|
|
|
login:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX) $(PORT)
|
|
else
|
|
serialview:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(MOTES)) | $(CONTIKI)/tools/timestamp
|
|
|
|
login:
|
|
$(SERIALDUMP) -b115200 $(USBDEVPREFIX)$(firstword $(MOTES))
|
|
endif
|