Use common naming for rest of the toolchains too
This commit is contained in:
parent
d7d856e504
commit
5317d78c41
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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:
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
==============
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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
|
||||
|
@ -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:
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
||||
|
@ -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)
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user