Table of Contents

Embedded linux components

Embedded linux tools

U-Boot - GPL boot loader

uClibc is a small C standard library intended for embedded linux systems that was created to support uClinux, a version of linux that does not require an MMU. Currently, the kernel codebases for uClinux and linux are the same, having just different configurations (since the 2.6 Linux release). It is now supported by MontaVista, TimeSys and Windriver. A native uClibc toolchain can be built using the uClibc buildroot-based system (see http://free-electrons.com/docs/uclinux/).

Busybox is a userland software running on top of the linux kernel, that provides the usual set of Unix tools (sh, ls….). Its size is less than 500KB when compiled statically with uClibc.

A cross-compiling toolchain for a specific architecture, like PowerPC or ARM, contains the following components:

libgcc is a low-level runtime library used by gcc-compiled code, e.g. to support complex arithmetic operations

Boot process

Cross-compiling toolchains

Other third party development tools (with their own compilers):

We can build our own toolchain instead of using a third-party one, using tools like these:

The above tools also build the needed root filesystem, which can also be built manually with Scratchbox (used by Nokia for its internet tablets).

Workstation emulators

Qemu (supports x86, x86_64, ppc, arm, sparc, mips, m68k). User mode emulation on linux hosts (can run applications compiled for another CPU, e.g. we can run busybox compiled for ARM on a i386 linux host).

ARM-specific emulators:

Flash utilities

Debugging

Embedded linux distributions

ELC2010

Board bring up
http://www.embeddedlinuxconference.com/elc_europe10/sessions.html#Anders

ELC2011

https://events.linuxfoundation.org/images/stories/pdf/lf_elc12_yau.pdf

Interesting links

podcast on embedded linux:
http://www.timesys.com/resources/podcast

good embedded linux documents
http://free-electrons.com/docs