From 5895b0f2a06ac1a1578c3b0812b20832c3d69c29 Mon Sep 17 00:00:00 2001 From: Giovanni Di Sirio Date: Mon, 27 Jun 2016 08:28:06 +0000 Subject: [PATCH] FPU settings for Cortex-M7, requires GCC 4.9 minimum. git-svn-id: svn://svn.code.sf.net/p/chibios/svn/trunk@9669 35acf78f-673a-0410-8e92-d51de3d6d3f4 --- .../STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-USB/Makefile | 7 ++++++- demos/STM32/RT-STM32F746G-DISCOVERY/Makefile | 7 ++++++- demos/STM32/RT-STM32F746ZG-NUCLEO144/Makefile | 7 ++++++- demos/STM32/RT-STM32F767ZI-NUCLEO144/Makefile | 7 ++++++- demos/STM32/RT-STM32F769I-DISCOVERY/Makefile | 7 ++++++- os/common/startup/ARMCMx/compilers/GCC/rules.mk | 7 ++++++- testhal/STM32/STM32F7xx/GPT-ADC/Makefile | 7 ++++++- testhal/STM32/STM32F7xx/IRQ_STORM/Makefile | 7 ++++++- testhal/STM32/STM32F7xx/PWM-ICU/Makefile | 7 ++++++- testhal/STM32/STM32F7xx/SPI/Makefile | 7 ++++++- testhal/STM32/STM32F7xx/USB_CDC/Makefile | 7 ++++++- testhal/STM32/STM32F7xx/USB_RAW/Makefile | 7 ++++++- 12 files changed, 72 insertions(+), 12 deletions(-) diff --git a/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-USB/Makefile b/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-USB/Makefile index 44e3c7914..4a237d3a9 100644 --- a/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-USB/Makefile +++ b/demos/STM32/RT-STM32F746G-DISCOVERY-LWIP-FATFS-USB/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -166,7 +171,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/demos/STM32/RT-STM32F746G-DISCOVERY/Makefile b/demos/STM32/RT-STM32F746G-DISCOVERY/Makefile index 4a2ee7910..0273b285d 100644 --- a/demos/STM32/RT-STM32F746G-DISCOVERY/Makefile +++ b/demos/STM32/RT-STM32F746G-DISCOVERY/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -156,7 +161,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/demos/STM32/RT-STM32F746ZG-NUCLEO144/Makefile b/demos/STM32/RT-STM32F746ZG-NUCLEO144/Makefile index f921e8830..9aaccd65a 100644 --- a/demos/STM32/RT-STM32F746ZG-NUCLEO144/Makefile +++ b/demos/STM32/RT-STM32F746ZG-NUCLEO144/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -156,7 +161,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/demos/STM32/RT-STM32F767ZI-NUCLEO144/Makefile b/demos/STM32/RT-STM32F767ZI-NUCLEO144/Makefile index c50a7becd..39be534d4 100644 --- a/demos/STM32/RT-STM32F767ZI-NUCLEO144/Makefile +++ b/demos/STM32/RT-STM32F767ZI-NUCLEO144/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-d16 +endif + # # Architecture or project specific options ############################################################################## @@ -156,7 +161,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/demos/STM32/RT-STM32F769I-DISCOVERY/Makefile b/demos/STM32/RT-STM32F769I-DISCOVERY/Makefile index 74c55f61c..b9f274a5c 100644 --- a/demos/STM32/RT-STM32F769I-DISCOVERY/Makefile +++ b/demos/STM32/RT-STM32F769I-DISCOVERY/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-d16 +endif + # # Architecture or project specific options ############################################################################## @@ -156,7 +161,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/os/common/startup/ARMCMx/compilers/GCC/rules.mk b/os/common/startup/ARMCMx/compilers/GCC/rules.mk index 9c4aeaaac..5026b7c9f 100644 --- a/os/common/startup/ARMCMx/compilers/GCC/rules.mk +++ b/os/common/startup/ARMCMx/compilers/GCC/rules.mk @@ -27,12 +27,17 @@ ifeq ($(USE_LTO),yes) OPT += -flto endif +# 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 += -mfloat-abi=$(USE_FPU) -mfpu=fpv4-sp-d16 -fsingle-precision-constant + OPT += $(USE_FPU_OPT) DDEFS += -DCORTEX_USE_FPU=TRUE DADEFS += -DCORTEX_USE_FPU=TRUE else diff --git a/testhal/STM32/STM32F7xx/GPT-ADC/Makefile b/testhal/STM32/STM32F7xx/GPT-ADC/Makefile index 1ec4ee842..50efac016 100644 --- a/testhal/STM32/STM32F7xx/GPT-ADC/Makefile +++ b/testhal/STM32/STM32F7xx/GPT-ADC/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -156,7 +161,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/testhal/STM32/STM32F7xx/IRQ_STORM/Makefile b/testhal/STM32/STM32F7xx/IRQ_STORM/Makefile index 6fdb06896..cb7c733e9 100644 --- a/testhal/STM32/STM32F7xx/IRQ_STORM/Makefile +++ b/testhal/STM32/STM32F7xx/IRQ_STORM/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -161,7 +166,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/testhal/STM32/STM32F7xx/PWM-ICU/Makefile b/testhal/STM32/STM32F7xx/PWM-ICU/Makefile index 1ec4ee842..50efac016 100644 --- a/testhal/STM32/STM32F7xx/PWM-ICU/Makefile +++ b/testhal/STM32/STM32F7xx/PWM-ICU/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -156,7 +161,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/testhal/STM32/STM32F7xx/SPI/Makefile b/testhal/STM32/STM32F7xx/SPI/Makefile index 1ec4ee842..50efac016 100644 --- a/testhal/STM32/STM32F7xx/SPI/Makefile +++ b/testhal/STM32/STM32F7xx/SPI/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -156,7 +161,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/testhal/STM32/STM32F7xx/USB_CDC/Makefile b/testhal/STM32/STM32F7xx/USB_CDC/Makefile index 926096a14..8a5a9a774 100644 --- a/testhal/STM32/STM32F7xx/USB_CDC/Makefile +++ b/testhal/STM32/STM32F7xx/USB_CDC/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -160,7 +165,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi- diff --git a/testhal/STM32/STM32F7xx/USB_RAW/Makefile b/testhal/STM32/STM32F7xx/USB_RAW/Makefile index 3cef56ba2..cf6257f33 100644 --- a/testhal/STM32/STM32F7xx/USB_RAW/Makefile +++ b/testhal/STM32/STM32F7xx/USB_RAW/Makefile @@ -74,6 +74,11 @@ ifeq ($(USE_FPU),) USE_FPU = no endif +# FPU-related options. +ifeq ($(USE_FPU_OPT),) + USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-sp-d16 -fsingle-precision-constant +endif + # # Architecture or project specific options ############################################################################## @@ -155,7 +160,7 @@ INCDIR = $(CHIBIOS)/os/license \ # Compiler settings # -MCU = cortex-m4 +MCU = cortex-m7 #TRGT = arm-elf- TRGT = arm-none-eabi-