As you have already learned in Chapter 3, development systems consist of many tools. The discussion in Chapter 3 was about native software development, which means that the host system on which the software is developed and the target system on which the software runs are the same. This chapter provides information about embedded and cross-platform software development where the host system and the target system are different. The issues in this type of development are slightly different although basic programming methods and techniques remain the same.
In this chapter I have used a single board computer from Arcom and a processor mezzanine card from Artesyn. I am thankful to both of these vendors. The Arcom board is based upon a x86 compatible CPU and has four serial ports, an Ethernet port and a number of other ports. The Artesyn board is PowerPC based and it can be plugged into a Compact PCI career card. Information about these boards can be obtained from the respective company web site. I have listed some features at the end of this chapter.
Before reading this chapter, you should become familiar with a few concepts related to cross-platform development. The most important terms used in this chapter are cross and native. The term cross is used for tools that run on one type of machine but are used to carry out some service for another type of machine. For example, a cross compiler is a compiler that creates executable code for a machine which is different than the machine on which the compiler is running. Similar is the case with cross assemblers, cross debuggers and so on. On the other hand, a native tool provides a service to the same machine on which it is running. For example, a native compiler generates output code that is executable on the same machine on which the compiler runs.