Merge branch 'release-4.2' into contrib/tests/out-of-tree
This commit is contained in:
commit
3b9394d9ad
|
@ -12,7 +12,7 @@
|
||||||
*.ihex
|
*.ihex
|
||||||
*.pyc
|
*.pyc
|
||||||
*~
|
*~
|
||||||
obj_*
|
build/*
|
||||||
Makefile.target
|
Makefile.target
|
||||||
Makefile.*.defines
|
Makefile.*.defines
|
||||||
tools/doxygen/html
|
tools/doxygen/html
|
||||||
|
|
|
@ -13,8 +13,6 @@ include $(CONTIKI)/Makefile.identify-target
|
||||||
### Include Makefile.tools to pull in targets that allow us to build tools dir
|
### Include Makefile.tools to pull in targets that allow us to build tools dir
|
||||||
include $(CONTIKI)/Makefile.tools
|
include $(CONTIKI)/Makefile.tools
|
||||||
|
|
||||||
CONTIKI_NG_TARGET_LIB = contiki-ng-$(TARGET).a
|
|
||||||
|
|
||||||
ifeq ($(DEFINES),)
|
ifeq ($(DEFINES),)
|
||||||
-include Makefile.$(TARGET).defines
|
-include Makefile.$(TARGET).defines
|
||||||
ifneq ($(DEFINES),)
|
ifneq ($(DEFINES),)
|
||||||
|
@ -39,7 +37,12 @@ ifdef CI
|
||||||
endif
|
endif
|
||||||
endif
|
endif
|
||||||
|
|
||||||
OBJECTDIR = obj_$(TARGET)
|
BUILD_DIR = build
|
||||||
|
BUILD_DIR_TARGET = $(BUILD_DIR)/$(TARGET)
|
||||||
|
BUILD_DIR_BOARD = $(BUILD_DIR_TARGET)/$(BOARD)/$(BUILD_DIR_CONFIG)
|
||||||
|
OBJECTDIR = $(BUILD_DIR_BOARD)/obj
|
||||||
|
|
||||||
|
CONTIKI_NG_TARGET_LIB = $(BUILD_DIR_BOARD)/contiki-ng-$(TARGET).a
|
||||||
|
|
||||||
LOWERCASE = -abcdefghijklmnopqrstuvwxyz/
|
LOWERCASE = -abcdefghijklmnopqrstuvwxyz/
|
||||||
UPPERCASE = _ABCDEFGHIJKLMNOPQRSTUVWXYZ_
|
UPPERCASE = _ABCDEFGHIJKLMNOPQRSTUVWXYZ_
|
||||||
|
@ -75,10 +78,6 @@ endef
|
||||||
CONTIKI_OBJECTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(CONTIKI_SOURCEFILES)}}
|
CONTIKI_OBJECTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(CONTIKI_SOURCEFILES)}}
|
||||||
PROJECT_OBJECTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(PROJECT_SOURCEFILES)}}
|
PROJECT_OBJECTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(PROJECT_SOURCEFILES)}}
|
||||||
|
|
||||||
# Provide way to create $(OBJECTDIR) if it has been removed by make clean
|
|
||||||
$(OBJECTDIR):
|
|
||||||
mkdir $@
|
|
||||||
|
|
||||||
uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
|
uniq = $(if $1,$(firstword $1) $(call uniq,$(filter-out $(firstword $1),$1)))
|
||||||
|
|
||||||
### Include target makefile (TODO Unsafe?)
|
### Include target makefile (TODO Unsafe?)
|
||||||
|
@ -124,6 +123,11 @@ endif # $(BOARD) not empty
|
||||||
|
|
||||||
PLATFORM_ACTION ?= build
|
PLATFORM_ACTION ?= build
|
||||||
|
|
||||||
|
# Provide way to create $(OBJECTDIR) if it has been removed by make clean
|
||||||
|
$(OBJECTDIR):
|
||||||
|
$(TRACE_MKDIR)
|
||||||
|
$(Q)mkdir -p $@
|
||||||
|
|
||||||
ifneq ($(BOARD),)
|
ifneq ($(BOARD),)
|
||||||
TARGET_BOARD_UPPERCASE := ${strip ${shell echo $(BOARD) | sed y!$(LOWERCASE)!$(UPPERCASE)!}}
|
TARGET_BOARD_UPPERCASE := ${strip ${shell echo $(BOARD) | sed y!$(LOWERCASE)!$(UPPERCASE)!}}
|
||||||
CFLAGS += -DCONTIKI_BOARD_$(TARGET_BOARD_UPPERCASE)=1
|
CFLAGS += -DCONTIKI_BOARD_$(TARGET_BOARD_UPPERCASE)=1
|
||||||
|
@ -241,12 +245,20 @@ ifeq ($(V),1)
|
||||||
TRACE_LD =
|
TRACE_LD =
|
||||||
TRACE_AR =
|
TRACE_AR =
|
||||||
TRACE_AS =
|
TRACE_AS =
|
||||||
|
TRACE_OBJCOPY =
|
||||||
|
TRACE_OBJDUMP =
|
||||||
|
TRACE_MKDIR =
|
||||||
|
TRACE_CP =
|
||||||
Q=
|
Q=
|
||||||
else
|
else
|
||||||
TRACE_CC = @echo " CC " $<
|
TRACE_CC = @echo " CC " $<
|
||||||
TRACE_LD = @echo " LD " $@
|
TRACE_LD = @echo " LD " $@
|
||||||
TRACE_AR = @echo " AR " $@
|
TRACE_AR = @echo " AR " $@
|
||||||
TRACE_AS = @echo " AS " $<
|
TRACE_AS = @echo " AS " $<
|
||||||
|
TRACE_OBJCOPY = @echo " OBJCOPY " $< "-->" $@
|
||||||
|
TRACE_OBJDUMP = @echo " OBJDUMP " $< "-->" $@
|
||||||
|
TRACE_MKDIR = @echo " MKDIR " $@
|
||||||
|
TRACE_CP = @echo " CP " $< "-->" $@
|
||||||
Q=@
|
Q=@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -303,14 +315,13 @@ endef
|
||||||
|
|
||||||
### Harmonize filename of a .map file, if the platform's build system wants
|
### Harmonize filename of a .map file, if the platform's build system wants
|
||||||
### to create one
|
### to create one
|
||||||
CONTIKI_NG_PROJECT_MAP = $(addsuffix -$(TARGET).map, $(basename $@))
|
CONTIKI_NG_PROJECT_MAP = $(BUILD_DIR_BOARD)/$(basename $(notdir $@)).map
|
||||||
|
|
||||||
.PHONY: clean distclean usage help targets boards savetarget savedefines viewconf
|
.PHONY: clean distclean usage help targets boards savetarget savedefines viewconf
|
||||||
|
|
||||||
clean:
|
clean:
|
||||||
-$(Q)rm -f *.d *.e *.o $(CONTIKI_NG_TARGET_LIB) $(CLEAN)
|
-$(Q)rm -f *.d *.e *.o $(CLEAN)
|
||||||
-$(Q)rm -rf $(OBJECTDIR)
|
-$(Q)rm -rf $(BUILD_DIR_TARGET)
|
||||||
-$(Q)rm -f $(addsuffix -$(TARGET).map, $(CONTIKI_PROJECT))
|
|
||||||
-$(Q)rm -f $(addsuffix .$(TARGET), $(CONTIKI_PROJECT))
|
-$(Q)rm -f $(addsuffix .$(TARGET), $(CONTIKI_PROJECT))
|
||||||
@echo Target $(TARGET) cleaned
|
@echo Target $(TARGET) cleaned
|
||||||
|
|
||||||
|
@ -319,6 +330,7 @@ distclean:
|
||||||
echo Running: $(MAKE) TARGET=$$TARG clean; \
|
echo Running: $(MAKE) TARGET=$$TARG clean; \
|
||||||
$(MAKE) TARGET=$$TARG clean; \
|
$(MAKE) TARGET=$$TARG clean; \
|
||||||
done
|
done
|
||||||
|
-$(Q)rm -rf $(BUILD_DIR)
|
||||||
|
|
||||||
-include $(CONTIKI)/arch/platform/$(TARGET)/Makefile.customrules-$(TARGET)
|
-include $(CONTIKI)/arch/platform/$(TARGET)/Makefile.customrules-$(TARGET)
|
||||||
|
|
||||||
|
@ -383,12 +395,16 @@ ifndef LD
|
||||||
endif
|
endif
|
||||||
|
|
||||||
ifndef CUSTOM_RULE_LINK
|
ifndef CUSTOM_RULE_LINK
|
||||||
%.$(TARGET): %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(CONTIKI_NG_TARGET_LIB)
|
$(BUILD_DIR_BOARD)/%.$(TARGET): %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(CONTIKI_NG_TARGET_LIB)
|
||||||
$(TRACE_LD)
|
$(TRACE_LD)
|
||||||
$(Q)$(LD) $(LDFLAGS) $(TARGET_STARTFILES) ${filter-out %.a,$^} \
|
$(Q)$(LD) $(LDFLAGS) $(TARGET_STARTFILES) ${filter-out %.a,$^} \
|
||||||
${filter %.a,$^} $(TARGET_LIBFILES) -o $@
|
${filter %.a,$^} $(TARGET_LIBFILES) -o $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
%.$(TARGET): $(BUILD_DIR_BOARD)/%.$(TARGET)
|
||||||
|
$(TRACE_CP)
|
||||||
|
$(Q)cp $< $@
|
||||||
|
|
||||||
%.ramprof: %.$(TARGET)
|
%.ramprof: %.$(TARGET)
|
||||||
$(NM) -S -td --size-sort $< | grep -i " [abdrw] " | cut -d' ' -f2,4
|
$(NM) -S -td --size-sort $< | grep -i " [abdrw] " | cut -d' ' -f2,4
|
||||||
|
|
||||||
|
@ -446,9 +462,9 @@ ifeq ($(findstring $(TARGET),native cooja),)
|
||||||
include $(CONTIKI)/Makefile.embedded
|
include $(CONTIKI)/Makefile.embedded
|
||||||
endif
|
endif
|
||||||
|
|
||||||
# Don't treat %.$(TARGET) as an intermediate file because it is
|
# Don't treat $(BUILD_DIR_BOARD)/%.$(TARGET) and $(TARGET) as intermediate
|
||||||
# in fact the primary target.
|
# files because for many platforms they are in fact the primary target.
|
||||||
.PRECIOUS: %.$(TARGET)
|
.PRECIOUS: $(BUILD_DIR_BOARD)/%.$(TARGET) %.$(TARGET)
|
||||||
|
|
||||||
# Cancel the predefined implict rule for compiling and linking
|
# Cancel the predefined implict rule for compiling and linking
|
||||||
# a single C source into a binary to force GNU make to consider
|
# a single C source into a binary to force GNU make to consider
|
||||||
|
|
|
@ -1,3 +1,11 @@
|
||||||
|
### Verbosity control. Use make V=1 to get verbose builds.
|
||||||
|
### Extends what we already have in the top-level Makefile
|
||||||
|
ifeq ($(V),1)
|
||||||
|
TRACE_SREC_CAT =
|
||||||
|
else
|
||||||
|
TRACE_SREC_CAT = @echo " SREC_CAT " $< "-->" $@
|
||||||
|
endif
|
||||||
|
|
||||||
CC = arm-none-eabi-gcc
|
CC = arm-none-eabi-gcc
|
||||||
CPP = arm-none-eabi-cpp
|
CPP = arm-none-eabi-cpp
|
||||||
LD = arm-none-eabi-gcc
|
LD = arm-none-eabi-gcc
|
||||||
|
@ -43,22 +51,32 @@ endif
|
||||||
### CPU-dependent cleanup files
|
### CPU-dependent cleanup files
|
||||||
CLEAN += *.elf *.bin *.lst *.hex *.i16hex
|
CLEAN += *.elf *.bin *.lst *.hex *.i16hex
|
||||||
|
|
||||||
|
OUT_HEX = $(BUILD_DIR_BOARD)/%.hex
|
||||||
|
OUT_I16HEX = $(BUILD_DIR_BOARD)/%.i16hex
|
||||||
|
OUT_BIN = $(BUILD_DIR_BOARD)/%.bin
|
||||||
|
OUT_LST = $(BUILD_DIR_BOARD)/%.lst
|
||||||
|
|
||||||
### Don't treat the following files as intermediate
|
### Don't treat the following files as intermediate
|
||||||
.PRECIOUS: %.elf %.hex %.bin
|
.PRECIOUS: $(OUT_ELF) $(OUT_HEX) $(OUT_BIN)
|
||||||
|
|
||||||
%.i16hex: %.elf
|
$(OUT_I16HEX): $(OUT_ELF)
|
||||||
$(OBJCOPY) -O ihex $< $@
|
$(TRACE_OBJCOPY)
|
||||||
|
$(Q)$(OBJCOPY) -O ihex $< $@
|
||||||
|
|
||||||
%.hex: %.i16hex
|
$(OUT_HEX): $(OUT_I16HEX)
|
||||||
$(SREC_CAT) $< -intel -o $@ -intel
|
$(TRACE_SREC_CAT)
|
||||||
|
$(Q)$(SREC_CAT) $< -intel -o $@ -intel
|
||||||
|
|
||||||
%.bin: %.elf
|
$(OUT_BIN): $(OUT_ELF)
|
||||||
$(OBJCOPY) -O binary $(OBJCOPY_FLAGS) $< $@
|
$(TRACE_OBJCOPY)
|
||||||
|
$(Q)$(OBJCOPY) -O binary $(OBJCOPY_FLAGS) $< $@
|
||||||
|
|
||||||
%.lst: %.elf
|
$(OUT_LST): $(OUT_ELF)
|
||||||
$(OBJDUMP) $(OBJDUMP_FLAGS) $< > $@
|
$(TRACE_OBJDUMP)
|
||||||
|
$(Q)$(OBJDUMP) $(OBJDUMP_FLAGS) $< > $@
|
||||||
|
|
||||||
### We don't really need the .hex and .bin for the .$(TARGET) but let's make
|
### We don't really need the .hex and .bin for the .$(TARGET) but let's make
|
||||||
### sure they get built
|
### sure they get built
|
||||||
%.$(TARGET): %.elf %.hex %.bin
|
$(BUILD_DIR_BOARD)/%.$(TARGET): $(OUT_ELF) $(OUT_HEX) $(OUT_BIN)
|
||||||
cp $< $@
|
$(TRACE_CP)
|
||||||
|
$(Q)cp $< $@
|
||||||
|
|
|
@ -3,11 +3,25 @@ CONTIKI_ARM_DIRS += cortex-m cortex-m/CMSIS
|
||||||
### Build syscalls for newlib
|
### Build syscalls for newlib
|
||||||
MODULES += os/lib/newlib
|
MODULES += os/lib/newlib
|
||||||
|
|
||||||
|
LDFLAGS += -T $(LDSCRIPT)
|
||||||
|
LDFLAGS += -Wl,--gc-sections,--sort-section=alignment
|
||||||
|
LDFLAGS += -Wl,-Map=$(CONTIKI_NG_PROJECT_MAP),--cref,--no-warn-mismatch
|
||||||
|
|
||||||
|
OBJCOPY_FLAGS += --gap-fill 0xff
|
||||||
|
|
||||||
|
CPU_STARTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(CPU_START_SOURCEFILES)}}
|
||||||
|
|
||||||
|
### Resolve any potential circular dependencies between the linked libraries
|
||||||
|
### See: https://stackoverflow.com/questions/5651869/gcc-what-are-the-start-group-and-end-group-command-line-options/5651895
|
||||||
|
TARGET_LIBFLAGS := -Wl,--start-group $(TARGET_LIBFILES) -Wl,--end-group
|
||||||
|
|
||||||
CUSTOM_RULE_LINK = 1
|
CUSTOM_RULE_LINK = 1
|
||||||
|
|
||||||
|
OUT_ELF = $(BUILD_DIR_BOARD)/%.elf
|
||||||
|
|
||||||
.SECONDEXPANSION:
|
.SECONDEXPANSION:
|
||||||
|
|
||||||
%.elf: $(CPU_STARTFILES) $$(CONTIKI_OBJECTFILES) %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(LDSCRIPT) $(TARGET_LIBS)
|
$(OUT_ELF): $(CPU_STARTFILES) $$(CONTIKI_OBJECTFILES) %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(LDSCRIPT) $(TARGET_LIBS)
|
||||||
$(TRACE_LD)
|
$(TRACE_LD)
|
||||||
$(Q)$(LD) $(LDFLAGS) ${filter-out $(LDSCRIPT) %.a,$^} ${filter %.a,$^} $(TARGET_LIBFLAGS) -o $@
|
$(Q)$(LD) $(LDFLAGS) ${filter-out $(LDSCRIPT) %.a,$^} ${filter %.a,$^} $(TARGET_LIBFLAGS) -o $@
|
||||||
|
|
||||||
|
|
|
@ -3,16 +3,7 @@ CONTIKI_ARM_DIRS += cortex-m/cm3
|
||||||
CFLAGS += -mcpu=cortex-m3
|
CFLAGS += -mcpu=cortex-m3
|
||||||
|
|
||||||
LDFLAGS += -mcpu=cortex-m3 -nostartfiles
|
LDFLAGS += -mcpu=cortex-m3 -nostartfiles
|
||||||
LDFLAGS += -T $(LDSCRIPT)
|
|
||||||
LDFLAGS += -Wl,--gc-sections,--sort-section=alignment
|
|
||||||
LDFLAGS += -Wl,-Map=$(CONTIKI_NG_PROJECT_MAP),--cref,--no-warn-mismatch
|
|
||||||
|
|
||||||
OBJCOPY_FLAGS += --gap-fill 0xff
|
TARGET_LIBFILES += -lm
|
||||||
|
|
||||||
CPU_STARTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(CPU_START_SOURCEFILES)}}
|
|
||||||
|
|
||||||
### Resolve any potential circular dependencies between the linked libraries
|
|
||||||
### See: https://stackoverflow.com/questions/5651869/gcc-what-are-the-start-group-and-end-group-command-line-options/5651895
|
|
||||||
TARGET_LIBFLAGS := -Wl,--start-group $(TARGET_LIBFILES) -lm -Wl,--end-group
|
|
||||||
|
|
||||||
include $(CONTIKI)/arch/cpu/arm/cortex-m/Makefile.cortex-m
|
include $(CONTIKI)/arch/cpu/arm/cortex-m/Makefile.cortex-m
|
||||||
|
|
|
@ -3,16 +3,5 @@ CONTIKI_ARM_DIRS += cortex-m/cm4
|
||||||
CFLAGS += -mcpu=cortex-m4
|
CFLAGS += -mcpu=cortex-m4
|
||||||
|
|
||||||
LDFLAGS += -mcpu=cortex-m4
|
LDFLAGS += -mcpu=cortex-m4
|
||||||
LDFLAGS += -T $(LDSCRIPT)
|
|
||||||
LDFLAGS += -Wl,--gc-sections,--sort-section=alignment
|
|
||||||
LDFLAGS += -Wl,-Map=$(CONTIKI_NG_PROJECT_MAP),--cref,--no-warn-mismatch
|
|
||||||
|
|
||||||
OBJCOPY_FLAGS += --gap-fill 0xff
|
|
||||||
|
|
||||||
CPU_STARTFILES = ${addprefix $(OBJECTDIR)/,${call oname, $(CPU_START_SOURCEFILES)}}
|
|
||||||
|
|
||||||
### Resolve any potential circular dependencies between the linked libraries
|
|
||||||
### See: https://stackoverflow.com/questions/5651869/gcc-what-are-the-start-group-and-end-group-command-line-options/5651895
|
|
||||||
TARGET_LIBFLAGS := -Wl,--start-group $(TARGET_LIBFILES) -Wl,--end-group
|
|
||||||
|
|
||||||
include $(CONTIKI)/arch/cpu/arm/cortex-m/Makefile.cortex-m
|
include $(CONTIKI)/arch/cpu/arm/cortex-m/Makefile.cortex-m
|
||||||
|
|
|
@ -81,8 +81,10 @@ STACK_SIZE = 0
|
||||||
@$(SIZE) -A $< | egrep "data|bss" | awk '{s+=$$2} END {s=s+$(STACK_SIZE); f=$(RAM_SIZE)-s; printf "[RAM] used %6d, free %6d\n",s,f;}'
|
@$(SIZE) -A $< | egrep "data|bss" | awk '{s+=$$2} END {s=s+$(STACK_SIZE); f=$(RAM_SIZE)-s; printf "[RAM] used %6d, free %6d\n",s,f;}'
|
||||||
@$(SIZE) -A $< | egrep "text|isr_vector" | awk '{s+=$$2} END {f=$(FLASH_SIZE)-s; printf "[Flash] used %6d, free %6d\n",s,f;}'
|
@$(SIZE) -A $< | egrep "text|isr_vector" | awk '{s+=$$2} END {f=$(FLASH_SIZE)-s; printf "[Flash] used %6d, free %6d\n",s,f;}'
|
||||||
|
|
||||||
|
include $(CONTIKI)/arch/cpu/arm/cortex-m/cm3/Makefile.cm3
|
||||||
|
|
||||||
ifeq ($(BOARD_SUPPORTS_BSL),1)
|
ifeq ($(BOARD_SUPPORTS_BSL),1)
|
||||||
%.upload: %.bin
|
%.upload: $(OUT_BIN)
|
||||||
ifeq ($(wildcard $(BSL)), )
|
ifeq ($(wildcard $(BSL)), )
|
||||||
@echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?"
|
@echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?"
|
||||||
else
|
else
|
||||||
|
@ -95,5 +97,3 @@ endif
|
||||||
|
|
||||||
### For the login etc targets
|
### For the login etc targets
|
||||||
BAUDRATE = 115200
|
BAUDRATE = 115200
|
||||||
|
|
||||||
include $(CONTIKI)/arch/cpu/arm/cortex-m/cm3/Makefile.cm3
|
|
||||||
|
|
|
@ -172,11 +172,11 @@ vpath %.s $(ASM_PATHS)
|
||||||
|
|
||||||
OBJECTS = $(C_OBJECTS) $(ASM_OBJECTS)
|
OBJECTS = $(C_OBJECTS) $(ASM_OBJECTS)
|
||||||
|
|
||||||
CLEAN += nrf52832.a
|
NRFLIB = $(BUILD_DIR_BOARD)/nrf52832.a
|
||||||
|
|
||||||
TARGET_LIBS = nrf52832.a $(NRF52_SDK_ROOT)/components/iot/ble_6lowpan/lib/ble_6lowpan.a
|
TARGET_LIBS = $(NRFLIB) $(NRF52_SDK_ROOT)/components/iot/ble_6lowpan/lib/ble_6lowpan.a
|
||||||
|
|
||||||
nrf52832.a: $(OBJECTS)
|
$(NRFLIB): $(OBJECTS)
|
||||||
$(TRACE_AR)
|
$(TRACE_AR)
|
||||||
$(Q)$(AR) $(AROPTS) $@ $^
|
$(Q)$(AR) $(AROPTS) $@ $^
|
||||||
|
|
||||||
|
|
|
@ -28,11 +28,12 @@ endif
|
||||||
|
|
||||||
BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py
|
BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py
|
||||||
|
|
||||||
%.upload: %.bin %.elf
|
%.upload: $(OUT_BIN) $(OUT_ELF)
|
||||||
ifeq ($(wildcard $(BSL)), )
|
ifeq ($(wildcard $(BSL)), )
|
||||||
@echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?"
|
@echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?"
|
||||||
else
|
else
|
||||||
$(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h $*.elf | grep -B1 LOAD | \
|
$(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h \
|
||||||
|
$(BUILD_DIR_BOARD)/$*.elf | grep -B1 LOAD | \
|
||||||
grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \
|
grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \
|
||||||
sort -g | head -1))
|
sort -g | head -1))
|
||||||
$(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $<
|
$(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $<
|
||||||
|
|
|
@ -34,10 +34,10 @@ endif
|
||||||
|
|
||||||
endif ## QUICKSTART
|
endif ## QUICKSTART
|
||||||
|
|
||||||
#MAIN_SRC = $(OBJECTDIR)/$(LIBNAME).c
|
#MAIN_SRC = $(BUILD_DIR_BOARD)/$(LIBNAME).c
|
||||||
MAIN_OBJ = $(OBJECTDIR)/$(LIBNAME).o
|
MAIN_OBJ = $(BUILD_DIR_BOARD)/$(LIBNAME).o
|
||||||
ARCHIVE = $(OBJECTDIR)/$(LIBNAME).a
|
ARCHIVE = $(BUILD_DIR_BOARD)/$(LIBNAME).a
|
||||||
JNILIB = $(OBJECTDIR)/$(LIBNAME).$(TARGET)
|
JNILIB = $(BUILD_DIR_BOARD)/$(LIBNAME).$(TARGET)
|
||||||
CONTIKI_APP_OBJ = $(CONTIKI_APP).o
|
CONTIKI_APP_OBJ = $(CONTIKI_APP).o
|
||||||
|
|
||||||
### COOJA platform sources
|
### COOJA platform sources
|
||||||
|
|
|
@ -10,11 +10,11 @@ CUSTOM_RULE_LINK=1
|
||||||
|
|
||||||
REDEF_PRINTF=1 # Redefine functions to enable printf()s inside Cooja
|
REDEF_PRINTF=1 # Redefine functions to enable printf()s inside Cooja
|
||||||
|
|
||||||
# NB: Assumes ARCHIVE was not overridden and is in $(OBJECTDIR)
|
# NB: Assumes ARCHIVE was not overridden and is in $(BUILD_DIR_BOARD)
|
||||||
$(ARCHIVE): $(CONTIKI_OBJECTFILES) | $(OBJECTDIR)
|
$(ARCHIVE): $(CONTIKI_OBJECTFILES) | $(OBJECTDIR)
|
||||||
$(AR_COMMAND_1) $^ $(AR_COMMAND_2)
|
$(AR_COMMAND_1) $^ $(AR_COMMAND_2)
|
||||||
|
|
||||||
# NB: Assumes JNILIB was not overridden and is in $(OBJECTDIR)
|
# NB: Assumes JNILIB was not overridden and is in $(BUILD_DIR_BOARD)
|
||||||
$(JNILIB): $(CONTIKI_APP_OBJ) $(MAIN_OBJ) $(PROJECT_OBJECTFILES) $(ARCHIVE) | $(OBJECTDIR)
|
$(JNILIB): $(CONTIKI_APP_OBJ) $(MAIN_OBJ) $(PROJECT_OBJECTFILES) $(ARCHIVE) | $(OBJECTDIR)
|
||||||
|
|
||||||
ifdef REDEF_PRINTF
|
ifdef REDEF_PRINTF
|
||||||
|
|
|
@ -229,30 +229,34 @@ ALLLIBS = $(addprefix -l,$(LDLIBS)) $(addprefix -l,$(LDSTACKLIBS)) $(addprefix -
|
||||||
ABS_APPLIBS = $(addsuffix _$(JENNIC_CHIP_FAMILY).a,$(addprefix $(COMPONENTS_BASE_DIR)/Library/lib,$(APPLIBS)))
|
ABS_APPLIBS = $(addsuffix _$(JENNIC_CHIP_FAMILY).a,$(addprefix $(COMPONENTS_BASE_DIR)/Library/lib,$(APPLIBS)))
|
||||||
|
|
||||||
ifneq ($(wildcard $(SDK_BASE_DIR)/Components/Library/*),)
|
ifneq ($(wildcard $(SDK_BASE_DIR)/Components/Library/*),)
|
||||||
# The SDK is fully installed, proceed to linking and objcopy to ready-to-upload .jn516x.bin file
|
# The SDK is fully installed, proceed to linking
|
||||||
%.$(TARGET): %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(CONTIKI_NG_TARGET_LIB) $(ABS_APPLIBS)
|
$(BUILD_DIR_BOARD)/%.$(TARGET): %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(CONTIKI_NG_TARGET_LIB) $(ABS_APPLIBS)
|
||||||
echo ${filter %.a,$^}
|
@echo ${filter %.a,$^}
|
||||||
$(Q)$(CC) -Wl,--gc-sections $(LDFLAGS) -T$(LINKCMD) -o $@ -Wl,--start-group \
|
$(Q)$(CC) -Wl,--gc-sections $(LDFLAGS) -T$(LINKCMD) -o $@ -Wl,--start-group \
|
||||||
$(patsubst /cygdrive/c/%,c:/%,${filter-out %.a,$^}) \
|
$(patsubst /cygdrive/c/%,c:/%,${filter-out %.a,$^}) \
|
||||||
$(patsubst /cygdrive/c/%,c:/%,${filter %.a,$^}) \
|
$(patsubst /cygdrive/c/%,c:/%,${filter %.a,$^}) \
|
||||||
$(ALLLIBS) -Wl,--end-group -Wl,-Map,$(CONTIKI_NG_PROJECT_MAP)
|
$(ALLLIBS) -Wl,--end-group -Wl,-Map,$(CONTIKI_NG_PROJECT_MAP)
|
||||||
$(OBJCOPY) -S -O binary $@ $@.bin
|
|
||||||
else
|
else
|
||||||
# The SDK does not include libraries, only build objects and libraries, skip linking
|
# The SDK does not include libraries, only build objects and libraries, skip linking
|
||||||
%.$(TARGET): %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(CONTIKI_NG_TARGET_LIB)
|
$(BUILD_DIR_BOARD)/%.$(TARGET): %.o $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) $(CONTIKI_NG_TARGET_LIB)
|
||||||
echo Creating empty $@
|
@echo Creating empty $@
|
||||||
touch $@
|
touch $@
|
||||||
endif
|
endif
|
||||||
|
|
||||||
%.$(TARGET).bin: %.$(TARGET)
|
$(BUILD_DIR_BOARD)/%.$(TARGET).bin: $(BUILD_DIR_BOARD)/%.$(TARGET)
|
||||||
|
$(TRACE_OBJCOPY)
|
||||||
$(Q)$(OBJCOPY) -S -O binary $< $@
|
$(Q)$(OBJCOPY) -S -O binary $< $@
|
||||||
|
|
||||||
|
%.$(TARGET).bin: $(BUILD_DIR_BOARD)/%.$(TARGET).bin
|
||||||
|
$(TRACE_CP)
|
||||||
|
$(Q)$(CP) $< $@
|
||||||
|
|
||||||
### Upload target to one jn516x mote specified by MOTE=portNumber
|
### Upload target to one jn516x mote specified by MOTE=portNumber
|
||||||
ifeq ($(HOST_OS),Windows)
|
ifeq ($(HOST_OS),Windows)
|
||||||
%.upload: %.$(TARGET).bin
|
%.upload: $(BUILD_DIR_BOARD)/%.$(TARGET).bin
|
||||||
${FLASH_PROGRAMMER} -a -c $(DEV_PORT) -B 1000000 -s -w -f $<
|
${FLASH_PROGRAMMER} -a -c $(DEV_PORT) -B 1000000 -s -w -f $<
|
||||||
else
|
else
|
||||||
%.upload: %.$(TARGET).bin
|
%.upload: $(BUILD_DIR_BOARD)/%.$(TARGET).bin
|
||||||
${FLASH_PROGRAMMER} -V 10 -v -s $(DEV_PORT) -I 38400 -P 1000000 -f $<
|
${FLASH_PROGRAMMER} -V 10 -v -s $(DEV_PORT) -I 38400 -P 1000000 -f $<
|
||||||
endif
|
endif
|
||||||
|
|
||||||
|
@ -276,7 +280,7 @@ motelistinfo:
|
||||||
$(Q)$(MOTELIST) ${FLASH_PROGRAMMER} \?
|
$(Q)$(MOTELIST) ${FLASH_PROGRAMMER} \?
|
||||||
|
|
||||||
### Upload target to all connected jn516x motes
|
### Upload target to all connected jn516x motes
|
||||||
%.uploadall: %.$(TARGET).bin
|
%.uploadall: $(BUILD_DIR_BOARD)/%.$(TARGET).bin
|
||||||
$(Q)$(MOTELIST) ${FLASH_PROGRAMMER} $<
|
$(Q)$(MOTELIST) ${FLASH_PROGRAMMER} $<
|
||||||
|
|
||||||
### Flash the given file to all connected jn516x motes
|
### Flash the given file to all connected jn516x motes
|
||||||
|
|
|
@ -35,11 +35,12 @@ endif
|
||||||
|
|
||||||
BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py
|
BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py
|
||||||
|
|
||||||
%.upload: %.bin %.elf
|
%.upload: $(OUT_BIN) $(OUT_ELF)
|
||||||
ifeq ($(wildcard $(BSL)), )
|
ifeq ($(wildcard $(BSL)), )
|
||||||
@echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?"
|
@echo "ERROR: Could not find the cc2538-bsl script. Did you run 'git submodule update --init' ?"
|
||||||
else
|
else
|
||||||
$(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h $*.elf | grep -B1 LOAD | \
|
$(eval BSL_ADDRESS_ARG := -a $(shell $(OBJDUMP) -h \
|
||||||
|
$(BUILD_DIR_BOARD)/$*.elf | grep -B1 LOAD | \
|
||||||
grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \
|
grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$5}' | \
|
||||||
sort -g | head -1))
|
sort -g | head -1))
|
||||||
$(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $<
|
$(PYTHON) $(BSL) $(BSL_FLAGS) $(BSL_ADDRESS_ARG) $<
|
||||||
|
|
|
@ -69,9 +69,9 @@ endif
|
||||||
### $$$$ Double escapes $s that need to be passed to the shell - once for when
|
### $$$$ Double escapes $s that need to be passed to the shell - once for when
|
||||||
### make parses UPLOAD_RULE, and once for when the expanded rule is parsed by make.
|
### make parses UPLOAD_RULE, and once for when the expanded rule is parsed by make.
|
||||||
define UPLOAD_RULE
|
define UPLOAD_RULE
|
||||||
%.$(MOTE): %.bin %.elf
|
%.$(MOTE): $(OUT_BIN) $(OUT_ELF)
|
||||||
@echo "Flashing $(MOTE)"
|
@echo "Flashing $(MOTE)"
|
||||||
@BSL_ADDRESS=`$(OBJDUMP) -h $$*.elf | grep -B1 LOAD | \
|
@BSL_ADDRESS=`$(OBJDUMP) -h $(BUILD_DIR_BOARD)/$$*.elf | grep -B1 LOAD | \
|
||||||
grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$$$5}' | \
|
grep -Ev 'LOAD|\-\-' | awk '{print "0x" $$$$5}' | \
|
||||||
sort -g | head -1`; \
|
sort -g | head -1`; \
|
||||||
$(PYTHON) $(BSL) $(BSL_FLAGS) -b $(BSL_SPEED) -a $$$${BSL_ADDRESS} -p $(MOTE) $$<
|
$(PYTHON) $(BSL) $(BSL_FLAGS) -b $(BSL_SPEED) -a $$$${BSL_ADDRESS} -p $(MOTE) $$<
|
||||||
|
|
|
@ -1 +1 @@
|
||||||
Subproject commit a5904b98366478bb9e7f7fe9f0bb78fc064914c5
|
Subproject commit 63538bbb882ba06a7b8cf97c11ce2fe4d22e4f88
|
Loading…
Reference in New Issue