diff options
Diffstat (limited to 'nuttx/configs')
30 files changed, 196 insertions, 524 deletions
diff --git a/nuttx/configs/amber/README.txt b/nuttx/configs/amber/README.txt index 63fa5d41f..56e31ba7f 100644 --- a/nuttx/configs/amber/README.txt +++ b/nuttx/configs/amber/README.txt @@ -187,6 +187,12 @@ Atmel AVRISP mkII Connection Toolchains ^^^^^^^^^^ +The toolchain may be selected using the mconf tool (via 'make menuconfig'), +by editing the existing configuration file (defconfig), or by overriding +the toolchain on the make commandline with CONFIG_AVR_TOOLCHAIN=<toolchain>. + +The valid values for <toolchain> are BUILDROOT, CROSSPACK, LINUXGCC and WINAVR. + Buildroot: There is a DIY buildroot version for the AVR boards here: @@ -223,6 +229,14 @@ Linux: After configuring NuttX, make sure that CONFIG_AVR_LINUXGCC=y is set in your .config file. +Mac OS X: + + For Mac OS X, the CrossPack for AVR toolchain is available from: + + http://www.obdev.at/products/crosspack/index.html + + This toolchain is functionally equivalent to the Linux GCC toolchain. + Windows Native Toolchains ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/nuttx/configs/amber/hello/Make.defs b/nuttx/configs/amber/hello/Make.defs index 15c31f192..e7f998dc7 100644 --- a/nuttx/configs/amber/hello/Make.defs +++ b/nuttx/configs/amber/hello/Make.defs @@ -35,33 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_AVR_WINAVR),y) - # WinAVR toolchain under Windows/Cygwin - CROSSDEV = avr- - WINTOOL = y - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=atmega128 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_LINUXGCC),y) - # GCC toolchain under Linux - CROSSDEV = avr- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=atmega128 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_BUILDROOT),y) - # NuttX buildroot GCC toolchain under Linux or Cygwin - CROSSDEV = avr-nuttx-elf- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=atmega128 - LDFLAGS += -nostartfiles -nodefaultlibs -endif +include ${TOPDIR}/arch/avr/src/avr/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/avr32dev1/README.txt b/nuttx/configs/avr32dev1/README.txt index 68d019227..37e15dc9b 100644 --- a/nuttx/configs/avr32dev1/README.txt +++ b/nuttx/configs/avr32dev1/README.txt @@ -112,7 +112,7 @@ PA17 and PA23 are avaiable from the AVR32DEV1: Development Environment ^^^^^^^^^^^^^^^^^^^^^^^ - Either Linux or Cygwin on Windows can be used for the development environment. + Linux, Mac OS X or Cygwin on Windows can be used for the development environment. The source has been built only using the GNU toolchain (see below). Other toolchains will likely cause problems. Testing was performed using the Cygwin environment. @@ -140,6 +140,16 @@ WinAVR: AVR32 toolchain as well as the AVR toolchain and various support libraries and header files. +AVR32 Toolchain Builder: + + A third option is to build the toolchain yourself. For OS X and Linux systems, + this Makefile will build a complete gcc-4.4.3 toolchain: + + https://github.com/jsnyder/avr32-toolchain + + By default the toolchain installs into ${HOME}/avr-32-tools-<somedate> and + the bin subdirectory must be added to your path before compiling. + IDEs ^^^^ diff --git a/nuttx/configs/avr32dev1/nsh/Make.defs b/nuttx/configs/avr32dev1/nsh/Make.defs index aa84884d0..bccb35069 100644 --- a/nuttx/configs/avr32dev1/nsh/Make.defs +++ b/nuttx/configs/avr32dev1/nsh/Make.defs @@ -35,20 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_AVR32_AVRTOOLSW),y) - # AVR Tools under Windows - CROSSDEV = avr32- - WINTOOL = y - ARCHCPUFLAGS = -mpart=uc3b0256 -endif -ifeq ($(CONFIG_AVR32_AVRTOOLSL),y) - # AVR Tools under Linux - CROSSDEV = avr32- - ARCHCPUFLAGS = -mpart=uc3b0256 -endif +include ${TOPDIR}/arch/avr/src/avr32/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ea3131/README.txt b/nuttx/configs/ea3131/README.txt index 2912bf318..fcfc0792f 100644 --- a/nuttx/configs/ea3131/README.txt +++ b/nuttx/configs/ea3131/README.txt @@ -34,8 +34,9 @@ GNU Toolchain Options 1. The CodeSourcery GNU toolchain, 2. The devkitARM GNU toolchain, - 3. Raisonance GNU toolchain, or - 4. The NuttX buildroot Toolchain (see below). + 3. Raisonance GNU toolchain, + 4. The NuttX buildroot Toolchain (see below), or + 5. Any generic arm-none-eabi GNU toolchain. All testing has been conducted using the NuttX buildroot toolchain. However, the make system is setup to default to use the devkitARM toolchain. To use @@ -47,10 +48,16 @@ GNU Toolchain Options CONFIG_LPC31_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_LPC31_DEVKITARM=y : devkitARM under Windows CONFIG_LPC31_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) + CONFIG_ARM_TOOLCHAIN_GNU_EABI : Generic arm-none-eabi toolchain If you are not using CONFIG_LPC31_BUILDROOT, then you may also have to modify the PATH in the setenv.h file if your make cannot find the tools. + The toolchain may also be set using the mconf utility (make menuconfig) or by + passing CONFIG_ARM_TOOLCHAIN=<toolchain> to make, where <toolchain> is one + of CODESOURCERYW, CODESOURCERYL, DEVKITARM, BUILDROOT or GNU_EABI as described + above. + NOTE: the CodeSourcery (for Windows), devkitARM, and Raisonance toolchains are Windows native toolchains. The CodeSourcey (for Linux) and NuttX buildroot toolchains are Cygwin and/or Linux native toolchains. There are several limitations @@ -87,6 +94,23 @@ GNU Toolchain Options the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM path or will get the wrong version of make. + Generic arm-none-eabi GNU Toolchain + ----------------------------------- + There are a number of toolchain projects providing support for ARMv4/v5 + class processors, including: + + GCC ARM Embedded + https://launchpad.net/gcc-arm-embedded + + Summon ARM Toolchain + https://github.com/esden/summon-arm-toolchain + + Yagarto + http://www.yagarto.de + + Others exist for various Linux distributions, MacPorts, etc. Any version + based on GCC 4.6.3 or later should work. + IDEs ^^^^ diff --git a/nuttx/configs/ea3131/nsh/Make.defs b/nuttx/configs/ea3131/nsh/Make.defs index a061eb22c..1bfd6f4d5 100644 --- a/nuttx/configs/ea3131/nsh/Make.defs +++ b/nuttx/configs/ea3131/nsh/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_LPC31_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_LPC31_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ea3131/ostest/Make.defs b/nuttx/configs/ea3131/ostest/Make.defs index ba750e212..9c8780a4a 100644 --- a/nuttx/configs/ea3131/ostest/Make.defs +++ b/nuttx/configs/ea3131/ostest/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_LPC31_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_LPC31_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ea3131/pgnsh/Make.defs b/nuttx/configs/ea3131/pgnsh/Make.defs index c142319de..f71a0920e 100644 --- a/nuttx/configs/ea3131/pgnsh/Make.defs +++ b/nuttx/configs/ea3131/pgnsh/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_LPC31_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_LPC31_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ea3131/usbserial/Make.defs b/nuttx/configs/ea3131/usbserial/Make.defs index ef64e2615..1b1eb45d5 100644 --- a/nuttx/configs/ea3131/usbserial/Make.defs +++ b/nuttx/configs/ea3131/usbserial/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_LPC31_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_LPC31_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ea3131/usbstorage/Make.defs b/nuttx/configs/ea3131/usbstorage/Make.defs index 739360615..7155ccf5c 100644 --- a/nuttx/configs/ea3131/usbstorage/Make.defs +++ b/nuttx/configs/ea3131/usbstorage/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_LPC31_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_LPC31_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ea3152/README.txt b/nuttx/configs/ea3152/README.txt index 7aa57e3ae..da57945bd 100644 --- a/nuttx/configs/ea3152/README.txt +++ b/nuttx/configs/ea3152/README.txt @@ -33,8 +33,9 @@ GNU Toolchain Options 1. The CodeSourcery GNU toolchain, 2. The devkitARM GNU toolchain, - 3. Raisonance GNU toolchain, or - 4. The NuttX buildroot Toolchain (see below). + 3. Raisonance GNU toolchain, + 4. The NuttX buildroot Toolchain (see below), or + 5. Any generic arm-none-eabi GNU toolchain. All testing has been conducted using the NuttX buildroot toolchain. However, the make system is setup to default to use the devkitARM toolchain. To use @@ -46,10 +47,16 @@ GNU Toolchain Options CONFIG_LPC31_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_LPC31_DEVKITARM=y : devkitARM under Windows CONFIG_LPC31_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) + CONFIG_ARM_TOOLCHAIN_GNU_EABI : Generic arm-none-eabi toolchain If you are not using CONFIG_LPC31_BUILDROOT, then you may also have to modify the PATH in the setenv.h file if your make cannot find the tools. + The toolchain may also be set using the mconf utility (make menuconfig) or by + passing CONFIG_ARM_TOOLCHAIN=<toolchain> to make, where <toolchain> is one + of CODESOURCERYW, CODESOURCERYL, DEVKITARM, BUILDROOT or GNU_EABI as described + above. + NOTE: the CodeSourcery (for Windows), devkitARM, and Raisonance toolchains are Windows native toolchains. The CodeSourcey (for Linux) and NuttX buildroot toolchains are Cygwin and/or Linux native toolchains. There are several limitations @@ -85,6 +92,23 @@ GNU Toolchain Options NOTE 2: The devkitARM toolchain includes a version of MSYS make. Make sure that the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM path or will get the wrong version of make. + + Generic arm-none-eabi GNU Toolchain + ----------------------------------- + There are a number of toolchain projects providing support for ARMv4/v5 + class processors, including: + + GCC ARM Embedded + https://launchpad.net/gcc-arm-embedded + + Summon ARM Toolchain + https://github.com/esden/summon-arm-toolchain + + Yagarto + http://www.yagarto.de + + Others exist for various Linux distributions, MacPorts, etc. Any version + based on GCC 4.6.3 or later should work. IDEs ^^^^ diff --git a/nuttx/configs/ea3152/ostest/Make.defs b/nuttx/configs/ea3152/ostest/Make.defs index f69eb5e95..45168938a 100644 --- a/nuttx/configs/ea3152/ostest/Make.defs +++ b/nuttx/configs/ea3152/ostest/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_LPC31_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_LPC31_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_LPC31_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/micropendous3/README.txt b/nuttx/configs/micropendous3/README.txt index 583f1d8d8..1b0f2c8ce 100644 --- a/nuttx/configs/micropendous3/README.txt +++ b/nuttx/configs/micropendous3/README.txt @@ -198,7 +198,13 @@ Toolchains There are several toolchain options. However, testing has been performed using *only* the NuttX buildroot toolchain described below. Therefore, -the NuttX buildroot toolchain is the recommended choice: +the NuttX buildroot toolchain is the recommended choice. + +The toolchain may be selected using the mconf tool (via 'make menuconfig'), +by editing the existing configuration file (defconfig), or by overriding +the toolchain on the make commandline with CONFIG_AVR_TOOLCHAIN=<toolchain>. + +The valid values for <toolchain> are BUILDROOT, CROSSPACK, LINUXGCC and WINAVR. Buildroot: @@ -236,6 +242,14 @@ Linux: After configuring NuttX, make sure that CONFIG_AVR_LINUXGCC=y is set in your .config file. +Mac OS X: + + For Mac OS X, the CrossPack for AVR toolchain is available from: + + http://www.obdev.at/products/crosspack/index.html + + This toolchain is functionally equivalent to the Linux GCC toolchain. + Windows Native Toolchains ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/nuttx/configs/micropendous3/hello/Make.defs b/nuttx/configs/micropendous3/hello/Make.defs index 69073bb43..a40098fff 100644 --- a/nuttx/configs/micropendous3/hello/Make.defs +++ b/nuttx/configs/micropendous3/hello/Make.defs @@ -35,33 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_AVR_WINAVR),y) - # WinAVR toolchain under Windows/Cygwin - CROSSDEV = avr- - WINTOOL = y - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb647 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_LINUXGCC),y) - # GCC toolchain under Linux - CROSSDEV = avr- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb647 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_BUILDROOT),y) - # NuttX buildroot GCC toolchain under Linux or Cygwin - CROSSDEV = avr-nuttx-elf- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb647 - LDFLAGS += -nostartfiles -nodefaultlibs -endif +include ${TOPDIR}/arch/avr/src/avr/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/mirtoo/README.txt b/nuttx/configs/mirtoo/README.txt index 488884ba5..89c137a03 100644 --- a/nuttx/configs/mirtoo/README.txt +++ b/nuttx/configs/mirtoo/README.txt @@ -323,6 +323,12 @@ Additional signals available via Peripheral Pin Selections (PPS) Toolchains ========== + Note that in addition to the configuration options listed below, the + toolchain can be configured using the mconf utility ('make menuconfig') + or by passing CONFIG_MIPS32_TOOLCHAIN=<toolchain> to make, where + <toolchain> is one of GNU_ELF, MICROCHIPL, MICROCHIPW, MICROCHIPL_LITE, + MICROCHIPW_LITE, MICROCHIPOPENL or PINGUINOW as described below. + MPLAB/C32 --------- @@ -376,7 +382,7 @@ Toolchains Note that the tools will have the prefix, mypic32- so, for example, the compiler will be called mypic32-gcc. - Pinguino mips-elf Toolchain + Pinguino mips-elf / Generic mips-elf Toolchain --------------------------- Another option is the mips-elf toolchain used with the Pinguino project. This @@ -390,12 +396,15 @@ Toolchains configurations. Use one of these configuration options to select the Pinguino mips-elf toolchain: - CONFIG_PIC32MX_PINGUINOW - Pinguino mips-elf toolchain for Windows - CONFIG_PIC32MX_PINGUINOL - Pinguino mips toolchain for Linux + CONFIG_PIC32MX_PINGUINOW - Pinguino mips-elf toolchain for Windows + CONFIG_MIPS32_TOOLCHAIN_GNU_ELF - mips-elf toolchain for Linux or OS X And set the path appropriately in the setenv.sh file. These tool configurations are untested -- expect some additional integration issues. Good luck! + This configuration will also work with any generic mips-elf GCC past version + 4.6 or so. + MPLAB/C32 vs MPLABX/X32 ----------------------- diff --git a/nuttx/configs/ntosd-dm320/README.txt b/nuttx/configs/ntosd-dm320/README.txt index 1a6a38e7c..d85e53525 100644 --- a/nuttx/configs/ntosd-dm320/README.txt +++ b/nuttx/configs/ntosd-dm320/README.txt @@ -54,7 +54,8 @@ GNU Toolchain Options 1. The CodeSourcery GNU toolchain, 2. The devkitARM GNU toolchain, 3. Raisonance GNU toolchain, or - 4. The NuttX buildroot Toolchain (see below). + 4. The NuttX buildroot Toolchain (see below), or + 5. Any generic arm-none-eabi GNU toolchain. All testing has been conducted using the NuttX buildroot toolchain. However, the make system is setup to default to use the devkitARM toolchain. To use @@ -65,11 +66,17 @@ GNU Toolchain Options CONFIG_DM320_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_DM320_CODESOURCERYL=y : CodeSourcery under Linux CONFIG_DM320_DEVKITARM=y : devkitARM under Windows - CONFIG_DM320_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) + CONFIG_DM320_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) + CONFIG_ARM_TOOLCHAIN_GNU_EABI : Generic arm-none-eabi toolchain If you are not using CONFIG_DM320_BUILDROOT, then you may also have to modify the PATH in the setenv.h file if your make cannot find the tools. + The toolchain may also be set using the mconf utility (make menuconfig) or by + passing CONFIG_ARM_TOOLCHAIN=<toolchain> to make, where <toolchain> is one + of CODESOURCERYW, CODESOURCERYL, DEVKITARM, BUILDROOT or GNU_EABI as described + above. + NOTE: the CodeSourcery (for Windows), devkitARM, and Raisonance toolchains are Windows native toolchains. The CodeSourcey (for Linux) and NuttX buildroot toolchains are Cygwin and/or Linux native toolchains. There are several limitations @@ -105,6 +112,23 @@ GNU Toolchain Options NOTE 2: The devkitARM toolchain includes a version of MSYS make. Make sure that the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM path or will get the wrong version of make. + + Generic arm-none-eabi GNU Toolchain + ----------------------------------- + There are a number of toolchain projects providing support for ARMv4/v5 + class processors, including: + + GCC ARM Embedded + https://launchpad.net/gcc-arm-embedded + + Summon ARM Toolchain + https://github.com/esden/summon-arm-toolchain + + Yagarto + http://www.yagarto.de + + Others exist for various Linux distributions, MacPorts, etc. Any version + based on GCC 4.6.3 or later should work. IDEs ^^^^ diff --git a/nuttx/configs/ntosd-dm320/nettest/Make.defs b/nuttx/configs/ntosd-dm320/nettest/Make.defs index 8c5b7e93b..86dd3f815 100644 --- a/nuttx/configs/ntosd-dm320/nettest/Make.defs +++ b/nuttx/configs/ntosd-dm320/nettest/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_DM320_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_DM320_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ntosd-dm320/nsh/Make.defs b/nuttx/configs/ntosd-dm320/nsh/Make.defs index fa6149406..088dc7976 100644 --- a/nuttx/configs/ntosd-dm320/nsh/Make.defs +++ b/nuttx/configs/ntosd-dm320/nsh/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_DM320_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_DM320_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ntosd-dm320/ostest/Make.defs b/nuttx/configs/ntosd-dm320/ostest/Make.defs index 9b2ab9e5e..9312ae060 100644 --- a/nuttx/configs/ntosd-dm320/ostest/Make.defs +++ b/nuttx/configs/ntosd-dm320/ostest/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_DM320_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_DM320_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ntosd-dm320/poll/Make.defs b/nuttx/configs/ntosd-dm320/poll/Make.defs index 69c20da94..fb208f85c 100644 --- a/nuttx/configs/ntosd-dm320/poll/Make.defs +++ b/nuttx/configs/ntosd-dm320/poll/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_DM320_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_DM320_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ntosd-dm320/thttpd/Make.defs b/nuttx/configs/ntosd-dm320/thttpd/Make.defs index 252416f6b..cc62a030a 100644 --- a/nuttx/configs/ntosd-dm320/thttpd/Make.defs +++ b/nuttx/configs/ntosd-dm320/thttpd/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_DM320_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_DM320_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ntosd-dm320/udp/Make.defs b/nuttx/configs/ntosd-dm320/udp/Make.defs index 0cdb9f05d..1c8893289 100644 --- a/nuttx/configs/ntosd-dm320/udp/Make.defs +++ b/nuttx/configs/ntosd-dm320/udp/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_DM320_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_DM320_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/ntosd-dm320/uip/Make.defs b/nuttx/configs/ntosd-dm320/uip/Make.defs index 64bb4494b..6d2a223df 100644 --- a/nuttx/configs/ntosd-dm320/uip/Make.defs +++ b/nuttx/configs/ntosd-dm320/uip/Make.defs @@ -35,30 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_DM320_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_DM320_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_DM320_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/olimex-lpc2378/nsh/Make.defs b/nuttx/configs/olimex-lpc2378/nsh/Make.defs index 5fba7e214..a7fce92f4 100644 --- a/nuttx/configs/olimex-lpc2378/nsh/Make.defs +++ b/nuttx/configs/olimex-lpc2378/nsh/Make.defs @@ -40,30 +40,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_OLIMEX_LPC2378_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_OLIMEX_LPC2378_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_OLIMEX_LPC2378_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_OLIMEX_LPC2378_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/olimex-lpc2378/ostest/Make.defs b/nuttx/configs/olimex-lpc2378/ostest/Make.defs index 2c007cd39..2d8218bad 100644 --- a/nuttx/configs/olimex-lpc2378/ostest/Make.defs +++ b/nuttx/configs/olimex-lpc2378/ostest/Make.defs @@ -40,30 +40,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_OLIMEX_LPC2378_CODESOURCERYW),y) - # CodeSourcery under Windows - CROSSDEV = arm-none-eabi- - WINTOOL = y - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_OLIMEX_LPC2378_CODESOURCERYL),y) - # CodeSourcery under Linux - CROSSDEV = arm-none-eabi- - MAXOPTIMIZATION = -O2 -endif -ifeq ($(CONFIG_OLIMEX_LPC2378_DEVKITARM),y) - # devkitARM under Windows - CROSSDEV = arm-eabi- - WINTOOL = y -endif -ifeq ($(CONFIG_OLIMEX_LPC2378_BUILDROOT),y) - # NuttX buildroot under Linux or Cygwin - CROSSDEV = arm-nuttx-elf- - MAXOPTIMIZATION = -Os -endif +include ${TOPDIR}/arch/arm/src/arm/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/stm3220g-eval/README.txt b/nuttx/configs/stm3220g-eval/README.txt index 1e3388e70..8695dbb89 100644 --- a/nuttx/configs/stm3220g-eval/README.txt +++ b/nuttx/configs/stm3220g-eval/README.txt @@ -26,7 +26,7 @@ Contents Development Environment ======================= - Either Linux or Cygwin on Windows can be used for the development environment. + Linux, OS X or Cygwin on Windows can be used for the development environment. The source has been built only using the GNU toolchain (see below). Other toolchains will likely cause problems. Testing was performed using the Cygwin environment because the Raisonance R-Link emulatator and some RIDE7 development tools @@ -43,8 +43,9 @@ GNU Toolchain Options 1. The CodeSourcery GNU toolchain, 2. The Atollic Toolchain, 3. The devkitARM GNU toolchain, - 4. Raisonance GNU toolchain, or - 5. The NuttX buildroot Toolchain (see below). + 4. Raisonance GNU toolchain, + 5. The NuttX buildroot Toolchain (see below), or + 6. Any generic arm-none-eabi GNU toolchain. Most testing has been conducted using the CodeSourcery toolchain for Windows and that is the default toolchain in most configurations. To use the Atollic @@ -59,10 +60,16 @@ GNU Toolchain Options CONFIG_STM32_DEVKITARM=y : devkitARM under Windows CONFIG_STM32_RAISONANCE=y : Raisonance RIDE7 under Windows CONFIG_STM32_BUILDROOT=y : NuttX buildroot under Linux or Cygwin (default) + CONFIG_ARMV7M_TOOLCHAIN_GNU_EABI : Generic arm-none-eabi toolchain If you change the default toolchain, then you may also have to modify the PATH in the setenv.h file if your make cannot find the tools. + The toolchain may also be set using the mconf utility (make menuconfig) or by + passing CONFIG_ARMV7M_TOOLCHAIN=<toolchain> to make, where <toolchain> is one + of CODESOURCERYW, CODESOURCERYL, ATOLLOC, DEVKITARM, RAISONANCE, BUILDROOT or + GNU_EABI as described above. + NOTE: the CodeSourcery (for Windows), Atollic, devkitARM, and Raisonance toolchains are Windows native toolchains. The CodeSourcey (for Linux) and NuttX buildroot toolchains are Cygwin and/or Linux native toolchains. There are several limitations @@ -133,6 +140,26 @@ GNU Toolchain Options the paths to Cygwin's /bin and /usr/bin directories appear BEFORE the devkitARM path or will get the wrong version of make. + Generic arm-none-eabi GNU Toolchain + ----------------------------------- + There are a number of toolchain projects providing support for the Cortex-M + class processors, including: + + GCC ARM Embedded + https://launchpad.net/gcc-arm-embedded + + Thumb2 Newlib Toolchain + https://github.com/EliasOenal/TNT + + Summon ARM Toolchain + https://github.com/esden/summon-arm-toolchain + + Yagarto + http://www.yagarto.de + + Others exist for various Linux distributions, MacPorts, etc. Any version + based on GCC 4.6.3 or later should work. + IDEs ==== diff --git a/nuttx/configs/teensy/README.txt b/nuttx/configs/teensy/README.txt index 30349e1ff..951f4a87e 100644 --- a/nuttx/configs/teensy/README.txt +++ b/nuttx/configs/teensy/README.txt @@ -201,7 +201,13 @@ Toolchains There are several toolchain options. However, testing has been performed using *only* the NuttX buildroot toolchain described below. Therefore, -the NuttX buildroot toolchain is the recommended choice: +the NuttX buildroot toolchain is the recommended choice. + +The toolchain may be selected using the mconf tool (via 'make menuconfig'), +by editing the existing configuration file (defconfig), or by overriding +the toolchain on the make commandline with CONFIG_AVR_TOOLCHAIN=<toolchain>. + +The valid values for <toolchain> are BUILDROOT, CROSSPACK, LINUXGCC and WINAVR. Buildroot: @@ -239,6 +245,14 @@ Linux: After configuring NuttX, make sure that CONFIG_AVR_LINUXGCC=y is set in your .config file. +Mac OS X: + + For Mac OS X, the CrossPack for AVR toolchain is available from: + + http://www.obdev.at/products/crosspack/index.html + + This toolchain is functionally equivalent to the Linux GCC toolchain. + Windows Native Toolchains ^^^^^^^^^^^^^^^^^^^^^^^^^ diff --git a/nuttx/configs/teensy/hello/Make.defs b/nuttx/configs/teensy/hello/Make.defs index 9c7cb8268..d09279a8d 100644 --- a/nuttx/configs/teensy/hello/Make.defs +++ b/nuttx/configs/teensy/hello/Make.defs @@ -35,33 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_AVR_WINAVR),y) - # WinAVR toolchain under Windows/Cygwin - CROSSDEV = avr- - WINTOOL = y - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_LINUXGCC),y) - # GCC toolchain under Linux - CROSSDEV = avr- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_BUILDROOT),y) - # NuttX buildroot GCC toolchain under Linux or Cygwin - CROSSDEV = avr-nuttx-elf- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif +include ${TOPDIR}/arch/avr/src/avr/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/teensy/nsh/Make.defs b/nuttx/configs/teensy/nsh/Make.defs index 63c9db51f..e65958cfe 100644 --- a/nuttx/configs/teensy/nsh/Make.defs +++ b/nuttx/configs/teensy/nsh/Make.defs @@ -35,33 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_AVR_WINAVR),y) - # WinAVR toolchain under Windows/Cygwin - CROSSDEV = avr- - WINTOOL = y - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_LINUXGCC),y) - # GCC toolchain under Linux - CROSSDEV = avr- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_BUILDROOT),y) - # NuttX buildroot GCC toolchain under Linux or Cygwin - CROSSDEV = avr-nuttx-elf- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif +include ${TOPDIR}/arch/avr/src/avr/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains diff --git a/nuttx/configs/teensy/usbstorage/Make.defs b/nuttx/configs/teensy/usbstorage/Make.defs index 6474a772e..ba3878521 100644 --- a/nuttx/configs/teensy/usbstorage/Make.defs +++ b/nuttx/configs/teensy/usbstorage/Make.defs @@ -35,33 +35,7 @@ include ${TOPDIR}/.config include ${TOPDIR}/tools/Config.mk - -# Setup for the selected toolchain - -ifeq ($(CONFIG_AVR_WINAVR),y) - # WinAVR toolchain under Windows/Cygwin - CROSSDEV = avr- - WINTOOL = y - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_LINUXGCC),y) - # GCC toolchain under Linux - CROSSDEV = avr- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif - -ifeq ($(CONFIG_AVR_BUILDROOT),y) - # NuttX buildroot GCC toolchain under Linux or Cygwin - CROSSDEV = avr-nuttx-elf- - MAXOPTIMIZATION = -O2 - ARCHCPUFLAGS = -mmcu=at90usb1286 - LDFLAGS += -nostartfiles -nodefaultlibs -endif +include ${TOPDIR}/arch/avr/src/avr/Toolchain.defs ifeq ($(WINTOOL),y) # Windows-native toolchains |