A cross compiler is basically used to separate the compilation environment from the target environment, which is very useful for embedded systems. Within embedded systems, devices often have extremely limited resources. In this case Yocto will be used as a development environment. Which also contains a cross compiler, because Yocto needs a lot of processing power and memory. This means that you cannot run Yocto from an embedded system. Therefore this cross compiler is necessary to be able to compile the Linux kernel, kernel drivers and possibly software applications. First this chapter will provide a brief introduction to the Yocto project, after this introduction it contains information on how to configure Yocto to build a specific cross compiler architecture for ARM Cortex-M3.2.1 Introducing the Yocto projectThe Yocto project is a complete integrated Linux development environment. It provides templates, tools, and methods to help create custom Linux-based systems for embedded products regardless of hardware architecture. This paragraph contains information about the basic fundamentals of Yocto.2.1.1 Layers YoctoYocto uses layers to add customizations. A layer is a logical collection of recipes that represent 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 below them. Figure 2 1 provides a graphical representation of the Yocto level priorities. The lower OpenEmbedded and Yocto layers have the lowest priority and can be overridden by the higher-level BSP and developer layers.2.1.2 Yocto Hardware Configuration To add a machine configuration to a Yocto layer, you need to add several… .. . half of the document ......rce and to start using Yocto in combination with an external binary tool chain.2.2.3 External Binary Tool ChainThe external binary tool chain can be retrieved from Mentor Embedded and as Mentor Embedded does already have a Yocto layer to support their binary tool chains. External tool chain could be implemented very easily. Unfortunately the Embedded Yocto Mentor layer provides an example of a GNU Linux external tool chain, instead of a uCLinux external tool chain. And where Yocto normally creates dynamic libraries, the external tool chain with uCLinux for less MMU processor support, does not support dynamic libraries and is only able to use static libraries. To modify dynamic build packages to create static libraries, the Yocto variable 'EXTRA_OECONF' can be used to set the configuration and create variables like '--disable-shared' and '--enable-static’.
tags