From eLinux.org
< Hawkboard
Revision as of 10:47, 29 April 2010 by Alokprasad (Talk | contribs) (Created page with 'Linux Programmer’s Guide ==Introduction to Toolchain== Toolchain are Chain or set of programming tools for building an apps , it could include following : *Editor for writing…')

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Linux Programmer’s Guide

Introduction to Toolchain

Toolchain are Chain or set of programming tools for building an apps , it could include following :

  • Editor for writing program
  • Assembler
  • Compiler
  • Preprocessor
  • Linker loader
  • Debugger
  • Binutils etc.

Toolchain Type

a)Native toolchain

Native toolchains are tools which makes binaries for the environment where it toolchain itself is being run.i.e Host and target are same platform. This type of Compilation process is called Native compilation .Meaning that the program is compiled on same platform where it has to be run. Similar to normal PC based program ,they are compiled and run on same machine.

It is much easier to program using this method as it doesn’t involve any Makefile changes.

Earlier embedded devices had very less memory and space and also limited supports of Input-output peripherals, hence Native compilation was not possible or very difficult. But with the advent of powerful embedded ARM processor its now possible to make application on the platform itself. Same can be done in Hawk board too. But still it will be slower to compile as in X86 machine.

e.g. Normal GCC Toolchain in x86 Linux machine is a Native toolchain.

b)Croos Toolchain

Toolchain which are used to compile the application that will run of different machine(architecture) .This is usually used for embedded apps (e.g ARM programming) You program in x86 environment and run in ARM Board. This type of compiling is called cross compiling

Since native compilation is either not possible or very slow ,Cross compilation present a better alternative for faster development .Only drawback is to properly set build environment and Makefiles.