Embedded Linux system basis

From ArmadeusWiki
Revision as of 08:31, 22 November 2016 by JulienB (Talk | contribs) (Build system / toolchain)

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

An embedded Linux system is very similar (when speaking about software) to a Desktop one, thanks to the power of the latest embedded microprocessor cores, like the ARM9™/Cortex™ ones. It is composed of:

  • a bootloader, which is the first bits of code executed when the processor starts. It behaves like the BIOS+Grub combination on Desktop PCs.
  • an operating system = the Linux kernel
  • many programs and librairies organized in a filesystem = the rootfs

The bootloader

In our case our bootloader is U-Boot. It's main role is to initialize the hardware, load the Linux kernel and launch it with the correct parameters

The kernel

In our case Linux™.

The rootfs

It is composed of:

  • a C library (mostly uClibc or glibc in our boards),
  • basic utilities (in our case regrouped as one executable through Busybox),
  • additional libraries and tools,

Build system / toolchain

To build all these tools, you need a "build system". We use Buildroot.

  1. This system will build a gcc cross-toolchain that will allow to generate on your PC software that can be run on your APF.
  2. When this toolchain is ready it will compile the bootloader, the kernel and the tools of the rootfs
  3. Finally it will generate images of these 3 components that can be "flashed" on your APF/OPOS module


ARM9 & Cortex are registered trademarks of ARM Limited.

Linux is a registered trademark of Linus Torvalds.