1
0
Fork 0

Fix compiler settings for MCUs with floating point

This commit is contained in:
Fred Sundvik 2018-01-21 10:55:40 +02:00 committed by skullydazed
parent 2018df1a61
commit 510a8d3339

View file

@ -26,7 +26,7 @@ endif
# Imported source files and paths # Imported source files and paths
CHIBIOS = $(TOP_DIR)/lib/chibios CHIBIOS = $(TOP_DIR)/lib/chibios
CHIBIOS_CONTRIB = $(TOP_DIR)/lib/chibios-contrib CHIBIOS_CONTRIB = $(TOP_DIR)/lib/chibios-contrib
# Startup files. Try a few different locations, for compability with old versions and # Startup files. Try a few different locations, for compability with old versions and
# for things hardware in the contrib repository # for things hardware in the contrib repository
STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk STARTUP_MK = $(CHIBIOS)/os/common/ports/ARMCMx/compilers/GCC/mk/startup_$(MCU_STARTUP).mk
ifeq ("$(wildcard $(STARTUP_MK))","") ifeq ("$(wildcard $(STARTUP_MK))","")
@ -46,7 +46,7 @@ endif
include $(PLATFORM_MK) include $(PLATFORM_MK)
BOARD_MK := BOARD_MK :=
ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","") ifneq ("$(wildcard $(KEYBOARD_PATH_5)/boards/$(BOARD)/board.mk)","")
BOARD_PATH = $(KEYBOARD_PATH_5) BOARD_PATH = $(KEYBOARD_PATH_5)
@ -115,14 +115,14 @@ CHIBISRC = $(STARTUPSRC) \
$(STREAMSSRC) \ $(STREAMSSRC) \
$(STARTUPASM) \ $(STARTUPASM) \
$(PORTASM) \ $(PORTASM) \
$(OSALASM) $(OSALASM)
CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC)) CHIBISRC := $(patsubst $(TOP_DIR)/%,%,$(CHIBISRC))
EXTRAINCDIRS += $(CHIBIOS)/os/license \ EXTRAINCDIRS += $(CHIBIOS)/os/license \
$(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \ $(STARTUPINC) $(KERNINC) $(PORTINC) $(OSALINC) \
$(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \ $(HALINC) $(PLATFORMINC) $(BOARDINC) $(TESTINC) \
$(STREAMSINC) $(CHIBIOS)/os/various $(STREAMSINC) $(CHIBIOS)/os/various
# #
# Project, sources and paths # Project, sources and paths
@ -139,17 +139,17 @@ SIZE = arm-none-eabi-size
AR = arm-none-eabi-ar AR = arm-none-eabi-ar
NM = arm-none-eabi-nm NM = arm-none-eabi-nm
HEX = $(OBJCOPY) -O $(FORMAT) HEX = $(OBJCOPY) -O $(FORMAT)
EEP = EEP =
BIN = $(OBJCOPY) -O binary BIN = $(OBJCOPY) -O binary
THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB THUMBFLAGS = -DTHUMB_PRESENT -mno-thumb-interwork -DTHUMB_NO_INTERWORKING -mthumb -DTHUMB
COMPILEFLAGS += -fomit-frame-pointer COMPILEFLAGS += -fomit-frame-pointer
COMPILEFLAGS += -falign-functions=16 COMPILEFLAGS += -falign-functions=16
COMPILEFLAGS += -ffunction-sections COMPILEFLAGS += -ffunction-sections
COMPILEFLAGS += -fdata-sections COMPILEFLAGS += -fdata-sections
COMPILEFLAGS += -fno-common COMPILEFLAGS += -fno-common
COMPILEFLAGS += $(THUMBFLAGS) COMPILEFLAGS += $(THUMBFLAGS)
CFLAGS += $(COMPILEFLAGS) CFLAGS += $(COMPILEFLAGS)
@ -168,6 +168,22 @@ OPT_DEFS += -DPROTOCOL_CHIBIOS
MCUFLAGS = -mcpu=$(MCU) MCUFLAGS = -mcpu=$(MCU)
# FPU options default (Cortex-M4 and Cortex-M7 single precision).
ifeq ($(USE_FPU_OPT),)
USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv4-sp-d16 -fsingle-precision-constant
endif
# FPU-related options
ifeq ($(USE_FPU),)
USE_FPU = no
endif
ifneq ($(USE_FPU),no)
OPT += $(USE_FPU_OPT)
OPT_DEFS += -DCORTEX_USE_FPU=TRUE
else
OPT_DEFS += -DCORTEX_USE_FPU=FALSE
endif
DEBUG = gdb DEBUG = gdb
DFU_ARGS ?= DFU_ARGS ?=