diff options
30 files changed, 122 insertions, 372 deletions
diff --git a/nuttx/ChangeLog b/nuttx/ChangeLog index e2d6c9e6a..9bd9bfb07 100644 --- a/nuttx/ChangeLog +++ b/nuttx/ChangeLog @@ -6893,3 +6893,6 @@ kconfig-frontends tools (2014-3-5) * Many files: Use common naming for all buildroot toolchains (2014-3-5). + * Many files: Use common naming for all CodeSourcery toolchains + (2014-3-5). + * Many files: Use common naming for rest of the toolcahins (2014-3-5). diff --git a/nuttx/arch/arm/src/arm/Toolchain.defs b/nuttx/arch/arm/src/arm/Toolchain.defs index d54631b15..82e38780f 100644 --- a/nuttx/arch/arm/src/arm/Toolchain.defs +++ b/nuttx/arch/arm/src/arm/Toolchain.defs @@ -49,27 +49,18 @@ ifeq ($(filter y, \ endif ifeq ($(filter y, \ - $(CONFIG_DM320_CODESOURCERYL) \ - $(CONFIG_LPC31_CODESOURCERYL) \ - $(CONFIG_OLIMEX_LPC2378_CODESOURCERYL) \ $(CONFIG_ARM_TOOLCHAIN_CODESOURCERYL) \ ),y) CONFIG_ARM_TOOLCHAIN ?= CODESOURCERYL endif ifeq ($(filter y, \ - $(CONFIG_DM320_CODESOURCERYW) \ - $(CONFIG_LPC31_CODESOURCERYW) \ - $(CONFIG_OLIMEX_LPC2378_CODESOURCERYW) \ $(CONFIG_ARM_TOOLCHAIN_CODESOURCERYW) \ ),y) CONFIG_ARM_TOOLCHAIN ?= CODESOURCERYW endif ifeq ($(filter y, \ - $(CONFIG_DM320_DEVKITARM) \ - $(CONFIG_LPC31_DEVKITARM) \ - $(CONFIG_OLIMEX_LPC2378_DEVKITARM) \ $(CONFIG_ARM_TOOLCHAIN_DEVKITARM) \ ),y) CONFIG_ARM_TOOLCHAIN ?= DEVKITARM diff --git a/nuttx/arch/arm/src/armv7-m/Toolchain.defs b/nuttx/arch/arm/src/armv7-m/Toolchain.defs index 838951d5b..a698d6cac 100644 --- a/nuttx/arch/arm/src/armv7-m/Toolchain.defs +++ b/nuttx/arch/arm/src/armv7-m/Toolchain.defs @@ -43,10 +43,6 @@ # ifeq ($(filter y, \ - $(CONFIG_LPC43_ATOLLIC_LITE) \ - $(CONFIG_STM32_ATOLLIC_LITE) \ - $(CONFIG_LPC43_ATOLLIC_PRO) \ - $(CONFIG_STM32_ATOLLIC_PRO) \ $(CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC) \ ),y) CONFIG_ARMV7M_TOOLCHAIN ?= ATOLLIC @@ -59,58 +55,36 @@ ifeq ($(filter y, \ endif ifeq ($(filter y, \ - $(CONFIG_LPC17_CODEREDL) \ $(CONFIG_ARMV7M_TOOLCHAIN_CODEREDL) \ ),y) CONFIG_ARMV7M_TOOLCHAIN ?= CODEREDL endif ifeq ($(filter y, \ - $(CONFIG_LPC17_CODEREDW) \ - $(CONFIG_LPC43_CODEREDW) \ $(CONFIG_ARMV7M_TOOLCHAIN_CODEREDW) \ ),y) CONFIG_ARMV7M_TOOLCHAIN ?= CODEREDW endif ifeq ($(filter y, \ - $(CONFIG_KINETIS_CODESOURCERYL) \ - $(CONFIG_LM_CODESOURCERYL) \ - $(CONFIG_LPC17_CODESOURCERYL) \ - $(CONFIG_LPC43_CODESOURCERYL) \ - $(CONFIG_SAM3U_CODESOURCERYL) \ - $(CONFIG_STM32_CODESOURCERYL) \ $(CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL) \ ),y) CONFIG_ARMV7M_TOOLCHAIN ?= CODESOURCERYL endif ifeq ($(filter y, \ - $(CONFIG_KINETIS_CODESOURCERYW) \ - $(CONFIG_LM_CODESOURCERYW) \ - $(CONFIG_LPC17_CODESOURCERYW) \ - $(CONFIG_LPC43_CODESOURCERYW) \ - $(CONFIG_SAM3U_CODESOURCERYW) \ - $(CONFIG_STM32_CODESOURCERYW) \ $(CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW) \ ),y) CONFIG_ARMV7M_TOOLCHAIN ?= CODESOURCERYW endif ifeq ($(filter y, \ - $(CONFIG_KINETIS_DEVKITARM) \ - $(CONFIG_LM_DEVKITARM) \ - $(CONFIG_LPC17_DEVKITARM) \ - $(CONFIG_LPC43_DEVKITARM) \ - $(CONFIG_SAM3U_DEVKITARM) \ - $(CONFIG_STM32_DEVKITARM) \ $(CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM) \ ),y) CONFIG_ARMV7M_TOOLCHAIN ?= DEVKITARM endif ifeq ($(filter y, \ - $(CONFIG_STM32_RAISONANCE) \ $(CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE) \ ),y) CONFIG_ARMV7M_TOOLCHAIN ?= RAISONANCE diff --git a/nuttx/configs/cloudctrl/README.txt b/nuttx/configs/cloudctrl/README.txt index 1fbcca7f4..24d673726 100644 --- a/nuttx/configs/cloudctrl/README.txt +++ b/nuttx/configs/cloudctrl/README.txt @@ -197,8 +197,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) diff --git a/nuttx/configs/cloudctrl/nsh/defconfig b/nuttx/configs/cloudctrl/nsh/defconfig index 68c29bc29..c47ccac1c 100644 --- a/nuttx/configs/cloudctrl/nsh/defconfig +++ b/nuttx/configs/cloudctrl/nsh/defconfig @@ -116,12 +116,11 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F407IG is not set CONFIG_STM32_STM32F10XX=y CONFIG_STM32_CONNECTIVITYLINE=y -CONFIG_STM32_CODESOURCERYW=y -# CONFIG_STM32_CODESOURCERYL is not set -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set diff --git a/nuttx/configs/ekk-lm3s9b96/README.txt b/nuttx/configs/ekk-lm3s9b96/README.txt index 44802f60b..c7174d41f 100644 --- a/nuttx/configs/ekk-lm3s9b96/README.txt +++ b/nuttx/configs/ekk-lm3s9b96/README.txt @@ -102,9 +102,9 @@ GNU Toolchain Options the CodeSourcery or devkitARM, you simply need to add one of the following configuration options to your .config (or defconfig) file: - CONFIG_LM_CODESOURCERYW=y : CodeSourcery under Windows - CONFIG_LM_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_LM_DEVKITARM=y : devkitARM under Windows + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux + CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) If you are not using CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT, then you may also have to modify diff --git a/nuttx/configs/fire-stm32v2/README.txt b/nuttx/configs/fire-stm32v2/README.txt index 6b9373995..5ae0a65cb 100644 --- a/nuttx/configs/fire-stm32v2/README.txt +++ b/nuttx/configs/fire-stm32v2/README.txt @@ -191,8 +191,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) diff --git a/nuttx/configs/fire-stm32v2/nsh/defconfig b/nuttx/configs/fire-stm32v2/nsh/defconfig index 6c41414c8..a34f6c866 100644 --- a/nuttx/configs/fire-stm32v2/nsh/defconfig +++ b/nuttx/configs/fire-stm32v2/nsh/defconfig @@ -103,12 +103,11 @@ CONFIG_ARCH_CHIP_STM32F103VET6=y # CONFIG_ARCH_CHIP_STM32F407IG is not set CONFIG_STM32_STM32F10XX=y CONFIG_STM32_HIGHDENSITY=y -CONFIG_STM32_CODESOURCERYW=y -# CONFIG_STM32_CODESOURCERYL is not set -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set diff --git a/nuttx/configs/lpc4330-xplorer/README.txt b/nuttx/configs/lpc4330-xplorer/README.txt index f6d8d00ef..982c2b6e5 100644 --- a/nuttx/configs/lpc4330-xplorer/README.txt +++ b/nuttx/configs/lpc4330-xplorer/README.txt @@ -148,12 +148,11 @@ GNU Toolchain Options the CodeSourcery or devkitARM toolchain, you simply need add one of the following configuration options to your .config (or defconfig) file: - CONFIG_LPC43_CODEREDW=y : Code Red "RedSuite" under Windows - CONFIG_LPC43_CODESOURCERYW=y : CodeSourcery under Windows - CONFIG_LPC43_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_LPC43_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_LPC43_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows - CONFIG_LPC43_DEVKITARM=y : devkitARM under Windows + CONFIG_ARMV7M_TOOLCHAIN_CODEREDW=y : Code Red "RedSuite" under Windows + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) If you are not using CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT, then you may also have to modify @@ -425,15 +424,15 @@ Code Red IDE/Tools By default, the configurations here assume that you are executing directly from SRAM. - CONFIG_LPC43_BOOT_SRAM=y : Executing in SRAM - CONFIG_LPC43_CODEREDW=y : Code Red under Windows + CONFIG_LPC43_BOOT_SRAM=y : Executing in SRAM + CONFIG_ARMV7M_TOOLCHAIN_CODEREDW=y : Code Red under Windows To execute from SPIFI, you would need to set: - CONFIG_LPC43_BOOT_SPIFI=y : Executing from SPIFI - CONFIG_RAM_SIZE=(128*1024) : SRAM Bank0 size - CONFIG_RAM_START=0x10000000 : SRAM Bank0 base address - CONFIG_SPIFI_OFFSET=(512*1024) : SPIFI file system offset + CONFIG_LPC43_BOOT_SPIFI=y : Executing from SPIFI + CONFIG_RAM_SIZE=(128*1024) : SRAM Bank0 size + CONFIG_RAM_START=0x10000000 : SRAM Bank0 base address + CONFIG_SPIFI_OFFSET=(512*1024) : SPIFI file system offset To boot the LPC4330-Xplorer from SPIFI the DIP switches should be 1-OFF, 2-ON, 3-ON, 4-ON (LOW LOW LOW HIGH in Table 19, MSB to LSB). @@ -616,29 +615,14 @@ must be defined in *all* LPC43xx configuration files. CFLAGS ------ -Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see +Only the recent toolchains have built-in support for the Cortex-M4 FPU. You will see the following lines in each Make.defs file: - ifeq ($(CONFIG_LPC43_ATOLLIC_LITE),y) - # Atollic toolchain under Windows - ... ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard else ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif - endif - -If you are using a toolchain other than the Atollic toolchain, then to use the FPU -you will also have to modify the CFLAGS to enable compiler support for the ARMv7-M -FPU. As of this writing, there are not many GCC toolchains that will support the -ARMv7-M FPU. - -As a minimum you will need to add CFLAG options to (1) enable hardware floating point -code generation, and to (2) select the FPU implementation. You might try the same -options as used with the Atollic toolchain in the Make.defs file: - - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard Configuration Changes --------------------- @@ -646,22 +630,20 @@ Configuration Changes Below are all of the configuration changes that I had to make to configs/stm3240g-eval/nsh2 in order to successfully build NuttX using the Atollic toolchain WITH FPU support: - -CONFIG_ARCH_FPU=n : Enable FPU support + -CONFIG_ARCH_FPU=n : Enable FPU support +CONFIG_ARCH_FPU=y - -CONFIG_LPC43_CODESOURCERYW=y : Disable the CodeSourcery toolchain - +CONFIG_LPC43_CODESOURCERYW=n + -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : Disable the CodeSourcery toolchain + +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n - -CONFIG_LPC43_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains - CONFIG_LPC43_ATOLLIC_PRO=n - -CONFIG_LPC43_ATOLLIC_LITE=y : The "Lite" version, OR - CONFIG_LPC43_ATOLLIC_PRO=y : The "Pro" version (not both) + -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=n : Enable the Atollic toolchains + +CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : - -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats - +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) + -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats + +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) - -CONFIG_HAVE_CXX=y : Suppress generation of C++ code - +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version) + -CONFIG_HAVE_CXX=y : Suppress generation of C++ code + +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version) See the section above on Toolchains, NOTE 2, for explanations for some of the configuration settings. Some of the usual settings are just not supported @@ -921,8 +903,8 @@ Where <subdir> is one of the following: 2. By default, this project assumes that you are executing directly from SRAM. - CONFIG_LPC43_BOOT_SRAM=y : Executing in SRAM - CONFIG_LPC43_CODEREDW=y : Code Red under Windows + CONFIG_LPC43_BOOT_SRAM=y : Executing in SRAM + CONFIG_ARMV7M_TOOLCHAIN_CODEREDW=y : Code Red under Windows 3. To execute from SPIFI, you would need to set: diff --git a/nuttx/configs/mikroe-stm32f4/README.txt b/nuttx/configs/mikroe-stm32f4/README.txt index 1a0d29a9b..01072094a 100644 --- a/nuttx/configs/mikroe-stm32f4/README.txt +++ b/nuttx/configs/mikroe-stm32f4/README.txt @@ -64,8 +64,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) @@ -423,29 +422,14 @@ modifying the NuttX configuration CFLAGS ------ -Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see +Only recent GCC toolchains have built-in support for the Cortex-M4 FPU. You will see the following lines in each Make.defs file: - ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE),y) - # Atollic toolchain under Windows - ... ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard else ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif - endif - -If you are using a toolchain other than the Atollic toolchain, then to use the FPU -you will also have to modify the CFLAGS to enable compiler support for the ARMv7-M -FPU. As of this writing, there are not many GCC toolchains that will support the -ARMv7-M FPU. - -As a minimum you will need to add CFLAG options to (1) enable hardware floating point -code generation, and to (2) select the FPU implementation. You might try the same -options as used with the Atollic toolchain in the Make.defs file: - - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard Configuration Changes --------------------- @@ -459,10 +443,8 @@ in order to successfully build NuttX using the Atollic toolchain WITH FPU suppor -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : Disable the CodeSourcery toolchain +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n - -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=n - -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The "Lite" version - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=n : The "Pro" version + -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=n : Enable the Atollic toolchain + +CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) diff --git a/nuttx/configs/open1788/README.txt b/nuttx/configs/open1788/README.txt index ccb7e5633..a97e49714 100644 --- a/nuttx/configs/open1788/README.txt +++ b/nuttx/configs/open1788/README.txt @@ -10,7 +10,6 @@ CONTENTS o LEDs o Buttons - o FPU o Serial Console o Using OpenOCD with the Olimex ARM-USB-OCD o Loading Code with the ISP Board @@ -63,98 +62,6 @@ Buttons These can be accessed using the definitions and interfaces defined in the board.h header file. -FPU -=== - - FPU Configuration Options - ------------------------- - - There are two version of the FPU support built into the LPC17xx port. - - 1. Lazy Floating Point Register Save. - - This is an untested implementation that saves and restores FPU registers - only on context switches. This means: (1) floating point registers are - not stored on each context switch and, hence, possibly better interrupt - performance. But, (2) since floating point registers are not saved, - you cannot use floating point operations within interrupt handlers. - - This logic can be enabled by simply adding the following to your .config - file: - - CONFIG_ARCH_FPU=y - - 2. Non-Lazy Floating Point Register Save - - Mike Smith has contributed an extensive re-write of the ARMv7-M exception - handling logic. This includes verified support for the FPU. These changes - have not yet been incorporated into the mainline and are still considered - experimental. These FPU logic can be enabled with: - - CONFIG_ARCH_FPU=y - CONFIG_ARMV7M_CMNVECTOR=y - - You will probably also changes to the ld.script in if this option is selected. - This should work: - - -ENTRY(_stext) - +ENTRY(__start) /* Treat __start as the anchor for dead code stripping */ - +EXTERN(_vectors) /* Force the vectors to be included in the output */ - - CFLAGS - ------ - - Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see - the following lines in each Make.defs file: - - ifeq ($(CONFIG_STM32_ATOLLIC_LITE),y) - # Atollic toolchain under Windows - ... - ifeq ($(CONFIG_ARCH_FPU),y) - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard - else - ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft - endif - endif - - If you are using a toolchain other than the Atollic toolchain, then to use the FPU - you will also have to modify the CFLAGS to enable compiler support for the ARMv7-M - FPU. As of this writing, there are not many GCC toolchains that will support the - ARMv7-M FPU. - - As a minimum you will need to add CFLAG options to (1) enable hardware floating point - code generation, and to (2) select the FPU implementation. You might try the same - options as used with the Atollic toolchain in the Make.defs file: - - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard - - Configuration Changes - --------------------- - - Below are all of the configuration changes that I had to make to configs/stm3240g-eval/nsh2 - in order to successfully build NuttX using the Atollic toolchain WITH FPU support: - - -CONFIG_ARCH_FPU=n : Enable FPU support - +CONFIG_ARCH_FPU=y - - -CONFIG_STM32_CODESOURCERYW=y : Disable the CodeSourcery toolchain - +CONFIG_STM32_CODESOURCERYW=n - - -CONFIG_STM32_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains - CONFIG_STM32_ATOLLIC_PRO=n - -CONFIG_STM32_ATOLLIC_LITE=y : The "Lite" version - CONFIG_STM32_ATOLLIC_PRO=n : The "Pro" version - - -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats - +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) - - -CONFIG_HAVE_CXX=y : Suppress generation of C++ code - +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version) - - See the section above on Toolchains, NOTE 2, for explanations for some of - the configuration settings. Some of the usual settings are just not supported - by the "Lite" version of the Atollic toolchain. - Serial Console ============== diff --git a/nuttx/configs/shenzhou/README.txt b/nuttx/configs/shenzhou/README.txt index 809630549..bd25099e2 100644 --- a/nuttx/configs/shenzhou/README.txt +++ b/nuttx/configs/shenzhou/README.txt @@ -214,8 +214,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) diff --git a/nuttx/configs/shenzhou/nsh/defconfig b/nuttx/configs/shenzhou/nsh/defconfig index 48f6bd1a4..5ef66ea47 100644 --- a/nuttx/configs/shenzhou/nsh/defconfig +++ b/nuttx/configs/shenzhou/nsh/defconfig @@ -116,12 +116,11 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F407IG is not set CONFIG_STM32_STM32F10XX=y CONFIG_STM32_CONNECTIVITYLINE=y -CONFIG_STM32_CODESOURCERYW=y -# CONFIG_STM32_CODESOURCERYL is not set -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set diff --git a/nuttx/configs/shenzhou/thttpd/defconfig b/nuttx/configs/shenzhou/thttpd/defconfig index 4bc563157..ab9e43241 100644 --- a/nuttx/configs/shenzhou/thttpd/defconfig +++ b/nuttx/configs/shenzhou/thttpd/defconfig @@ -103,12 +103,11 @@ CONFIG_ARCH_CHIP_STM32F107VC=y # CONFIG_ARCH_CHIP_STM32F407IG is not set CONFIG_STM32_STM32F10XX=y CONFIG_STM32_CONNECTIVITYLINE=y -CONFIG_STM32_CODESOURCERYW=n -# CONFIG_STM32_CODESOURCERYL is not set -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set @@ -965,7 +964,7 @@ CONFIG_THTTPD_CHARSET="iso-8859-1" CONFIG_NETUTILS_DHCPC=n CONFIG_THTTPD_PORT=80 CONFIG_THTTPD=y -CONFIG_STM32_CODESOURCERYL=n +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=n CONFIG_NSH_DHCPC=n CONFIG_THTTPD_IPADDR=0xc0a80032 CONFIG_THTTPD_PATH="/mnt/www" diff --git a/nuttx/configs/spark/README.txt b/nuttx/configs/spark/README.txt index 1937333eb..1f82ce96c 100644 --- a/nuttx/configs/spark/README.txt +++ b/nuttx/configs/spark/README.txt @@ -68,10 +68,9 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=n : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=n : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=n : devkitARM under Windows - CONFIG_ARMV7M_TOOLCHAIN_RAISONANCEny : Raisonance RIDE7 under Windows + CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=n : NuttX buildroot under Linux or Cygwin (default) If you change the default toolchain, then you may also have to modify the PATH in diff --git a/nuttx/configs/stm3210e-eval/README.txt b/nuttx/configs/stm3210e-eval/README.txt index 0394537c5..58b9a73cd 100644 --- a/nuttx/configs/stm3210e-eval/README.txt +++ b/nuttx/configs/stm3210e-eval/README.txt @@ -968,9 +968,9 @@ Where <subdir> is one of the following: 2. Default configuration is Cygwin under windows using the CodeSourcery toolchain: - CONFIG_HOST_WINDOWS=y : Windows - CONFIG_WINDOWS_CYGWIN=y : Cygwin - CONFIG_STM32_CODESOURCERYW=y : CodeSourcery under Windows + CONFIG_HOST_WINDOWS=y : Windows + CONFIG_WINDOWS_CYGWIN=y : Cygwin + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows 3. CONFIG_ARCH_CUSTOM_PMINIT and CONFIG_ARCH_IDLE_CUSTOM are necessary parts of the PM configuration: diff --git a/nuttx/configs/stm3220g-eval/README.txt b/nuttx/configs/stm3220g-eval/README.txt index 0aff45d10..67a982ba6 100644 --- a/nuttx/configs/stm3220g-eval/README.txt +++ b/nuttx/configs/stm3220g-eval/README.txt @@ -55,8 +55,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) diff --git a/nuttx/configs/stm3240g-eval/README.txt b/nuttx/configs/stm3240g-eval/README.txt index 9d9c1f5d1..2af6ef5ac 100644 --- a/nuttx/configs/stm3240g-eval/README.txt +++ b/nuttx/configs/stm3240g-eval/README.txt @@ -56,8 +56,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) @@ -433,29 +432,14 @@ There are two version of the FPU support built into the STM32 port. CFLAGS ------ -Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see +Only recent GCC toolchains have built-in support for the Cortex-M4 FPU. You will see the following lines in each Make.defs file: - ifeq ($(CONFIG_STM32_ATOLLIC_LITE),y) - # Atollic toolchain under Windows - ... ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard else ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif - endif - -If you are using a toolchain other than the Atollic toolchain, then to use the FPU -you will also have to modify the CFLAGS to enable compiler support for the ARMv7-M -FPU. As of this writing, there are not many GCC toolchains that will support the -ARMv7-M FPU. - -As a minimum you will need to add CFLAG options to (1) enable hardware floating point -code generation, and to (2) select the FPU implementation. You might try the same -options as used with the Atollic toolchain in the Make.defs file: - - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard Configuration Changes --------------------- @@ -463,22 +447,20 @@ Configuration Changes Below are all of the configuration changes that I had to make to configs/stm3240g-eval/nsh2 in order to successfully build NuttX using the Atollic toolchain WITH FPU support: - -CONFIG_ARCH_FPU=n : Enable FPU support + -CONFIG_ARCH_FPU=n : Enable FPU support +CONFIG_ARCH_FPU=y - -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : Disable the CodeSourcery toolchain + -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : Disable the CodeSourcery toolchain +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n - -CONFIG_STM32_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains - CONFIG_STM32_ATOLLIC_PRO=n - -CONFIG_STM32_ATOLLIC_LITE=y : The "Lite" version, OR - CONFIG_STM32_ATOLLIC_PRO=y : The "Pro" version (not both) + -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=n : Enable the Atollic toolchain + +CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : - -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats - +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) + -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats + +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) - -CONFIG_HAVE_CXX=y : Suppress generation of C++ code - +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version) + -CONFIG_HAVE_CXX=y : Suppress generation of C++ code + +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version) See the section above on Toolchains, NOTE 2, for explanations for some of the configuration settings. Some of the usual settings are just not supported diff --git a/nuttx/configs/stm3240g-eval/discover/defconfig b/nuttx/configs/stm3240g-eval/discover/defconfig index cda6bd499..2cbfc45f9 100644 --- a/nuttx/configs/stm3240g-eval/discover/defconfig +++ b/nuttx/configs/stm3240g-eval/discover/defconfig @@ -121,12 +121,11 @@ CONFIG_BOARD_LOOPSPERMSEC=16717 # CONFIG_ARCH_CHIP_STM32F407IE is not set CONFIG_ARCH_CHIP_STM32F407IG=y CONFIG_STM32_STM32F40XX=y -# CONFIG_STM32_CODESOURCERYW is not set -CONFIG_STM32_CODESOURCERYL=y -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set diff --git a/nuttx/configs/stm3240g-eval/xmlrpc/defconfig b/nuttx/configs/stm3240g-eval/xmlrpc/defconfig index 388b69884..be5d22711 100644 --- a/nuttx/configs/stm3240g-eval/xmlrpc/defconfig +++ b/nuttx/configs/stm3240g-eval/xmlrpc/defconfig @@ -121,12 +121,11 @@ CONFIG_BOARD_LOOPSPERMSEC=16717 # CONFIG_ARCH_CHIP_STM32F407IE is not set CONFIG_ARCH_CHIP_STM32F407IG=y CONFIG_STM32_STM32F40XX=y -# CONFIG_STM32_CODESOURCERYW is not set -CONFIG_STM32_CODESOURCERYL=y -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set diff --git a/nuttx/configs/stm32_tiny/README.txt b/nuttx/configs/stm32_tiny/README.txt index 1210ccc72..b4847b277 100644 --- a/nuttx/configs/stm32_tiny/README.txt +++ b/nuttx/configs/stm32_tiny/README.txt @@ -52,8 +52,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) diff --git a/nuttx/configs/stm32f100rc_generic/README.txt b/nuttx/configs/stm32f100rc_generic/README.txt index 481a92147..d7c8e64e5 100644 --- a/nuttx/configs/stm32f100rc_generic/README.txt +++ b/nuttx/configs/stm32f100rc_generic/README.txt @@ -50,8 +50,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) @@ -471,4 +470,4 @@ Where <subdir> is one of the following: Default toolchain: - CONFIG_STM32_CODESOURCERYL=y : CodeSourcery under Linux / Mac OS X + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux / Mac OS X diff --git a/nuttx/configs/stm32f100rc_generic/nsh/defconfig b/nuttx/configs/stm32f100rc_generic/nsh/defconfig index be0c7c3a5..3b745e0ed 100644 --- a/nuttx/configs/stm32f100rc_generic/nsh/defconfig +++ b/nuttx/configs/stm32f100rc_generic/nsh/defconfig @@ -117,12 +117,11 @@ CONFIG_ARCH_CHIP_STM32F100RC=y CONFIG_STM32_STM32F10XX=y CONFIG_STM32_VALUELINE=y CONFIG_STM32_HIGHDENSITY=y -# CONFIG_STM32_CODESOURCERYW is not set -CONFIG_STM32_CODESOURCERYL=y -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set diff --git a/nuttx/configs/stm32f3discovery/README.txt b/nuttx/configs/stm32f3discovery/README.txt index 11a6da3e4..d557c2fdf 100644 --- a/nuttx/configs/stm32f3discovery/README.txt +++ b/nuttx/configs/stm32f3discovery/README.txt @@ -48,8 +48,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) @@ -366,29 +365,14 @@ There are two version of the FPU support built into the STM32 port. CFLAGS ------ -Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see +Only recent GCC toolchains have built-in support for the Cortex-M4 FPU. You will see the following lines in each Make.defs file: - ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE),y) - # Atollic toolchain under Windows - ... ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard else ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif - endif - -If you are using a toolchain other than the Atollic toolchain, then to use the FPU -you will also have to modify the CFLAGS to enable compiler support for the ARMv7-M -FPU. As of this writing, there are not many GCC toolchains that will support the -ARMv7-M FPU. - -As a minimum you will need to add CFLAG options to (1) enable hardware floating point -code generation, and to (2) select the FPU implementation. You might try the same -options as used with the Atollic toolchain in the Make.defs file: - - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard Configuration Changes --------------------- @@ -402,10 +386,8 @@ in order to successfully build NuttX using the Atollic toolchain WITH FPU suppor -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : Disable the CodeSourcery toolchain +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n - -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=n - -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The "Lite" version - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=n : The "Pro" version + -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=n : Enable the Atollic toolchain + +CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) diff --git a/nuttx/configs/stm32f429i-disco/README.txt b/nuttx/configs/stm32f429i-disco/README.txt index 516cec537..d79008c0c 100644 --- a/nuttx/configs/stm32f429i-disco/README.txt +++ b/nuttx/configs/stm32f429i-disco/README.txt @@ -231,29 +231,14 @@ There are two version of the FPU support built into the STM32 port. CFLAGS ------ -Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see +Only recent GCC toolchains have built-in support for the Cortex-M4 FPU. You will see the following lines in each Make.defs file: - ifeq ($(CONFIG_STM32_ATOLLIC_LITE),y) - # Atollic toolchain under Windows - ... ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard else ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif - endif - -If you are using a toolchain other than the Atollic toolchain, then to use the FPU -you will also have to modify the CFLAGS to enable compiler support for the ARMv7-M -FPU. As of this writing, there are not many GCC toolchains that will support the -ARMv7-M FPU. - -As a minimum you will need to add CFLAG options to (1) enable hardware floating point -code generation, and to (2) select the FPU implementation. You might try the same -options as used with the Atollic toolchain in the Make.defs file: - - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard Configuration Changes --------------------- @@ -261,22 +246,20 @@ Configuration Changes Below are all of the configuration changes that I had to make to configs/stm3240g-eval/nsh2 in order to successfully build NuttX using the Atollic toolchain WITH FPU support: - -CONFIG_ARCH_FPU=n : Enable FPU support + -CONFIG_ARCH_FPU=n : Enable FPU support +CONFIG_ARCH_FPU=y - -CONFIG_STM32_CODESOURCERYW=y : Disable the CodeSourcery toolchain - +CONFIG_STM32_CODESOURCERYW=n + -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : Disable the CodeSourcery toolchain + +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n - -CONFIG_STM32_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains - CONFIG_STM32_ATOLLIC_PRO=n - -CONFIG_STM32_ATOLLIC_LITE=y : The "Lite" version - CONFIG_STM32_ATOLLIC_PRO=n : The "Pro" version + -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=n : Enable the Atollic toolchain + +CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : - -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats - +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) + -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats + +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) - -CONFIG_HAVE_CXX=y : Suppress generation of C++ code - +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version) + -CONFIG_HAVE_CXX=y : Suppress generation of C++ code + +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version) See the section above on Toolchains, NOTE 2, for explanations for some of the configuration settings. Some of the usual settings are just not supported diff --git a/nuttx/configs/stm32f4discovery/README.txt b/nuttx/configs/stm32f4discovery/README.txt index b12dc49db..a28a282f6 100644 --- a/nuttx/configs/stm32f4discovery/README.txt +++ b/nuttx/configs/stm32f4discovery/README.txt @@ -65,8 +65,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) @@ -463,29 +462,14 @@ There are two version of the FPU support built into the STM32 port. CFLAGS ------ -Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see +Only recent GCC toolchains have built-in support for the Cortex-M4 FPU. You will see the following lines in each Make.defs file: - ifeq ($(CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE),y) - # Atollic toolchain under Windows - ... ifeq ($(CONFIG_ARCH_FPU),y) ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard else ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif - endif - -If you are using a toolchain other than the Atollic toolchain, then to use the FPU -you will also have to modify the CFLAGS to enable compiler support for the ARMv7-M -FPU. As of this writing, there are not many GCC toolchains that will support the -ARMv7-M FPU. - -As a minimum you will need to add CFLAG options to (1) enable hardware floating point -code generation, and to (2) select the FPU implementation. You might try the same -options as used with the Atollic toolchain in the Make.defs file: - - ARCHCPUFLAGS = -mcpu=cortex-m4 -mthumb -march=armv7e-m -mfpu=fpv4-sp-d16 -mfloat-abi=hard Configuration Changes --------------------- @@ -499,10 +483,8 @@ in order to successfully build NuttX using the Atollic toolchain WITH FPU suppor -CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : Disable the CodeSourcery toolchain +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=n - -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=n - -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The "Lite" version - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=n : The "Pro" version + -CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=n : Enable the Atollic toolchain + +CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version) diff --git a/nuttx/configs/stm32f4discovery/winbuild/defconfig b/nuttx/configs/stm32f4discovery/winbuild/defconfig index 06ba74df9..e156626ee 100644 --- a/nuttx/configs/stm32f4discovery/winbuild/defconfig +++ b/nuttx/configs/stm32f4discovery/winbuild/defconfig @@ -124,12 +124,11 @@ CONFIG_ARCH_CHIP_STM32F407VG=y # CONFIG_ARCH_CHIP_STM32F407IE is not set # CONFIG_ARCH_CHIP_STM32F407IG is not set CONFIG_STM32_STM32F40XX=y -CONFIG_STM32_CODESOURCERYW=y -# CONFIG_STM32_CODESOURCERYL is not set -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL is not set +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set diff --git a/nuttx/configs/stm32ldiscovery/README.txt b/nuttx/configs/stm32ldiscovery/README.txt index d1da30f2a..81cc6abf3 100644 --- a/nuttx/configs/stm32ldiscovery/README.txt +++ b/nuttx/configs/stm32ldiscovery/README.txt @@ -213,8 +213,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) diff --git a/nuttx/configs/stm32vldiscovery/README.txt b/nuttx/configs/stm32vldiscovery/README.txt index acdb3697c..932d11a86 100644 --- a/nuttx/configs/stm32vldiscovery/README.txt +++ b/nuttx/configs/stm32vldiscovery/README.txt @@ -46,8 +46,7 @@ GNU Toolchain Options CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows - CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC_PRO=y : The paid, "Pro" version of Atollic toolchain under Windows + CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC=y : The Atollic toolchain under Windows CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM=y : devkitARM under Windows CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) @@ -469,4 +468,4 @@ Where <subdir> is one of the following: Default toolchain: - CONFIG_STM32_CODESOURCERYL=y : CodeSourcery under Linux / Mac OS X + CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y : CodeSourcery under Linux / Mac OS X diff --git a/nuttx/configs/stm32vldiscovery/nsh/defconfig b/nuttx/configs/stm32vldiscovery/nsh/defconfig index a43f6c588..8ef17dacb 100644 --- a/nuttx/configs/stm32vldiscovery/nsh/defconfig +++ b/nuttx/configs/stm32vldiscovery/nsh/defconfig @@ -117,12 +117,11 @@ CONFIG_ARCH_CHIP_STM32F100RB=y CONFIG_STM32_STM32F10XX=y CONFIG_STM32_VALUELINE=y CONFIG_STM32_HIGHDENSITY=y -# CONFIG_STM32_CODESOURCERYW is not set -CONFIG_STM32_CODESOURCERYL=y -# CONFIG_STM32_ATOLLIC_LITE is not set -# CONFIG_STM32_ATOLLIC_PRO is not set -# CONFIG_STM32_DEVKITARM is not set -# CONFIG_STM32_RAISONANCE is not set +# CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYW is not set +CONFIG_ARMV7M_TOOLCHAIN_CODESOURCERYL=y +# CONFIG_ARMV7M_TOOLCHAIN_ATOLLIC is not set +# CONFIG_ARMV7M_TOOLCHAIN_DEVKITARM is not set +# CONFIG_ARMV7M_TOOLCHAIN_RAISONANCE is not set # CONFIG_ARMV7M_TOOLCHAIN_BUILDROOT is not set # CONFIG_STM32_DFU is not set |