diff --git a/ChangeLog b/ChangeLog index df9646b47b..dde8764599 100644 --- a/ChangeLog +++ b/ChangeLog @@ -2493,3 +2493,5 @@ was ignored because its sequence number looked wrong. Fix was, obviously, to only increment the recevied sequence number if the TCP data was accepted. + * configs/stm3240g-eval, configs/stm32f40discovery, and arch/*/src/Makefile: + Add changes to support building with the Atollic "Lite" toolchain. diff --git a/arch/arm/src/Makefile b/arch/arm/src/Makefile index 3868f6c9a0..790880c86a 100644 --- a/arch/arm/src/Makefile +++ b/arch/arm/src/Makefile @@ -119,11 +119,6 @@ endif @$(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ sort > $(TOPDIR)/System.map - @export vflashstart=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _vflashstart | cut -d' ' -f1`; \ - if [ ! -z "$$vflashstart" ]; then \ - $(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(NUTTX)$(EXEEXT) $(NUTTX).flashimage; \ - mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT); \ - fi # This is part of the top-level export target diff --git a/arch/arm/src/c5471/c5471_irq.c b/arch/arm/src/c5471/c5471_irq.c index fbeb2e7206..49930f60fc 100644 --- a/arch/arm/src/c5471/c5471_irq.c +++ b/arch/arm/src/c5471/c5471_irq.c @@ -1,8 +1,8 @@ /**************************************************************************** * arch/arm/src/c5471/c5471_irq.c * - * Copyright (C) 2007, 2009, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Copyright (C) 2007, 2009, 2011-2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -65,17 +65,15 @@ volatile uint32_t *current_regs; * Private Data ****************************************************************************/ -/* The value of _vflashstart is defined in ld.script. It - * could be hard-coded because we know that correct IRAM - * area is 0xffc00000. +/* The value of _svectors is defined in ld.script. It could be hard-coded + * because we know that correct IRAM area is 0xffc00000. */ extern int _svectors; /* Type does not matter */ -/* The C5471 has FLASH at the low end of memory. The - * rrload bootloaer will catch all interrupts and re-vector - * them to vectors stored in IRAM. The following table is - * used to initialize those vectors. +/* The C5471 has FLASH at the low end of memory. The rrload bootloaer will + * catch all interrupts and re-vector them to vectors stored in IRAM. The + * following table is used to initialize those vectors. */ static up_vector_t g_vectorinittab[] = diff --git a/arch/arm/src/dm320/dm320_irq.c b/arch/arm/src/dm320/dm320_irq.c index eb8201bb44..2fb41475d7 100644 --- a/arch/arm/src/dm320/dm320_irq.c +++ b/arch/arm/src/dm320/dm320_irq.c @@ -1,8 +1,8 @@ /************************************************************************ * arch/arm/src/dm320/dm320_irq.c * - * Copyright (C) 2007, 2009 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Copyright (C) 2007, 2009, 2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -63,9 +63,8 @@ volatile uint32_t *current_regs; * Private Data ************************************************************************/ -/* The value of _vflashstart is defined in ld.script. It - * could be hard-coded because we know that correct IRAM - * area is 0xffc00000. +/* The value of _svectors is defined in ld.script. It could be hard- + * coded because we know that correct IRAM area is 0xffc00000. */ extern int _svectors; /* Type does not matter */ diff --git a/arch/avr/src/Makefile b/arch/avr/src/Makefile index 7b297f1c1e..5584ca5afd 100644 --- a/arch/avr/src/Makefile +++ b/arch/avr/src/Makefile @@ -119,11 +119,6 @@ nuttx: $(HEAD_OBJ) board/libboard$(LIBEXT) @$(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ sort > $(TOPDIR)/System.map - @export vflashstart=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _vflashstart | cut -d' ' -f1`; \ - if [ ! -z "$$vflashstart" ]; then \ - $(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(NUTTX)$(EXEEXT) $(NUTTX).flashimage; \ - mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT); \ - fi # This is part of the top-level export target diff --git a/arch/hc/src/Makefile b/arch/hc/src/Makefile index 101f24e42c..9e5be386e5 100755 --- a/arch/hc/src/Makefile +++ b/arch/hc/src/Makefile @@ -115,11 +115,6 @@ endif @$(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ sort > $(TOPDIR)/System.map - @export vflashstart=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _vflashstart | cut -d' ' -f1`; \ - if [ ! -z "$$vflashstart" ]; then \ - $(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(NUTTX)$(EXEEXT) $(NUTTX).flashimage; \ - mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT); \ - fi # This is part of the top-level export target diff --git a/arch/mips/src/Makefile b/arch/mips/src/Makefile index b578314415..57da4844b5 100644 --- a/arch/mips/src/Makefile +++ b/arch/mips/src/Makefile @@ -108,11 +108,6 @@ nuttx: $(HEAD_OBJ) board/libboard$(LIBEXT) @$(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ sort > $(TOPDIR)/System.map - @export vflashstart=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _vflashstart | cut -d' ' -f1`; \ - if [ ! -z "$$vflashstart" ]; then \ - $(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(NUTTX)$(EXEEXT) $(NUTTX).flashimage; \ - mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT); \ - fi # This is part of the top-level export target diff --git a/arch/sh/src/Makefile b/arch/sh/src/Makefile index a9683fe08f..3423b63f49 100644 --- a/arch/sh/src/Makefile +++ b/arch/sh/src/Makefile @@ -93,11 +93,6 @@ endif @$(NM) $(TOPDIR)/$@ | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ sort > $(TOPDIR)/System.map - @export vflashstart=`$(OBJDUMP) --all-headers $(TOPDIR)/$@ | grep _vflashstart | cut -d' ' -f1`; \ - if [ ! -z "$$vflashstart" ]; then \ - $(OBJCOPY) --adjust-section-vma=.vector=0x$$vflashstart $(TOPDIR)/$@ $(TOPDIR)/$@.flashimage; \ - mv $(TOPDIR)/$@.flashimage $(TOPDIR)/$@; \ - fi # This is part of the top-level export target diff --git a/arch/x86/src/Makefile b/arch/x86/src/Makefile index e91df0c858..8b7032a095 100644 --- a/arch/x86/src/Makefile +++ b/arch/x86/src/Makefile @@ -121,11 +121,6 @@ endif @$(NM) $(NUTTX)$(EXEEXT) | \ grep -v '\(compiled\)\|\(\$(OBJEXT)$$\)\|\( [aUw] \)\|\(\.\.ng$$\)\|\(LASH[RL]DI\)' | \ sort > $(TOPDIR)/System.map - @export vflashstart=`$(OBJDUMP) --all-headers $(NUTTX)$(EXEEXT) | grep _vflashstart | cut -d' ' -f1`; \ - if [ ! -z "$$vflashstart" ]; then \ - $(OBJCOPY) $(OBJCOPYARGS) --adjust-section-vma=.vector=0x$$vflashstart $(NUTTX)$(EXEEXT) $(NUTTX).flashimage; \ - mv $(NUTTX).flashimage $(NUTTX)$(EXEEXT); \ - fi # This is part of the top-level export target diff --git a/configs/c5471evm/httpd/ld.script b/configs/c5471evm/httpd/ld.script index 0aadf36d37..89397f3ad1 100644 --- a/configs/c5471evm/httpd/ld.script +++ b/configs/c5471evm/httpd/ld.script @@ -1,8 +1,8 @@ /************************************************************ * ld.script * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Copyright (C) 2007, 2011-2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,7 +39,7 @@ SECTIONS { /* Interrupt vector trampoline and command line parameters * are provided in IRAM by the rrload bootloader. Vectors will be - * copied into _svectors from _vflashstart. + * copied into _svectors. */ . = 0xffc00000; diff --git a/configs/c5471evm/nettest/ld.script b/configs/c5471evm/nettest/ld.script index 0aadf36d37..89397f3ad1 100644 --- a/configs/c5471evm/nettest/ld.script +++ b/configs/c5471evm/nettest/ld.script @@ -1,8 +1,8 @@ /************************************************************ * ld.script * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Copyright (C) 2007, 2011-2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,7 +39,7 @@ SECTIONS { /* Interrupt vector trampoline and command line parameters * are provided in IRAM by the rrload bootloader. Vectors will be - * copied into _svectors from _vflashstart. + * copied into _svectors. */ . = 0xffc00000; diff --git a/configs/c5471evm/nsh/ld.script b/configs/c5471evm/nsh/ld.script index 0aadf36d37..89397f3ad1 100644 --- a/configs/c5471evm/nsh/ld.script +++ b/configs/c5471evm/nsh/ld.script @@ -1,8 +1,8 @@ /************************************************************ * ld.script * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Copyright (C) 2007, 2011-2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,7 +39,7 @@ SECTIONS { /* Interrupt vector trampoline and command line parameters * are provided in IRAM by the rrload bootloader. Vectors will be - * copied into _svectors from _vflashstart. + * copied into _svectors. */ . = 0xffc00000; diff --git a/configs/c5471evm/ostest/ld.script b/configs/c5471evm/ostest/ld.script index 0aadf36d37..89397f3ad1 100644 --- a/configs/c5471evm/ostest/ld.script +++ b/configs/c5471evm/ostest/ld.script @@ -1,8 +1,8 @@ /************************************************************ * ld.script * - * Copyright (C) 2007, 2011 Gregory Nutt. All rights reserved. - * Author: Gregory Nutt + * Copyright (C) 2007, 2011-2012 Gregory Nutt. All rights reserved. + * Author: Gregory Nutt * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions @@ -39,7 +39,7 @@ SECTIONS { /* Interrupt vector trampoline and command line parameters * are provided in IRAM by the rrload bootloader. Vectors will be - * copied into _svectors from _vflashstart. + * copied into _svectors. */ . = 0xffc00000; diff --git a/configs/stm3240g-eval/README.txt b/configs/stm3240g-eval/README.txt index af6e71dadb..3e47d9db87 100755 --- a/configs/stm3240g-eval/README.txt +++ b/configs/stm3240g-eval/README.txt @@ -36,17 +36,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) @@ -54,7 +56,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: @@ -89,11 +91,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/configs/stm3240g-eval/dhcpd/Make.defs b/configs/stm3240g-eval/dhcpd/Make.defs index db2007570c..c78a5a0475 100644 --- a/configs/stm3240g-eval/dhcpd/Make.defs +++ b/configs/stm3240g-eval/dhcpd/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/stm3240g-eval/dhcpd/Make.defs # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/dhcpd/defconfig b/configs/stm3240g-eval/dhcpd/defconfig index b11a2d90a5..5bbaf0482f 100644 --- a/configs/stm3240g-eval/dhcpd/defconfig +++ b/configs/stm3240g-eval/dhcpd/defconfig @@ -1,7 +1,7 @@ ############################################################################ # configs/stm3240g-eval/dhcpd/defconfig # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=n # CONFIG_STM32_CODESOURCERYW=y CONFIG_STM32_CODESOURCERYL=n +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/configs/stm3240g-eval/dhcpd/setenv.sh b/configs/stm3240g-eval/dhcpd/setenv.sh index 6b6f3102e1..e4312c3c24 100755 --- a/configs/stm3240g-eval/dhcpd/setenv.sh +++ b/configs/stm3240g-eval/dhcpd/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/stm3240g-eval/dhcpd/setenv.sh # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/nettest/Make.defs b/configs/stm3240g-eval/nettest/Make.defs index 3425f9e6a9..42cb36f647 100644 --- a/configs/stm3240g-eval/nettest/Make.defs +++ b/configs/stm3240g-eval/nettest/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/stm3240g-eval/nettest/Make.defs # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/nettest/defconfig b/configs/stm3240g-eval/nettest/defconfig index 2f7d199561..b690b503b1 100644 --- a/configs/stm3240g-eval/nettest/defconfig +++ b/configs/stm3240g-eval/nettest/defconfig @@ -1,7 +1,7 @@ ############################################################################ # configs/stm3240g-eval/nettest/defconfig # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=n # CONFIG_STM32_CODESOURCERYW=y CONFIG_STM32_CODESOURCERYL=n +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/configs/stm3240g-eval/nettest/setenv.sh b/configs/stm3240g-eval/nettest/setenv.sh index 9c87e1362d..4ce9ee88f6 100755 --- a/configs/stm3240g-eval/nettest/setenv.sh +++ b/configs/stm3240g-eval/nettest/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/stm3240g-eval/nettest/setenv.sh # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/nsh/Make.defs b/configs/stm3240g-eval/nsh/Make.defs index cd612aa3ed..ad84f40386 100644 --- a/configs/stm3240g-eval/nsh/Make.defs +++ b/configs/stm3240g-eval/nsh/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/stm3240g-eval/nsh/Make.defs # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/nsh/defconfig b/configs/stm3240g-eval/nsh/defconfig index d3f9ecfa35..75becc8392 100644 --- a/configs/stm3240g-eval/nsh/defconfig +++ b/configs/stm3240g-eval/nsh/defconfig @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=n # CONFIG_STM32_CODESOURCERYW=y CONFIG_STM32_CODESOURCERYL=n +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/configs/stm3240g-eval/nsh/setenv.sh b/configs/stm3240g-eval/nsh/setenv.sh index 265520997d..aacd280898 100755 --- a/configs/stm3240g-eval/nsh/setenv.sh +++ b/configs/stm3240g-eval/nsh/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/stm3240g-eval/nsh/setenv.sh # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/nsh2/Make.defs b/configs/stm3240g-eval/nsh2/Make.defs index 3d463c0b69..10a4346e13 100644 --- a/configs/stm3240g-eval/nsh2/Make.defs +++ b/configs/stm3240g-eval/nsh2/Make.defs @@ -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/configs/stm3240g-eval/nsh2/defconfig b/configs/stm3240g-eval/nsh2/defconfig index 05f41123c8..39abd9bef8 100644 --- a/configs/stm3240g-eval/nsh2/defconfig +++ b/configs/stm3240g-eval/nsh2/defconfig @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=y # CONFIG_STM32_CODESOURCERYW=y CONFIG_STM32_CODESOURCERYL=n +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/configs/stm3240g-eval/nsh2/setenv.sh b/configs/stm3240g-eval/nsh2/setenv.sh index 53346f52e4..380b35933c 100755 --- a/configs/stm3240g-eval/nsh2/setenv.sh +++ b/configs/stm3240g-eval/nsh2/setenv.sh @@ -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/configs/stm3240g-eval/ostest/Make.defs b/configs/stm3240g-eval/ostest/Make.defs index 7e09b5502b..f49a8c9aa5 100644 --- a/configs/stm3240g-eval/ostest/Make.defs +++ b/configs/stm3240g-eval/ostest/Make.defs @@ -1,7 +1,7 @@ ############################################################################ # configs/stm3240g-eval/ostest/Make.defs # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/ostest/defconfig b/configs/stm3240g-eval/ostest/defconfig index 78a23b09aa..268af2367c 100644 --- a/configs/stm3240g-eval/ostest/defconfig +++ b/configs/stm3240g-eval/ostest/defconfig @@ -1,7 +1,7 @@ ############################################################################ # configs/stm3240g-eval/ostest/defconfig # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # Redistribution and use in source and binary forms, with or without @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=n # CONFIG_STM32_CODESOURCERYW=y CONFIG_STM32_CODESOURCERYL=n +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/configs/stm3240g-eval/ostest/setenv.sh b/configs/stm3240g-eval/ostest/setenv.sh index 5ce6562c1a..bd830183e7 100755 --- a/configs/stm3240g-eval/ostest/setenv.sh +++ b/configs/stm3240g-eval/ostest/setenv.sh @@ -1,7 +1,7 @@ #!/bin/bash # configs/stm3240g-eval/ostest/setenv.sh # -# Copyright (C) 2011 Gregory Nutt. All rights reserved. +# Copyright (C) 2011-2012 Gregory Nutt. All rights reserved. # Author: Gregory Nutt # # 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/configs/stm3240g-eval/telnetd/Make.defs b/configs/stm3240g-eval/telnetd/Make.defs index 30a6296b4e..fb4c2cc666 100644 --- a/configs/stm3240g-eval/telnetd/Make.defs +++ b/configs/stm3240g-eval/telnetd/Make.defs @@ -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/configs/stm3240g-eval/telnetd/defconfig b/configs/stm3240g-eval/telnetd/defconfig index 0726e0e122..8120189f9d 100644 --- a/configs/stm3240g-eval/telnetd/defconfig +++ b/configs/stm3240g-eval/telnetd/defconfig @@ -97,6 +97,7 @@ CONFIG_ARCH_DMA=n # CONFIG_STM32_CODESOURCERYW=y CONFIG_STM32_CODESOURCERYL=n +CONFIG_STM32_ATOLLIC=n CONFIG_STM32_DEVKITARM=n CONFIG_STM32_RAISONANCE=n CONFIG_STM32_BUILDROOT=n diff --git a/configs/stm3240g-eval/telnetd/setenv.sh b/configs/stm3240g-eval/telnetd/setenv.sh index 52b7514ae7..4edcc0db29 100755 --- a/configs/stm3240g-eval/telnetd/setenv.sh +++ b/configs/stm3240g-eval/telnetd/setenv.sh @@ -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/configs/stm32f4discovery/README.txt b/configs/stm32f4discovery/README.txt index 31b950bd6e..f6aeb3b89b 100755 --- a/configs/stm32f4discovery/README.txt +++ b/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/configs/stm32f4discovery/nsh/Make.defs b/configs/stm32f4discovery/nsh/Make.defs index 3a5bf3aa19..02dec9abf3 100644 --- a/configs/stm32f4discovery/nsh/Make.defs +++ b/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 # # 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/configs/stm32f4discovery/nsh/defconfig b/configs/stm32f4discovery/nsh/defconfig index ea54008821..051de38626 100755 --- a/configs/stm32f4discovery/nsh/defconfig +++ b/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/configs/stm32f4discovery/nsh/setenv.sh b/configs/stm32f4discovery/nsh/setenv.sh index 15539bf682..22fbebab2c 100755 --- a/configs/stm32f4discovery/nsh/setenv.sh +++ b/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 # # 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/configs/stm32f4discovery/ostest/Make.defs b/configs/stm32f4discovery/ostest/Make.defs index 5a49387c68..ea129c1423 100644 --- a/configs/stm32f4discovery/ostest/Make.defs +++ b/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 # # 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/configs/stm32f4discovery/ostest/defconfig b/configs/stm32f4discovery/ostest/defconfig index 60169385e7..166d723386 100755 --- a/configs/stm32f4discovery/ostest/defconfig +++ b/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/configs/stm32f4discovery/ostest/setenv.sh b/configs/stm32f4discovery/ostest/setenv.sh index 58c639e16f..b8b443c885 100755 --- a/configs/stm32f4discovery/ostest/setenv.sh +++ b/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 # # 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"