diff --git a/config_cortex_m4.mk b/config_cortex_m4.mk index 4521355..1a3b7ae 100644 --- a/config_cortex_m4.mk +++ b/config_cortex_m4.mk @@ -12,7 +12,7 @@ #environment variables -ARCH_CFLAGS = -mcpu=cortex-m4 -mthumb -mlittle-endian -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant +ARCH_CFLAGS = -mcpu=cortex-m4+nofp -mthumb -mlittle-endian -mfloat-abi=soft -fsingle-precision-constant OPT_CFLAGS = -fdata-sections -ffunction-sections PLATFORM_CFLAGS = -Wno-unused-parameter -nostdinc -ffreestanding -fno-builtin -fsigned-char -fno-common -Wno-main -I$(shell $(CC) -print-search-dirs | $(AWK) '$$1 == "install:" {print $$NF}')include diff --git a/config_cortex_m4f.mk b/config_cortex_m4f.mk new file mode 100644 index 0000000..4521355 --- /dev/null +++ b/config_cortex_m4f.mk @@ -0,0 +1,62 @@ +TOOLCHAIN_PREFIX = /opt/gcc-arm-none-eabi/bin/arm-none-eabi- +TOOLCHAIN_SUFFIX = + +CC = $(TOOLCHAIN_PREFIX)gcc$(TOOLCHAIN_SUFFIX) +GDB = $(TOOLCHAIN_PREFIX)gdb$(TOOLCHAIN_SUFFIX) +SIZE = $(TOOLCHAIN_PREFIX)size$(TOOLCHAIN_SUFFIX) +OBJCOPY = $(TOOLCHAIN_PREFIX)objcopy$(TOOLCHAIN_SUFFIX) +OBJDUMP = $(TOOLCHAIN_PREFIX)objdump$(TOOLCHAIN_SUFFIX) +STRIP = $(TOOLCHAIN_PREFIX)strip$(TOOLCHAIN_SUFFIX) +READELF = $(TOOLCHAIN_PREFIX)readelf$(TOOLCHAIN_SUFFIX) +NM = $(TOOLCHAIN_PREFIX)nm$(TOOLCHAIN_SUFFIX) + + +#environment variables +ARCH_CFLAGS = -mcpu=cortex-m4 -mthumb -mlittle-endian -mfpu=fpv4-sp-d16 -mfloat-abi=hard -fsingle-precision-constant +OPT_CFLAGS = -fdata-sections -ffunction-sections + +PLATFORM_CFLAGS = -Wno-unused-parameter -nostdinc -ffreestanding -fno-builtin -fsigned-char -fno-common -Wno-main -I$(shell $(CC) -print-search-dirs | $(AWK) '$$1 == "install:" {print $$NF}')include +PLATFORM_CFLAGS += -DARM_MATH_CM4 + +PLATFORM_CXXFLAGS = $(PLATFORM_CFLAGS) +PLATFORM_LDFLAGS = -nostdlib -nostartfiles -nodefaultlibs -Wl,-static,-gc-sections + + +define CONFIG_TARGETS + +ifdef LINK_TARGET + +.PHONY: link_target_size + +config_final_target: $(BINDIR)/$(TARGET_VER).hex $(BINDIR)/$(TARGET_VER).bin link_target_size $(BINDIR)/$(TARGET).lst $(BINDIR)/$(TARGET)_sym.rep + +$(BINDIR)/$(TARGET)_sym.rep: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(NM) -t d -S --size-sort $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET)_sym.rep + @echo + + +$(BINDIR)/$(TARGET).lst: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJDUMP) -xds -S -l $(BINDIR)/$(LINK_TARGET) > $(BINDIR)/$(TARGET).lst + @echo + + +link_target_size: $(BINDIR)/$(LINK_TARGET) + @$(SIZE) -A -d $(BINDIR)/$(LINK_TARGET) + @echo + + +$(BINDIR)/$(TARGET_VER).bin: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O binary $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).bin + @echo + + +$(BINDIR)/$(TARGET_VER).hex: $(BINDIR)/$(LINK_TARGET) | $(BINDIR)/ + $(OBJCOPY) -O ihex $(BINDIR)/$(LINK_TARGET) $(BINDIR)/$(TARGET_VER).hex + @echo + +endif + + +endef + +include $(dir $(abspath $(lastword $(MAKEFILE_LIST))))/build.mk