diff options
author | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-02-23 18:42:36 +0000 |
---|---|---|
committer | patacongo <patacongo@7fd9a85b-ad96-42d3-883c-3090e2eb8679> | 2012-02-23 18:42:36 +0000 |
commit | dbd61e6f83b466b6c4a1d718726a9fa513f44cf7 (patch) | |
tree | cfcaab6f88472fb43bbfe878b843f41eb8fe6608 /nuttx/configs/stm32f4discovery | |
parent | 112e4f55ba9a40e79e02fcee0096ab71c3cc8917 (diff) | |
download | px4-firmware-dbd61e6f83b466b6c4a1d718726a9fa513f44cf7.tar.gz px4-firmware-dbd61e6f83b466b6c4a1d718726a9fa513f44cf7.tar.bz2 px4-firmware-dbd61e6f83b466b6c4a1d718726a9fa513f44cf7.zip |
Add support for the Atollic 'Lite' toolchain in all STM32 F4 configurations
git-svn-id: https://nuttx.svn.sourceforge.net/svnroot/nuttx/trunk@4417 7fd9a85b-ad96-42d3-883c-3090e2eb8679
Diffstat (limited to 'nuttx/configs/stm32f4discovery')
-rwxr-xr-x | nuttx/configs/stm32f4discovery/README.txt | 36 | ||||
-rw-r--r-- | nuttx/configs/stm32f4discovery/nsh/Make.defs | 18 | ||||
-rwxr-xr-x | nuttx/configs/stm32f4discovery/nsh/defconfig | 1 | ||||
-rwxr-xr-x | nuttx/configs/stm32f4discovery/nsh/setenv.sh | 7 | ||||
-rw-r--r-- | nuttx/configs/stm32f4discovery/ostest/Make.defs | 18 | ||||
-rwxr-xr-x | nuttx/configs/stm32f4discovery/ostest/defconfig | 1 | ||||
-rwxr-xr-x | nuttx/configs/stm32f4discovery/ostest/setenv.sh | 7 |
7 files changed, 73 insertions, 15 deletions
diff --git a/nuttx/configs/stm32f4discovery/README.txt b/nuttx/configs/stm32f4discovery/README.txt index 31b950bd6..f6aeb3b89 100755 --- a/nuttx/configs/stm32f4discovery/README.txt +++ b/nuttx/configs/stm32f4discovery/README.txt @@ -35,17 +35,19 @@ GNU Toolchain Options toolchain options. 1. The CodeSourcery GNU toolchain, - 2. The devkitARM GNU toolchain, - 3. Raisonance GNU toolchain, or - 4. The NuttX buildroot Toolchain (see below). + 2. The Atollic Toolchain, + 3. The devkitARM GNU toolchain, + 4. Raisonance GNU toolchain, or + 5. The NuttX buildroot Toolchain (see below). All testing has been conducted using the CodeSourcery toolchain for Windows. To use - the devkitARM, Raisonance GNU, or NuttX buildroot toolchain, you simply need to + the Atollic, devkitARM, Raisonance GNU, or NuttX buildroot toolchain, you simply need to add one of the following configuration options to your .config (or defconfig) file: CONFIG_STM32_CODESOURCERYW=y : CodeSourcery under Windows CONFIG_STM32_CODESOURCERYL=y : CodeSourcery under Linux + CONFIG_STM32_ATOLLIC=y : Atollic toolchain under Windows 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) @@ -53,7 +55,7 @@ GNU Toolchain Options 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. - NOTE: the CodeSourcery (for Windows), devkitARM, and Raisonance toolchains are + 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 to using a Windows based toolchain in a Cygwin environment. The three biggest are: @@ -88,11 +90,31 @@ GNU Toolchain Options If you have problems with the dependency build (for example, if you are not building on C:), then you may need to modify tools/mkdeps.sh - NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization + NOTE 1: The CodeSourcery toolchain (2009q1) does not work with default optimization level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with -Os. - NOTE 2: The devkitARM toolchain includes a version of MSYS make. Make sure that + NOTE 2: The free, "Lite" version of the Atollic toolchain does not support C++ + nor does it support ar, nm, objdump, or objdcopy. If you use the Atollic "Lite" + toolchain, you will have to set: + + CONFIG_HAVE_CXX=n + + In order to compile successfully. Otherwise, you will get errors like: + + "C++ Compiler only available in TrueSTUDIO Professional" + + The make may then fail in some of the post link processing because of some of + the other missing tools. The Make.defs file replaces the ar and nm with + the default system x86 tool versions and these seem to work okay. Disable all + of the following to avoid using objcopy: + + CONFIG_RRLOAD_BINARY=n + CONFIG_INTELHEX_BINARY=n + CONFIG_MOTOROLA_SREC=n + CONFIG_RAW_BINARY=n + + NOTE 3: 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. diff --git a/nuttx/configs/stm32f4discovery/nsh/Make.defs b/nuttx/configs/stm32f4discovery/nsh/Make.defs index 3a5bf3aa1..02dec9abf 100644 --- a/nuttx/configs/stm32f4discovery/nsh/Make.defs +++ b/nuttx/configs/stm32f4discovery/nsh/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/stm32f4discovery/nsh/Make.defs # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt <gnutt@nuttx.org> # # Redistribution and use in source and binary forms, with or without @@ -40,30 +40,42 @@ include ${TOPDIR}/.config ifeq ($(CONFIG_STM32_CODESOURCERYW),y) # CodeSourcery under Windows CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- WINTOOL = y ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif ifeq ($(CONFIG_STM32_CODESOURCERYL),y) # CodeSourcery under Linux CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft MAXOPTIMIZATION = -O2 endif +ifeq ($(CONFIG_STM32_ATOLLIC),y) + # Atollic toolchain under Windows + CROSSDEV = arm-atollic-eabi- + ARCROSSDEV = + WINTOOL = y + ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft +endif ifeq ($(CONFIG_STM32_DEVKITARM),y) # devkitARM under Windows CROSSDEV = arm-eabi- + ARCROSSDEV = arm-eabi- WINTOOL = y ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif ifeq ($(CONFIG_STM32_RAISONANCE),y) # Raisonance RIDE7 under Windows CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- WINTOOL = y ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif ifeq ($(CONFIG_STM32_BUILDROOT),y) # NuttX buildroot under Linux or Cygwin CROSSDEV = arm-elf- + ARCROSSDEV = arm-elf- ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft MAXOPTIMIZATION = -Os endif @@ -91,8 +103,8 @@ CC = $(CROSSDEV)gcc CXX = $(CROSSDEV)g++ CPP = $(CROSSDEV)gcc -E LD = $(CROSSDEV)ld -AR = $(CROSSDEV)ar rcs -NM = $(CROSSDEV)nm +AR = $(ARCROSSDEV)ar rcs +NM = $(ARCROSSDEV)nm OBJCOPY = $(CROSSDEV)objcopy OBJDUMP = $(CROSSDEV)objdump diff --git a/nuttx/configs/stm32f4discovery/nsh/defconfig b/nuttx/configs/stm32f4discovery/nsh/defconfig index ea5400882..051de3862 100755 --- a/nuttx/configs/stm32f4discovery/nsh/defconfig +++ b/nuttx/configs/stm32f4discovery/nsh/defconfig @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=n # CONFIG_STM32_CODESOURCERYW=n CONFIG_STM32_CODESOURCERYL=y +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/nuttx/configs/stm32f4discovery/nsh/setenv.sh b/nuttx/configs/stm32f4discovery/nsh/setenv.sh index 15539bf68..22fbebab2 100755 --- a/nuttx/configs/stm32f4discovery/nsh/setenv.sh +++ b/nuttx/configs/stm32f4discovery/nsh/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/stm32f4discovery/nsh/setenv.sh # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt <gnutt@nuttx.org> # # Redistribution and use in source and binary forms, with or without @@ -57,6 +57,11 @@ fi # the CodeSourcery toolchain in any other location export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +# This the Cygwin path to the location where I installed the Atollic +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin" + # This the Cygwin path to the location where I build the buildroot # toolchain. #export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin" diff --git a/nuttx/configs/stm32f4discovery/ostest/Make.defs b/nuttx/configs/stm32f4discovery/ostest/Make.defs index 5a49387c6..ea129c142 100644 --- a/nuttx/configs/stm32f4discovery/ostest/Make.defs +++ b/nuttx/configs/stm32f4discovery/ostest/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/stm32f4discovery/ostest/Make.defs # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt <gnutt@nuttx.org> # # Redistribution and use in source and binary forms, with or without @@ -40,30 +40,42 @@ include ${TOPDIR}/.config ifeq ($(CONFIG_STM32_CODESOURCERYW),y) # CodeSourcery under Windows CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- WINTOOL = y ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif ifeq ($(CONFIG_STM32_CODESOURCERYL),y) # CodeSourcery under Linux CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft MAXOPTIMIZATION = -O2 endif +ifeq ($(CONFIG_STM32_ATOLLIC),y) + # Atollic toolchain under Windows + CROSSDEV = arm-atollic-eabi- + ARCROSSDEV = + WINTOOL = y + ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft +endif ifeq ($(CONFIG_STM32_DEVKITARM),y) # devkitARM under Windows CROSSDEV = arm-eabi- + ARCROSSDEV = arm-eabi- WINTOOL = y ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif ifeq ($(CONFIG_STM32_RAISONANCE),y) # Raisonance RIDE7 under Windows CROSSDEV = arm-none-eabi- + ARCROSSDEV = arm-none-eabi- WINTOOL = y ARCHCPUFLAGS = -mcpu=cortex-m3 -mthumb -mfloat-abi=soft endif ifeq ($(CONFIG_STM32_BUILDROOT),y) # NuttX buildroot under Linux or Cygwin CROSSDEV = arm-elf- + ARCROSSDEV = arm-elf- ARCHCPUFLAGS = -mtune=cortex-m3 -march=armv7-m -mfloat-abi=soft MAXOPTIMIZATION = -Os endif @@ -91,8 +103,8 @@ CC = $(CROSSDEV)gcc CXX = $(CROSSDEV)g++ CPP = $(CROSSDEV)gcc -E LD = $(CROSSDEV)ld -AR = $(CROSSDEV)ar rcs -NM = $(CROSSDEV)nm +AR = $(ARCROSSDEV)ar rcs +NM = $(ARCROSSDEV)nm OBJCOPY = $(CROSSDEV)objcopy OBJDUMP = $(CROSSDEV)objdump diff --git a/nuttx/configs/stm32f4discovery/ostest/defconfig b/nuttx/configs/stm32f4discovery/ostest/defconfig index 60169385e..166d72338 100755 --- a/nuttx/configs/stm32f4discovery/ostest/defconfig +++ b/nuttx/configs/stm32f4discovery/ostest/defconfig @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=n # CONFIG_STM32_CODESOURCERYW=n CONFIG_STM32_CODESOURCERYL=y +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/nuttx/configs/stm32f4discovery/ostest/setenv.sh b/nuttx/configs/stm32f4discovery/ostest/setenv.sh index 58c639e16..b8b443c88 100755 --- a/nuttx/configs/stm32f4discovery/ostest/setenv.sh +++ b/nuttx/configs/stm32f4discovery/ostest/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/stm32f4discovery/ostest/setenv.sh # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt <gnutt@nuttx.org> # # Redistribution and use in source and binary forms, with or without @@ -57,6 +57,11 @@ fi # the CodeSourcery toolchain in any other location export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/CodeSourcery/Sourcery G++ Lite/bin" +# This the Cygwin path to the location where I installed the Atollic +# toolchain under windows. You will also have to edit this if you install +# the CodeSourcery toolchain in any other location +#export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/Atollic/TrueSTUDIO for STMicroelectronics STM32 Lite 2.3.0/ARMTools/bin" + # This the Cygwin path to the location where I build the buildroot # toolchain. #export TOOLCHAIN_BIN="${WD}/../misc/buildroot/build_arm_nofpu/staging_dir/bin" |