summaryrefslogtreecommitdiff
path: root/nuttx/configs/stm3240g-eval/README.txt
diff options
context:
space:
mode:
authorpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-27 19:50:35 +0000
committerpatacongo <patacongo@42af7a65-404d-4744-a932-0658087f49c3>2012-02-27 19:50:35 +0000
commit34abeda54d7093df62fc2808601c7d7e0bb2ab1c (patch)
tree84593559b23d580c9330f7c2ca516069a166c789 /nuttx/configs/stm3240g-eval/README.txt
parenta500a9ab6d73b61328c3e42e4b1e103ad0656e07 (diff)
downloadpx4-nuttx-34abeda54d7093df62fc2808601c7d7e0bb2ab1c.tar.gz
px4-nuttx-34abeda54d7093df62fc2808601c7d7e0bb2ab1c.tar.bz2
px4-nuttx-34abeda54d7093df62fc2808601c7d7e0bb2ab1c.zip
Add support for the Atollic Pro toolchain; Change extension .ihx to .hex to be better compatible with most of the rest of the world
git-svn-id: svn://svn.code.sf.net/p/nuttx/code/trunk@4431 42af7a65-404d-4744-a932-0658087f49c3
Diffstat (limited to 'nuttx/configs/stm3240g-eval/README.txt')
-rwxr-xr-xnuttx/configs/stm3240g-eval/README.txt104
1 files changed, 59 insertions, 45 deletions
diff --git a/nuttx/configs/stm3240g-eval/README.txt b/nuttx/configs/stm3240g-eval/README.txt
index 7ecbd71b5..b41e49212 100755
--- a/nuttx/configs/stm3240g-eval/README.txt
+++ b/nuttx/configs/stm3240g-eval/README.txt
@@ -43,14 +43,17 @@ GNU Toolchain Options
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 Atollic, devkitARM, Raisonance GNU, or NuttX buildroot toolchain, you simply need to
+ Most testing has been conducted using the CodeSourcery toolchain for Windows and
+ that is the default toolchain in most configurations (FPU-related testing has
+ been performed with the Atolloc toolchain for windows. To use 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_ATOLLIC_LITE=y : The free, "Lite" version of Atollic toolchain under Windows
+ CONFIG_STM32_ATOLLIC_PRO=y : The paid, "Pro" version of 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)
@@ -99,6 +102,30 @@ GNU Toolchain Options
level of -Os (See Make.defs). It will work with -O0, -O1, or -O2, but not with
-Os.
+ The Atollic "Pro" and "Lite" Toolchain
+ --------------------------------------
+ One problem that I had with the Atollic toolchains is that the provide a gcc.exe
+ and g++.exe in the same bin/ file as their ARM binaries. If the Atollic bin/ path
+ appears in your PATH variable before /usr/bin, then you will get the wrong gcc
+ when you try to build host executables. This will cause to strange, uninterpretable
+ errors build some host binaries in tools/ when you first make. Here is my
+ workaround kludge.
+
+ 1. Edit the setenv.sh to put the Atollic toolchain at the beginning of the PATH
+ 2. Source the setenv.sh file: . ./setenv.sh. A side effect of this is that it
+ will set an environment variable called PATH_ORIG.
+ 3. Then go back to the original patch: export PATH=$PATH_ORIG
+ 4. Then make. The make will build all of the host executable but will fail
+ when it gets to the first ARM binary.
+ 5. Then source setenv.sh again: . ./setenv.sh. That will correct the PATH
+ again. When you do make again, the host executables are already made and
+ now the correct PATH is in place for the ARM build.
+
+ Also, the Atollic toolchains are the only toolchains that have built-in support for
+ the FPU in these configurations. If you plan to use the Cortex-M4 FPU, you will
+ need to use the Atollic toolchain for now. See the FPU section below for more
+ information.
+
The Atollic "Lite" Toolchain
----------------------------
The free, "Lite" version of the Atollic toolchain does not support C++ nor
@@ -121,28 +148,6 @@ GNU Toolchain Options
CONFIG_MOTOROLA_SREC=n
CONFIG_RAW_BINARY=n
- Another problem that I had with the Atollic toolchain is that the provide a gcc.exe
- and g++.exe in the same bin/ file as their ARM binaries. If the Atollic bin/ path
- appears in your PATH variable before /usr/bin, then you will get the wrong gcc
- when you try to build host executables. This will cause to strange, uninterpretable
- errors build some host binaries in tools/ when you first make. Here is my
- workaround kludge.
-
- 1. Edit the setenv.sh to put the Atollic toolchain at the beginning of the PATH
- 2. Source the setenv.sh file: . ./setenv.sh. A side effect of this is that it
- will set an environment variable called PATH_ORIG.
- 3. Then go back to the original patch: export PATH=$PATH_ORIG
- 4. Then make. The make will build all of the host executable but will fail
- when it gets to the first ARM binary.
- 5. Then source setenv.sh again: . ./setenv.sh. That will correct the PATH
- again. When you do make again, the host executables are already made and
- now the correct PATH is in place for the ARM build.
-
- Also, the Atollic toolchain is the only toolchain that has built-in support for
- the FPU in these configurations. If you plan to use the Cortex-M4 FPU, you will
- need to use the Atollic toolchain for now. See the FPU section below for more
- information.
-
devkitARM
---------
The devkitARM toolchain includes a version of MSYS make. Make sure that the
@@ -387,7 +392,7 @@ CFLAGS
Only the Atollic toolchain has built-in support for the Cortex-M4 FPU. You will see
the following lines in each Make.defs file:
- ifeq ($(CONFIG_STM32_ATOLLIC),y)
+ ifeq ($(CONFIG_STM32_ATOLLIC_LITE),y)
# Atollic toolchain under Windows
...
ifeq ($(CONFIG_ARCH_FPU),y)
@@ -414,20 +419,22 @@ Configuration Changes
Below are all of the configuration changes that I had to make to configs/stm3240g-eval/nsh2
in order to successfully build NuttX using the Atollic toolchain WITH FPU support:
- -CONFIG_ARCH_FPU=y : Enable FPU support
- +CONFIG_ARCH_FPU=n
+ -CONFIG_ARCH_FPU=n : Enable FPU support
+ +CONFIG_ARCH_FPU=y
- -CONFIG_STM32_CODESOURCERYW=n : Disable the CodeSourcery toolchain
- +CONFIG_STM32_CODESOURCERYW=y
+ -CONFIG_STM32_CODESOURCERYW=y : Disable the CodeSourcery toolchain
+ +CONFIG_STM32_CODESOURCERYW=n
- -CONFIG_STM32_ATOLLIC=y : Enable the Atollic toolchain
- +CONFIG_STM32_ATOLLIC=n
+ -CONFIG_STM32_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains
+ CONFIG_STM32_ATOLLIC_PRO=n
+ -CONFIG_STM32_ATOLLIC_LITE=y : The "Lite" version
+ CONFIG_STM32_ATOLLIC_PRO=n : The "Pro" version
- -CONFIG_INTELHEX_BINARY=n : Suppress generation FLASH download formats
- +CONFIG_INTELHEX_BINARY=y
+ -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats
+ +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version)
- -CONFIG_HAVE_CXX=n : Suppress generation of C++ code
- +CONFIG_HAVE_CXX=y
+ -CONFIG_HAVE_CXX=y : Suppress generation of C++ code
+ +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version)
See the section above on Toolchains, NOTE 2, for explanations for some of
the configuration settings. Some of the usual settings are just not supported
@@ -838,7 +845,7 @@ Where <subdir> is one of the following:
-CONFIG_STM32_SDIO=n : SDIO is enabled
+CONFIG_STM32_SDIO=y
- Logically, that is the only difference: This configuration has SDIO (and
+ Logically, these are the only differences: This configuration has SDIO (and
the SD card) enabled and the serial console disabled. There is ONLY a
Telnet console!.
@@ -887,10 +894,9 @@ Where <subdir> is one of the following:
"If you use a large I/O buffer to access the file system, then the
MMCSD driver will perform multiple block SD transfers. With DMA
ON, this seems to result in CRC errors detected by the hardware
- during the transfer. Workaround: Use I/O buffers less the 1024
- bytes."
+ during the transfer. Workaround: CONFIG_MMCSD_MULTIBLOCK_DISABLE=y"
- For this reason, CONFIG_FTPD_DATABUFFERSIZE=512 appears in the defconfig
+ For this reason, CONFIG_MMCSD_MULTIBLOCK_DISABLE=y appears in the defconfig
file.
6. Another DMA-related concern. I see this statement in the reference
@@ -914,14 +920,22 @@ Where <subdir> is one of the following:
If you use the Atollic toolchain, then the FPU test can be enabled in the
examples/ostest by adding the following your NuttX configuration file:
- -CONFIG_ARCH_FPU=n : Enabled the FPU
+ -CONFIG_ARCH_FPU=n : Enable FPU support
+CONFIG_ARCH_FPU=y
- -CONFIG_STM32_CODESOURCERYW=y : Disable CodeSourcery under Windows
- +CONFIG_STM32_CODESOURCERYL=n
+ -CONFIG_STM32_CODESOURCERYW=y : Disable the CodeSourcery toolchain
+ +CONFIG_STM32_CODESOURCERYW=n
+
+ -CONFIG_STM32_ATOLLIC_LITE=n : Enable *one* the Atollic toolchains
+ CONFIG_STM32_ATOLLIC_PRO=n
+ -CONFIG_STM32_ATOLLIC_LITE=y : The "Lite" version
+ CONFIG_STM32_ATOLLIC_PRO=n : The "Pro" version
+
+ -CONFIG_INTELHEX_BINARY=y : Suppress generation FLASH download formats
+ +CONFIG_INTELHEX_BINARY=n : (Only necessary with the "Lite" version)
- -CONFIG_STM32_ATOLLIC=y : Enable the Atollic toolchain
- +CONFIG_STM32_ATOLLIC=n
+ -CONFIG_HAVE_CXX=y : Suppress generation of C++ code
+ +CONFIG_HAVE_CXX=n : (Only necessary with the "Lite" version)
-CONFIG_SCHED_WAITPID=y : Enable the waitpid() API needed by the FPU test
+CONFIG_SCHED_WAITPID=n