Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Sauermann J.Realtime operating systems.Concepts and implementation of microkernels for embedded systems.1997.pdf
Скачиваний:
29
Добавлен:
23.08.2013
Размер:
1.32 Mб
Скачать

6. Development Environment

107

 

 

6 Development Environment

6.1General

In this chapter, we specify a complete development environment. This environment is based on the GNU C++ compiler gcc which is available for a large number of target systems (i.e. CPU families for the embedded system in this context). The gcc is available on the WWW and several CD-ROM distributions, particularly for Linux.

6.2Terminology

In the following sections, two terms are frequently used: a host is a computer system used for developing software, while a target is a computer system on which this software is supposed to run, in our case an embedded system. In this context, a computer system is characterized by a CPU type or family, a manufacturer, and an operating system. Regarding the target, the manufacturer and the operating system are of little concern, since we are building this operating system ourselves. The basic idea here is to find an already existing target system that is supported by gcc and as similar as possible to our embedded system. This helps to reduce the configuration effort to the minimum.

Thus we are looking for a development environment that exactly matches our host (e.g. a workstation or a PC running DOS or Linux) and the CPU family of our embedded system (e.g. the MC68xxx family). All of the programs required and described below will run on the host, but some of them need to be configured to generate code for the target.

A program for which host and target are identical is called native; if host and target are different, the prefix cross- is used. For instance, a C++ compiler running on a PC under DOS and generating code to be executed under DOS as well is a native C++ compiler. Another C++ compiler running on a PC under DOS, but generating code for MC68xxx processors is a cross-compiler.

Due to the large number of possible systems, there are many more crosscompilers possible than native compilers. For this reason, native compilers are often available as executable programs in various places, while cross-compilers usually need to be made according to the actual host/target combination required.

108

6.2 Terminology

 

 

It is even possible to create the cross-environment for the host on yet another system called the build machine. But in most cases, the host is the same as the build machine.