Add common Toolchain.defs for AVR/AVR32; Add Toolchain.defs for ARM; Add more toolchain options (from Mike); incdir.sh and .bat now take -s option

git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@5384 42af7a65-404d-4744-a932-0658087f49c3
This commit is contained in:
patacongo 2012-11-23 14:13:57 +00:00
parent 34458c1112
commit 2ecbe6d360
30 changed files with 196 additions and 524 deletions

View File

@ -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
^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -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

View File

@ -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
^^^^

View File

@ -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

View File

@ -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
^^^^

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
^^^^

View File

@ -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

View File

@ -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
^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -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

View File

@ -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
-----------------------

View File

@ -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
^^^^

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
====

View File

@ -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
^^^^^^^^^^^^^^^^^^^^^^^^^

View File

@ -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

View File

@ -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

View File

@ -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