diff --git a/configs/amber/README.txt b/configs/amber/README.txt index 63fa5d41f36..56e31ba7f42 100644 --- a/configs/amber/README.txt +++ b/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=. + +The valid values for 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/configs/amber/hello/Make.defs b/configs/amber/hello/Make.defs index 15c31f1923a..e7f998dc758 100644 --- a/configs/amber/hello/Make.defs +++ b/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/configs/avr32dev1/README.txt b/configs/avr32dev1/README.txt index 68d01922742..37e15dc9b5f 100644 --- a/configs/avr32dev1/README.txt +++ b/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- and + the bin subdirectory must be added to your path before compiling. + IDEs ^^^^ diff --git a/configs/avr32dev1/nsh/Make.defs b/configs/avr32dev1/nsh/Make.defs index aa84884d065..bccb3506919 100644 --- a/configs/avr32dev1/nsh/Make.defs +++ b/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/configs/ea3131/README.txt b/configs/ea3131/README.txt index 2912bf31876..fcfc0792f33 100644 --- a/configs/ea3131/README.txt +++ b/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= to make, where 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/configs/ea3131/nsh/Make.defs b/configs/ea3131/nsh/Make.defs index a061eb22cf8..1bfd6f4d537 100644 --- a/configs/ea3131/nsh/Make.defs +++ b/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/configs/ea3131/ostest/Make.defs b/configs/ea3131/ostest/Make.defs index ba750e2122f..9c8780a4aa8 100644 --- a/configs/ea3131/ostest/Make.defs +++ b/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/configs/ea3131/pgnsh/Make.defs b/configs/ea3131/pgnsh/Make.defs index c142319dea0..f71a0920e32 100644 --- a/configs/ea3131/pgnsh/Make.defs +++ b/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/configs/ea3131/usbserial/Make.defs b/configs/ea3131/usbserial/Make.defs index ef64e261577..1b1eb45d5ae 100644 --- a/configs/ea3131/usbserial/Make.defs +++ b/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/configs/ea3131/usbstorage/Make.defs b/configs/ea3131/usbstorage/Make.defs index 7393606158d..7155ccf5c57 100644 --- a/configs/ea3131/usbstorage/Make.defs +++ b/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/configs/ea3152/README.txt b/configs/ea3152/README.txt index 7aa57e3ae0e..da57945bde7 100644 --- a/configs/ea3152/README.txt +++ b/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= to make, where 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/configs/ea3152/ostest/Make.defs b/configs/ea3152/ostest/Make.defs index f69eb5e957e..45168938a88 100644 --- a/configs/ea3152/ostest/Make.defs +++ b/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/configs/micropendous3/README.txt b/configs/micropendous3/README.txt index 583f1d8d8ae..1b0f2c8ce13 100644 --- a/configs/micropendous3/README.txt +++ b/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=. + +The valid values for 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/configs/micropendous3/hello/Make.defs b/configs/micropendous3/hello/Make.defs index 69073bb438d..a40098fff69 100644 --- a/configs/micropendous3/hello/Make.defs +++ b/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/configs/mirtoo/README.txt b/configs/mirtoo/README.txt index 488884ba582..89c137a03c5 100644 --- a/configs/mirtoo/README.txt +++ b/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= to make, where + 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/configs/ntosd-dm320/README.txt b/configs/ntosd-dm320/README.txt index 1a6a38e7ca3..d85e53525f5 100644 --- a/configs/ntosd-dm320/README.txt +++ b/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= to make, where 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/configs/ntosd-dm320/nettest/Make.defs b/configs/ntosd-dm320/nettest/Make.defs index 8c5b7e93b95..86dd3f815b7 100644 --- a/configs/ntosd-dm320/nettest/Make.defs +++ b/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/configs/ntosd-dm320/nsh/Make.defs b/configs/ntosd-dm320/nsh/Make.defs index fa61494062e..088dc79767f 100644 --- a/configs/ntosd-dm320/nsh/Make.defs +++ b/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/configs/ntosd-dm320/ostest/Make.defs b/configs/ntosd-dm320/ostest/Make.defs index 9b2ab9e5e22..9312ae0600f 100644 --- a/configs/ntosd-dm320/ostest/Make.defs +++ b/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/configs/ntosd-dm320/poll/Make.defs b/configs/ntosd-dm320/poll/Make.defs index 69c20da9443..fb208f85c48 100644 --- a/configs/ntosd-dm320/poll/Make.defs +++ b/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/configs/ntosd-dm320/thttpd/Make.defs b/configs/ntosd-dm320/thttpd/Make.defs index 252416f6bf5..cc62a030a98 100644 --- a/configs/ntosd-dm320/thttpd/Make.defs +++ b/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/configs/ntosd-dm320/udp/Make.defs b/configs/ntosd-dm320/udp/Make.defs index 0cdb9f05dc3..1c8893289b0 100644 --- a/configs/ntosd-dm320/udp/Make.defs +++ b/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/configs/ntosd-dm320/uip/Make.defs b/configs/ntosd-dm320/uip/Make.defs index 64bb4494b45..6d2a223df53 100644 --- a/configs/ntosd-dm320/uip/Make.defs +++ b/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/configs/olimex-lpc2378/nsh/Make.defs b/configs/olimex-lpc2378/nsh/Make.defs index 5fba7e21425..a7fce92f42f 100644 --- a/configs/olimex-lpc2378/nsh/Make.defs +++ b/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/configs/olimex-lpc2378/ostest/Make.defs b/configs/olimex-lpc2378/ostest/Make.defs index 2c007cd3900..2d8218bad19 100644 --- a/configs/olimex-lpc2378/ostest/Make.defs +++ b/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/configs/stm3220g-eval/README.txt b/configs/stm3220g-eval/README.txt index 1e3388e70d2..8695dbb89c1 100644 --- a/configs/stm3220g-eval/README.txt +++ b/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= to make, where 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/configs/teensy/README.txt b/configs/teensy/README.txt index 30349e1ff06..951f4a87ec2 100644 --- a/configs/teensy/README.txt +++ b/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=. + +The valid values for 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/configs/teensy/hello/Make.defs b/configs/teensy/hello/Make.defs index 9c7cb8268fe..d09279a8db7 100644 --- a/configs/teensy/hello/Make.defs +++ b/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/configs/teensy/nsh/Make.defs b/configs/teensy/nsh/Make.defs index 63c9db51f25..e65958cfe99 100644 --- a/configs/teensy/nsh/Make.defs +++ b/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/configs/teensy/usbstorage/Make.defs b/configs/teensy/usbstorage/Make.defs index 6474a772e16..ba3878521ff 100644 --- a/configs/teensy/usbstorage/Make.defs +++ b/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