LaunchXL-TMS57004: Switch to use big-endian, Cortex-R4 buildroot toolchain

This commit is contained in:
Gregory Nutt 2015-12-26 18:12:03 -06:00
parent 456b8d1b14
commit 6131f788b2
4 changed files with 49 additions and 7 deletions

View File

@ -8,23 +8,61 @@ README
Contents
========
- Status
- Toolchain
- LEDs and Buttons
- Serial Console
- Debugging
- Configurations
Status
======
The basic port to the TMS570 is complete. Testing is, however, stalled.
The TMD570 hardware is big-endian and I have not yet found an ARM toolchain
that will support big-endian operation.
Toolchain
=========
Build Platform
--------------
All of these configurations are set up to build with Cygwin under Windows
using the "GNU Tools for ARM Embedded Processors" that is maintained by ARM
(unless stated otherwise in the description of the configuration).
Endian-ness Issues
------------------
I started using the the "GNU Tools for ARM Embedded Processors" that is
maintained by ARM.
https://launchpad.net/gcc-arm-embedded
That toolchain selection can easily be reconfigured using 'make menuconfig'.
Here are the relevant current settings:
However, that tool chain will not support the TMS570 big-endian mode.
Certainly the -mbig-endian options will compiler for big-endian, but the
final link fails because there is no big-endian version lib libgcc.
There are patches available here if you want to build that toolchain
from scratch:
https://launchpad.net/gcc-arm-embedded/+question/27995
I now use a version of the NuttX buildroot toolchain that can be built like
this:
cd buildroot/
cp configs/cortexr4-armeb-eabi-4.8.3-defconfig .config
make oldconfig
make
You have to have several obscure packages installed on your Linux or Cygwin
system to build the toolchain like this: GMP, MPFR, MPC, and probably
others. See the buildroot/README.txt file for additional important information
about building the toolchain.
Reconfiguring
-------------
The build configuration selections can easily be reconfigured using 'make
menuconfig'. Here are the relevant current settings:
Build Setup:
CONFIG_HOST_WINDOWS=y : Window environment

View File

@ -107,8 +107,11 @@ LIBEXT = .a
EXEEXT =
ifneq ($(CROSSDEV),arm-nuttx-elf-)
ifneq ($(CROSSDEV),armeb-nuttx-elf-)
LDFLAGS += -nostartfiles -nodefaultlibs
endif
endif
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
LDFLAGS += -g
endif

View File

@ -130,12 +130,13 @@ CONFIG_ARCH_LOWVECTORS=y
CONFIG_ARMV7R_MEMINIT=y
# CONFIG_ARMV7R_HAVE_L2CC is not set
# CONFIG_ARMV7R_HAVE_L2CC_PL310 is not set
# CONFIG_ARMV7R_TOOLCHAIN_BUILDROOT is not set
CONFIG_ARMV7R_TOOLCHAIN_BUILDROOT=y
# CONFIG_ARMV7R_TOOLCHAIN_CODESOURCERYW is not set
# CONFIG_ARMV7R_TOOLCHAIN_DEVKITARM is not set
# CONFIG_ARMV7R_TOOLCHAIN_GNU_EABIL is not set
CONFIG_ARMV7R_TOOLCHAIN_GNU_EABIW=y
# CONFIG_ARMV7R_TOOLCHAIN_GNU_EABIW is not set
# CONFIG_ARMV7R_TOOLCHAIN_GNU_OABI is not set
# CONFIG_ARMV7R_OABI_TOOLCHAIN is not set
CONFIG_ARMV7R_HAVE_DECODEFIQ=y
# CONFIG_ARMV7R_DECODEFIQ is not set
# CONFIG_SERIAL_TERMIOS is not set

View File

@ -61,7 +61,7 @@ fi
# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors"
# You can this free toolchain here https://launchpad.net/gcc-arm-embedded
export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin"
# export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9 2015q2/bin"
# This is the path to the location where I installed the devkitARM toolchain
# You can get this free toolchain from http://devkitpro.org/ or http://sourceforge.net/projects/devkitpro/
@ -69,7 +69,7 @@ export TOOLCHAIN_BIN="/cygdrive/c/Program Files (x86)/GNU Tools ARM Embedded/4.9
# This is the Cygwin path to the location where I build the buildroot
# toolchain.
# export TOOLCHAIN_BIN="${WD}/../buildroot/build_arm_nofpu/staging_dir/bin"
export TOOLCHAIN_BIN="${WD}/../buildroot/build_armeb/staging_dir/bin"
# Add the path to the toolchain to the PATH varialble
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"