Description Of The Yocto Project

1087 Words3 Pages

A cross compiler is fundamentally used to separate the build environment from the target environment, which is very useful for embedded systems. Within embedded systems devices often have extremely limited recourses.
In this case Yocto is going to be used as development environment. Which also contains a cross compiler, because Yocto needs a lot of processing power and memory.
This means that it is not possible to run Yocto from an embedded system. Therefore this cross compiler is needed to be able to compile the Linux kernel, kernel drivers and eventually software applications.
First this chapter will give a brief introduction to the Yocto Project, after this introduction it contains information about how to configure Yocto to build an architecture specific cross compiler for an ARM Cortex-M3.

2.1 Introducing the Yocto Project
The Yocto Project is a complete embedded Linux development environment. That provides templates, tools and methods to help creating custom Linux-based systems for embedded products regardless of the hardware architecture.
This paragraph contains information about the basic Yocto fundamentals.
2.1.1 Yocto layers
Yocto uses layers to add customizations. A layer is a logical collection of recipes representing the kernel, a Board Support Package (BSP) or an application. All layers have a priority and are able to override the policy and configuration settings of the layers beneath it.
Figure 2 1 gives a graphical representation of the Yocto layer priorities. The lower OpenEmbedded and Yocto layers have the lowest priority and are able to be overruled by the higher level BSP and developer layers.
2.1.2 Yocto hardware configuration
In order to add a machine configuration to a Yocto layer, you need to add several...

... middle of paper ...

...rce and to start using Yocto in combination with an external binary tool chain.
2.2.3 External tool chain
The external binary tool chain could be retrieved from Mentor Embedded, and since Mentor Embedded does already have a Yocto layer to support their binary tool chains. The external tool chain could be implemented very easily.
Unfortunately the Mentor Embedded Yocto layer gives an example for a GNU Linux external tool chain, instead of an uCLinux external tool chain. And where Yocto normally builds dynamic libraries, the external tool chain with uCLinux for MMU less processor support, does not support dynamic libraries, and is only able to use static libraries.
To change the dynamically build packages to build static libraries, the Yocto variable ‘EXTRA_OECONF’ could be used to set configuration and build variables such as ‘--disable-shared’ and ‘--enable-static’.

Open Document