LaunchXL-TMS57004: Switch to use big-endian, Cortex-R4 buildroot toolchain
This commit is contained in:
parent
456b8d1b14
commit
6131f788b2
@ -8,23 +8,61 @@ README
|
|||||||
Contents
|
Contents
|
||||||
========
|
========
|
||||||
|
|
||||||
|
- Status
|
||||||
- Toolchain
|
- Toolchain
|
||||||
- LEDs and Buttons
|
- LEDs and Buttons
|
||||||
- Serial Console
|
- Serial Console
|
||||||
- Debugging
|
- Debugging
|
||||||
- Configurations
|
- 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
|
Toolchain
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
Build Platform
|
||||||
|
--------------
|
||||||
All of these configurations are set up to build with Cygwin under Windows
|
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).
|
(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
|
https://launchpad.net/gcc-arm-embedded
|
||||||
|
|
||||||
That toolchain selection can easily be reconfigured using 'make menuconfig'.
|
However, that tool chain will not support the TMS570 big-endian mode.
|
||||||
Here are the relevant current settings:
|
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:
|
Build Setup:
|
||||||
CONFIG_HOST_WINDOWS=y : Window environment
|
CONFIG_HOST_WINDOWS=y : Window environment
|
||||||
|
@ -107,8 +107,11 @@ LIBEXT = .a
|
|||||||
EXEEXT =
|
EXEEXT =
|
||||||
|
|
||||||
ifneq ($(CROSSDEV),arm-nuttx-elf-)
|
ifneq ($(CROSSDEV),arm-nuttx-elf-)
|
||||||
|
ifneq ($(CROSSDEV),armeb-nuttx-elf-)
|
||||||
LDFLAGS += -nostartfiles -nodefaultlibs
|
LDFLAGS += -nostartfiles -nodefaultlibs
|
||||||
endif
|
endif
|
||||||
|
endif
|
||||||
|
|
||||||
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
ifeq ($(CONFIG_DEBUG_SYMBOLS),y)
|
||||||
LDFLAGS += -g
|
LDFLAGS += -g
|
||||||
endif
|
endif
|
||||||
|
@ -130,12 +130,13 @@ CONFIG_ARCH_LOWVECTORS=y
|
|||||||
CONFIG_ARMV7R_MEMINIT=y
|
CONFIG_ARMV7R_MEMINIT=y
|
||||||
# CONFIG_ARMV7R_HAVE_L2CC is not set
|
# CONFIG_ARMV7R_HAVE_L2CC is not set
|
||||||
# CONFIG_ARMV7R_HAVE_L2CC_PL310 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_CODESOURCERYW is not set
|
||||||
# CONFIG_ARMV7R_TOOLCHAIN_DEVKITARM is not set
|
# CONFIG_ARMV7R_TOOLCHAIN_DEVKITARM is not set
|
||||||
# CONFIG_ARMV7R_TOOLCHAIN_GNU_EABIL 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_TOOLCHAIN_GNU_OABI is not set
|
||||||
|
# CONFIG_ARMV7R_OABI_TOOLCHAIN is not set
|
||||||
CONFIG_ARMV7R_HAVE_DECODEFIQ=y
|
CONFIG_ARMV7R_HAVE_DECODEFIQ=y
|
||||||
# CONFIG_ARMV7R_DECODEFIQ is not set
|
# CONFIG_ARMV7R_DECODEFIQ is not set
|
||||||
# CONFIG_SERIAL_TERMIOS is not set
|
# CONFIG_SERIAL_TERMIOS is not set
|
||||||
|
@ -61,7 +61,7 @@ fi
|
|||||||
|
|
||||||
# This is the location where I installed the ARM "GNU Tools for ARM Embedded Processors"
|
# 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
|
# 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
|
# 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/
|
# 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
|
# This is the Cygwin path to the location where I build the buildroot
|
||||||
# toolchain.
|
# 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
|
# Add the path to the toolchain to the PATH varialble
|
||||||
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
|
export PATH="${TOOLCHAIN_BIN}:/sbin:/usr/sbin:${PATH_ORIG}"
|
||||||
|
Loading…
Reference in New Issue
Block a user