micrologo.jpg (2849 byte) ARM Toolchain documentation
Want to learn more about Bluewind? Feel free to contact us.
Bluewind Home

Here you will find a short guide on how to configure, build and install GCC as a cross-compiler for Linux Systems. Our experience refers to a RedHat 6.2 Linux System running on an Intel Celeron host and to an arm-elf target.

Comments about this page and discussions about other experiences can be initiated by first

What you need

The build procedure

Screenshots

Arm-elf development tools for eCos

Related documents





What you need

First of all let's see which files, libraries and packages are needed:
1. Binutils(binutils-2.10.tar.gz, 7,1MB)
2. GCC(gcc-2.95.2.tar.gz, 12,6MB
3. Newlib(newlib-1.8.2.tar.gz, 3MB)
4. GDB or, better, Insight(insight5.0.tar.gz, 18,4MB)

These pieces have to be built and installed in a particular order, that is the one given. Why? Clearly the cross-compiler is needed to build the libraries, so GCC must be built before Newlib. Also, GCC has its own library (called libgcc) so Binutils must be built before GCC. Finally Insight can be added. GDB, the GNU line command debugger, can be built alone, but it is better working with Insight, that gives a nice GUI to GDB.

Next to each component it has been reported the version that BlueWind used to build its own ARM toolchain, but for every component it is better to download the latest version you can find from some of these ftp sites:

GNU ftp Here you can find a GNU FTP site mirror list, in which there will probably be mirrors less busy and closer to your site than the GNUftp site. In this way you will find the fastest way to get Binutils and GCC.
Newlib This is the ftp site where you can find and download Newlib latest version.
Insight Here is the official Insight page where you can all the information tou need and, obviously, a download section.
GDBIf you want to use a simple line command debugger you can find GDB files looking for them in GNU ftp.


top




The build procedure


Suppose:

  • you have unpacked all the sources into /home/dir_for_unpacked_files; you can do this in the following way:
    • home/> mkdir mytmp
    • home\> cd mytmp
    • then you copy in mytmp the *.gz.tar files previously listed and for each one you use the command:
      home/mytmp/> gunzip nomefile.tar.gz | tar xvf -
  • you want to build a i686-pc-linux hosted arm-elf cross-compiler (that is our case, but you can use the same procedure to build a cross-GCC for other machines);
  • the cross-compiler is to be installed in a directory called /tools.

Let's see then how the build procedure would look like:

> cd home/mytmp
home/mytmp/> host=i686-pc-linux
home/mytmp/> target=arm-elf
home/mytmp/> prefix=/tools
home/mytmp/> i=$/tools/bin

mkdir build-bin build-gcc build-new build-ins

Configure, build and install binutils:

home/mytmp/> cd build-bin
home/mytmp/build-bin/> ../binutils-2.10/configure --target=$target \
--prefix=$prefix -v
home/mytmp/build-bin/> make all install

At this point the directory /tools/bin has to be added to the environment variable PATH:

home/mytmp/build-bin/> export PATH
home/mytmp/build-bin/> PATH=/tools/bin:$PATH

Configure, build and install gcc:

home/mytmp/build-bin/> cd ../build-gcc
home/mytmp/build-gcc/> cd ../gcc-2.95.2/configure --target=$target \
--prefix=$prefix -v --with-gnu-as \
--with-gnu-ld --with-gnu-newlib
home/mytmp/build-gcc/> make all install

Configure, build and install newlib:

home/mytmp/build-gcc/> cd ../build-new
home/mytmp/build-new/> cd ../newlib-1.8.2/configure --target=$target \
--prefix=$prefix -v

Note that the green highlighted settings are not necessary if, as we did, $prefix/bin is put in the path before running this:

home/mytmp/build-new/> make all install \
CC_FOR_TARGET=$i/${target}-gcc \
AS_FOR_TARGET=$i/${target}-as \
LD_FOR_TARGET=$i/${target}-ld \
AR_FOR_TARGET=$i/${target}-ar \
RANLIB_FOR_TARGET=$i/${target}-ranlib

Configure, build and install insight

home/mytmp/build-new/> cd ../build-ins
home/mytmp/build-ins/> cd ../insight-5.0/configure --target=$target \
--prefix=$prefix -v
home/mytmp/build-ins/> make all install


Approximate disk space requirements for building the development tools are as follows:
ToolBuildInstall
Binary Utilities35MB25MB
GCC45MB25MB
Insight110MB140MB
TOTAL185MB75MB

Following successful building and installation of each set of tools, the associated build tree may be deleted to save space if necessary.


top




Screenshots



Insight Tools

Insight windows on a Gnome environment.


top




Arm-elf development tools for eCos

BlueWind is also interested in eCos, the embedded configurable operating system, is an open source real-time operating system for deeply embedded applications. It meets the requirements of the embedded space that Linux cannot yet reach. Linux currently scales from a minimal size of around 500 kilobytes of kernel and 1.5MB of RAM, all before taking into consideration application and service requirements. eCos provides the basic runtime infrastructure necessary to support devices with memory footprints in the 10's to 100's of kilobytes, or with real-time requirements.
ECos is in BlueWind interest because there are some ARM processors and derivatives (Cirrus Logic) as supported targets that we are working with. To carry out a complete eCos ARM development kit running under Linux or Windows systems you can read the relative documents mentioned in the Documents section.


top




Related documents


top



Home Up


Copyright © Bluewind. All rights reserved.