From 06e7e5dfa12c3e7bba0a5317980b09b26d0b034d Mon Sep 17 00:00:00 2001 From: Gregory Nutt Date: Tue, 18 Feb 2014 12:07:17 -0600 Subject: [PATCH] More STM32F429 Discovery FPU-related changes from David Alessio --- ChangeLog | 5 ++++- arch/arm/src/armv7-m/Toolchain.defs | 10 +++++++++- arch/arm/src/armv7-m/up_fpu.S | 2 +- arch/arm/src/stm32/Kconfig | 2 +- 4 files changed, 15 insertions(+), 4 deletions(-) diff --git a/ChangeLog b/ChangeLog index 4a8390ab84..59231ad1a9 100644 --- a/ChangeLog +++ b/ChangeLog @@ -6588,4 +6588,7 @@ (2014-2-16). * sched/task_terminate.c: Always returns an error because the return value was not being set correctly. From Gosha (2014-2-18). - + * stm32f429i-disco/ostest-fpu: OS test for FPU-enabled system from + David Alessio (2014-2-18). + * Other misc changes to support FPU on STM32F429 Discovery from + David Alession (2014-2-18) diff --git a/arch/arm/src/armv7-m/Toolchain.defs b/arch/arm/src/armv7-m/Toolchain.defs index ecdcb7f146..591923fe82 100644 --- a/arch/arm/src/armv7-m/Toolchain.defs +++ b/arch/arm/src/armv7-m/Toolchain.defs @@ -186,7 +186,15 @@ ifeq ($(CONFIG_ARMV7M_OABI_TOOLCHAIN),y) else CROSSDEV ?= arm-nuttx-eabi- ARCROSSDEV ?= arm-nuttx-eabi- - ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft + ifeq ($(CONFIG_ARCH_CORTEXM4),y) + ifeq ($(CONFIG_ARCH_FPU),y) + ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard + else + ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfloat-abi=soft + endif + else ifeq ($(CONFIG_ARCH_CORTEXM3),y) + ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft + endif endif MAXOPTIMIZATION ?= -Os endif diff --git a/arch/arm/src/armv7-m/up_fpu.S b/arch/arm/src/armv7-m/up_fpu.S index e7a4d237ca..f43367fa4a 100644 --- a/arch/arm/src/armv7-m/up_fpu.S +++ b/arch/arm/src/armv7-m/up_fpu.S @@ -35,7 +35,7 @@ /* * When this file is assembled, it will require the following GCC options: * - * -mcpu=cortex-m3 -mfloat-abi=hard -mfpu=vfp -meabi=5 + * -mcpu=cortex-m4 -mfloat-abi=hard -mfpu=vfp -meabi=5 -mthumb */ /************************************************************************************ diff --git a/arch/arm/src/stm32/Kconfig b/arch/arm/src/stm32/Kconfig index 7945671f89..16b02deb2f 100644 --- a/arch/arm/src/stm32/Kconfig +++ b/arch/arm/src/stm32/Kconfig @@ -774,7 +774,7 @@ config STM32_OTGFS config STM32_OTGHS bool "OTG HS" default n - depends on STM32_STM32F20XX || STM32_STM32F40XX + depends on STM32_STM32F20XX || STM32_STM32F40XX || STM32_STM32F429 config STM32_OTGHS_FS_MODE bool "Use OTG HS in FS mode"