From 83441e1c3222c3d0b06bd7ab7047266e4365101b Mon Sep 17 00:00:00 2001 From: Matthew Kennedy Date: Mon, 17 Feb 2025 01:38:51 -0800 Subject: [PATCH] enable F7/H7 double precision --- firmware/Makefile | 5 ----- firmware/bootloader/Makefile | 5 ----- firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk | 1 + firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk | 2 ++ firmware/hw_layer/ports/stm32/stm32h7/hw_ports.mk | 2 ++ 5 files changed, 5 insertions(+), 10 deletions(-) diff --git a/firmware/Makefile b/firmware/Makefile index 4fb1762722..6d64cc2901 100644 --- a/firmware/Makefile +++ b/firmware/Makefile @@ -174,11 +174,6 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x1000 endif -# Enables the use of FPU on Cortex-M4 (no, softfp, hard). -ifeq ($(USE_FPU),) - USE_FPU = hard -endif - # and this is not working for be :( See https://github.com/rusefi/rusefi/issues/638 # use -j4 unless some value was specified NUMJOBS=${NUMJOBS:-" -j4 "} diff --git a/firmware/bootloader/Makefile b/firmware/bootloader/Makefile index d6ac51bab8..95a82a85e9 100644 --- a/firmware/bootloader/Makefile +++ b/firmware/bootloader/Makefile @@ -100,11 +100,6 @@ ifeq ($(USE_EXCEPTIONS_STACKSIZE),) USE_EXCEPTIONS_STACKSIZE = 0x1000 endif -# Enables the use of FPU on Cortex-M4 (no, softfp, hard). -ifeq ($(USE_FPU),) - USE_FPU = hard -endif - # # Architecture or project specific options ############################################################################## diff --git a/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk b/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk index abc0a92b08..97843d8a87 100644 --- a/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk +++ b/firmware/hw_layer/ports/stm32/stm32f4/hw_ports.mk @@ -5,6 +5,7 @@ HW_LAYER_PORT_CPP += $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f4/mpu_util.cpp \ $(PROJECT_DIR)/hw_layer/ports/stm32/stm32_adc_v2.cpp MCU = cortex-m4 +USE_FPU = hard LDSCRIPT = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f4/STM32F4.ld # kludge: while we the very generic ChibiOS board.c we use our custom board.h from current folder! ifeq ($(BOARD_C),) diff --git a/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk b/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk index f832087c4a..1455895894 100644 --- a/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk +++ b/firmware/hw_layer/ports/stm32/stm32f7/hw_ports.mk @@ -12,6 +12,8 @@ USE_OPT += -falign-functions=16 DDEFS += -DSTM32F767xx MCU = cortex-m7 +USE_FPU = hard +USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-d16 LDSCRIPT = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32f7/STM32F7.ld # kludge: while we the very generic ChibiOS board.c we use our custom board.h from current folder! ifeq ($(BOARD_C),) diff --git a/firmware/hw_layer/ports/stm32/stm32h7/hw_ports.mk b/firmware/hw_layer/ports/stm32/stm32h7/hw_ports.mk index a031c8f7c0..5a7721c41b 100644 --- a/firmware/hw_layer/ports/stm32/stm32h7/hw_ports.mk +++ b/firmware/hw_layer/ports/stm32/stm32h7/hw_ports.mk @@ -11,6 +11,8 @@ USE_OPT += -falign-functions=16 DDEFS += -DSTM32H743xx MCU = cortex-m7 +USE_FPU = hard +USE_FPU_OPT = -mfloat-abi=$(USE_FPU) -mfpu=fpv5-d16 LDSCRIPT = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32h7/STM32H743xI.ld ALLCSRC += $(CHIBIOS)/os/hal/boards/ST_NUCLEO144_H743ZI/board.c CONFDIR = $(PROJECT_DIR)/hw_layer/ports/stm32/stm32h7/cfg