# This CPU implementation is using the new core/CPU interface: export CFLAGS += -DCOREIF_NG=1 # Tell the build system that the CPU depends on the Cortex-M common files: export USEMODULE += cortexm_common # Export the peripheral drivers to be linked into the final binary: export USEMODULE += periph # all cortex MCU's use newlib as libc export USEMODULE += newlib # set default for CPU_MODEL export CPU_MODEL ?= $(CPU) # export the CPU model and architecture MODEL = $(shell echo $(CPU_MODEL) | tr 'a-z' 'A-Z') export CFLAGS += -DCPU_MODEL_$(MODEL) ARCH = $(shell echo $(CPU_ARCH) | tr 'a-z-' 'A-Z_') export CFLAGS += -DCPU_ARCH_$(ARCH) # set the compiler specific CPU and FPU options ifeq ($(CPU_ARCH),cortex-m4f) # TODO: enable hard floating points for the M4F once the context save/restore # code is adjusted to take care of FPU registers #export CFLAGS_FPU += -mfloat-abi=hard -mfpu=fpv4-sp-d16 export MCPU := cortex-m4 endif CFLAGS_FPU ?= -mfloat-abi=soft export MCPU ?= $(CPU_ARCH) # Include CPU specific includes: export INCLUDES += -I$(RIOTCPU)/$(CPU)/include # Explicitly tell the linker to link the startup code. # Without this the interrupt vectors will not be linked correctly! ifeq ($(COMMON_STARTUP),) export UNDEF += $(BINDIR)cpu/vectors.o endif # CPU depends on the cortex-m common module, so include it: include $(RIOTCPU)/cortexm_common/Makefile.include # Avoid overriding the default rule: all: # Rule to generate assembly listings from ELF files: %.lst: %.elf $(OBJDUMP) $(OBJDUMPFLAGS) $< > $@