Use the CM3 common Makefile to build CC13xx/CC26xx-based platforms
This commit is contained in:
parent
64c310bf2a
commit
238962d528
@ -1,13 +1,3 @@
|
|||||||
CC = arm-none-eabi-gcc
|
|
||||||
CPP = arm-none-eabi-cpp
|
|
||||||
LD = arm-none-eabi-gcc
|
|
||||||
AR = arm-none-eabi-ar
|
|
||||||
OBJCOPY = arm-none-eabi-objcopy
|
|
||||||
OBJDUMP = arm-none-eabi-objdump
|
|
||||||
NM = arm-none-eabi-nm
|
|
||||||
SIZE = arm-none-eabi-size
|
|
||||||
SREC_CAT = srec_cat
|
|
||||||
|
|
||||||
CPU_ABS_PATH = arch/cpu/cc26xx-cc13xx
|
CPU_ABS_PATH = arch/cpu/cc26xx-cc13xx
|
||||||
TI_XXWARE = $(CONTIKI_CPU)/$(TI_XXWARE_PATH)
|
TI_XXWARE = $(CONTIKI_CPU)/$(TI_XXWARE_PATH)
|
||||||
|
|
||||||
@ -29,44 +19,14 @@ MODULES += $(TI_XXWARE_SRC)
|
|||||||
|
|
||||||
LDSCRIPT = $(CONTIKI_CPU)/cc26xx.ld
|
LDSCRIPT = $(CONTIKI_CPU)/cc26xx.ld
|
||||||
|
|
||||||
CFLAGS += -mcpu=cortex-m3 -mthumb -mlittle-endian
|
|
||||||
CFLAGS += -ffunction-sections -fdata-sections
|
|
||||||
CFLAGS += -fshort-enums -fomit-frame-pointer -fno-strict-aliasing
|
|
||||||
CFLAGS += -Wall -std=c99 -DCMSIS_DEV_HDR=\"cc13x0-cc26x0-cm3.h\"
|
|
||||||
|
|
||||||
LDFLAGS += -mcpu=cortex-m3 -mthumb -mlittle-endian -nostartfiles
|
|
||||||
LDFLAGS += -T $(LDSCRIPT)
|
|
||||||
LDFLAGS += -Wl,--gc-sections,--sort-section=alignment
|
|
||||||
LDFLAGS += -Wl,-Map=$(@:.elf=-$(TARGET).map),--cref,--no-warn-mismatch
|
|
||||||
OBJCOPY_FLAGS += -O binary --gap-fill 0xff
|
|
||||||
OBJDUMP_FLAGS += --disassemble --source --disassembler-options=force-thumb
|
|
||||||
|
|
||||||
ifeq ($(WERROR),1)
|
|
||||||
CFLAGS += -Werror
|
|
||||||
endif
|
|
||||||
|
|
||||||
### Are we building with code size optimisations?
|
|
||||||
SMALL ?= 1
|
|
||||||
ifeq ($(SMALL),1)
|
|
||||||
CFLAGS += -Os
|
|
||||||
else
|
|
||||||
CFLAGS += -O2
|
|
||||||
endif
|
|
||||||
|
|
||||||
### If the user-specified a Node ID, pass a define
|
### If the user-specified a Node ID, pass a define
|
||||||
ifdef NODEID
|
ifdef NODEID
|
||||||
CFLAGS += -DIEEE_ADDR_NODE_ID=$(NODEID)
|
CFLAGS += -DIEEE_ADDR_NODE_ID=$(NODEID)
|
||||||
endif
|
endif
|
||||||
|
|
||||||
### CPU-dependent cleanup files
|
|
||||||
CLEAN += *.d *.elf *.hex
|
|
||||||
|
|
||||||
### CPU-dependent directories
|
### CPU-dependent directories
|
||||||
CONTIKI_CPU_DIRS += . dev rf-core rf-core/api $(TI_XXWARE_STARTUP_DIR)
|
CONTIKI_CPU_DIRS += . dev rf-core rf-core/api $(TI_XXWARE_STARTUP_DIR)
|
||||||
|
|
||||||
### Use CMSIS and the existing debug I/O in arch/cpu/arm/common
|
|
||||||
CONTIKI_CPU_DIRS += ../arm/common/dbg-io ../arm/common/CMSIS
|
|
||||||
|
|
||||||
### CPU-dependent source files
|
### CPU-dependent source files
|
||||||
CONTIKI_CPU_SOURCEFILES += clock.c rtimer-arch.c soc-rtc.c uart.c
|
CONTIKI_CPU_SOURCEFILES += clock.c rtimer-arch.c soc-rtc.c uart.c
|
||||||
CONTIKI_CPU_SOURCEFILES += contiki-watchdog.c aux-ctrl.c
|
CONTIKI_CPU_SOURCEFILES += contiki-watchdog.c aux-ctrl.c
|
||||||
@ -80,8 +40,7 @@ DEBUG_IO_SOURCEFILES += dbg-printf.c dbg-snprintf.c dbg-sprintf.c strformat.c
|
|||||||
|
|
||||||
CONTIKI_SOURCEFILES += $(CONTIKI_CPU_SOURCEFILES) $(DEBUG_IO_SOURCEFILES)
|
CONTIKI_SOURCEFILES += $(CONTIKI_CPU_SOURCEFILES) $(DEBUG_IO_SOURCEFILES)
|
||||||
|
|
||||||
TARGET_START_SOURCEFILES += fault-handlers.c $(TI_XXWARE_STARTUP_SRCS)
|
CPU_START_SOURCEFILES += fault-handlers.c $(TI_XXWARE_STARTUP_SRCS)
|
||||||
TARGET_STARTFILES = $(addprefix $(OBJECTDIR)/,$(call oname, $(TARGET_START_SOURCEFILES)))
|
|
||||||
|
|
||||||
PYTHON = python
|
PYTHON = python
|
||||||
BSL_FLAGS += -e -w -v
|
BSL_FLAGS += -e -w -v
|
||||||
@ -92,9 +51,6 @@ endif
|
|||||||
|
|
||||||
BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py
|
BSL = $(CONTIKI)/tools/cc2538-bsl/cc2538-bsl.py
|
||||||
|
|
||||||
### Don't treat the .elf as intermediate
|
|
||||||
.PRECIOUS: %.elf %.hex %.bin
|
|
||||||
|
|
||||||
### Always re-build ieee-addr.o in case the command line passes a new NODEID
|
### Always re-build ieee-addr.o in case the command line passes a new NODEID
|
||||||
FORCE:
|
FORCE:
|
||||||
|
|
||||||
@ -108,30 +64,6 @@ $(OBJECTDIR)/ccfg.o: ccfg.c FORCE | $(OBJECTDIR)
|
|||||||
$(TRACE_CC)
|
$(TRACE_CC)
|
||||||
$(Q)$(CC) $(CFLAGS) -include "ccxxware-conf.h" -c $< -o $@
|
$(Q)$(CC) $(CFLAGS) -include "ccxxware-conf.h" -c $< -o $@
|
||||||
|
|
||||||
### Compilation rules
|
|
||||||
CUSTOM_RULE_LINK=1
|
|
||||||
|
|
||||||
%.elf: $(TARGET_STARTFILES) %.co $(PROJECT_OBJECTFILES) $(PROJECT_LIBRARIES) contiki-$(TARGET).a $(LDSCRIPT)
|
|
||||||
$(TRACE_LD)
|
|
||||||
$(Q)$(LD) $(LDFLAGS) ${filter-out $(LDSCRIPT) %.a,$^} ${filter %.a,$^} $(TARGET_LIBFILES) -lm -o $@
|
|
||||||
|
|
||||||
%.i16hex: %.elf
|
|
||||||
$(OBJCOPY) -O ihex $< $@
|
|
||||||
|
|
||||||
%.hex: %.i16hex
|
|
||||||
$(SREC_CAT) $< -intel -o $@ -intel
|
|
||||||
|
|
||||||
%.bin: %.elf
|
|
||||||
$(OBJCOPY) $(OBJCOPY_FLAGS) $< $@
|
|
||||||
|
|
||||||
%.lst: %.elf
|
|
||||||
$(OBJDUMP) $(OBJDUMP_FLAGS) $< > $@
|
|
||||||
|
|
||||||
### We don't really need the .hex and .bin for the .$(TARGET) but let's make
|
|
||||||
### sure they get built
|
|
||||||
%.$(TARGET): %.elf %.hex %.bin
|
|
||||||
cp $< $@
|
|
||||||
|
|
||||||
# a target that gives a user-friendly memory profile, taking into account the RAM
|
# a target that gives a user-friendly memory profile, taking into account the RAM
|
||||||
# that is statically occupied by the stack as defined in the linker script
|
# that is statically occupied by the stack as defined in the linker script
|
||||||
# see $(LDSCRIPT)
|
# see $(LDSCRIPT)
|
||||||
@ -170,3 +102,5 @@ UART_BAUDRATE = 115200
|
|||||||
|
|
||||||
login:
|
login:
|
||||||
$(SERIALDUMP) -b$(UART_BAUDRATE) $(PORT)
|
$(SERIALDUMP) -b$(UART_BAUDRATE) $(PORT)
|
||||||
|
|
||||||
|
include $(CONTIKI)/arch/cpu/arm/cortex-m/cm3/Makefile.cm3
|
||||||
|
Loading…
Reference in New Issue
Block a user