**2. Embedded systems**

Embedded systems are electronic systems with very strong integration of hardware and software, designed to perform some specific functions [1–4]. Those are computer-based electronic systems built into another system, for what they provide better functionality and performance. Embedded systems are special purpose systems where the system is fully encapsulated by the device it controls. Such system performs one or more predefined tasks, usually with very specific requirements. Since system performs specific task, designer can optimize it in speed of operation, also reducing system dimensions and weight, energy consumption and cost. Embedded systems are often products of mass production and mass consumption. Such systems use microcomputer-based implementation [1–4].

Some of the basic characteristics of embedded systems are: performing specific tasks, supported by wide range of processors, real time limitations and should be cheap. If operating system is used it usually is Real Time Operating System (RTOS). In many cases such systems are battery powered and low-power systems, often must operate in extreme ambient conditions, have system resources necessary only for

#### *Embedded Systems Based on Open Source Platforms DOI: http://dx.doi.org/10.5772/intechopen.85806*

concrete use. Such systems keep all object code in ROM and require use of special means and methods for design [1–4].

There is wide range of application areas of embedded systems. Such systems are generally very inexpensive and are used in almost every electronic product. Some of main areas of embedded systems application are: computer peripheral devices, automotive electronics, aircraft electronics, trains, telecommunications, medical systems, military applications, authentication systems, consumer electronics, fabrication equipment, smart buildings and robotics [1–4].

Hardware design of embedded system includes selection of processor and interface logic for connection with environment. It also requires achieving balance in design and decision what will be realized by hardware and what by software. Decision how to divide design into hardware and software part is a key element in design of embedded system.

Characteristic of embedded systems is that cross development is usually used in software development. Generally, the embedded system software is developed on one platform and is executed on another platform. Also, it is required to obtain as efficient as possible programs in machine language. Since compilers do not generate efficient machine codes, programming in assembler language is often used. But, embedded applications are becoming more complicated and there is need to use programming in high level programming languages. Generally, there is no ideal programming language for programming of embedded systems. The most often used programming languages in embedded systems are: C, C++, Java and DFL [1–4].

Processors used in practice can be divided into two groups: general purpose processors and special purpose processors. In the initial period embedded systems were using general purpose processors. Development of VLSI IC technologies enabled that embedded systems are mainly realized using special purpose processors (so called embedded processors). A key characteristic of applying of such processors is that designer should well know nature of concrete application, to be able to meet requirements and to select appropriate processor for a system. There are different classes of embedded processors: microcontrollers, RISC processors, Digital Signal Processors (DSP), multimedia processors, Application Specific Instruction Set Processors (ASIP). There are also classes of such processors for achieving high performances in intensive computing applications. Some of typical such processors are: network processors, digital signal processors (DSP), SoC (System on Chip) processors [1–4]. Advantages of using general purpose processors are: low cost for research, design, develop and test, high flexibility, low time to market. Advantages of using special purpose processors are: fast, low power consumption and small size solutions [1–4].

Depending on specific application and required characteristics, and considering the platform used for development and implementation, there are practically possible three ways of implementation of embedded systems:


Embedded systems based on specially designed platform use specially designed hardware platform, designed only for concrete application. The platform can be based on general purpose microprocessors or on special purpose processors. FPGA-based processor platforms or SoC platforms are very often used. In design of the platform everything is optimized and minimized, in order to satisfy all needs of concrete

application. As far as software platform is concerned in such systems, the assembler language for programming is mainly used. Most often, operating system is not used and all programs are application programs. Also, all software is minimized and optimized, with the goal to meet all application requirements. Standard hardware and software development tools, or even specially developed tools, are used for development of such systems. Advantages of such design and implementation of embedded systems are: minimal dimensions and weight, minimal energy consumption, minimal price, maximal speed of operation, full optimization and minimization of all hardware and software resources. Disadvantages of this approach are: very long development time and great development costs, long time to market. This method of design and implementation is used when it is needed to realize and produce very large number of such systems, in products of mass consumption and mass production. In such situations this method has the best economic effects and such are obtained the systems with the lowest market price.

Embedded systems based on open source platform use some of on the market available open source hardware platforms. Such platforms are based on general purpose microprocessor or microcontroller or on DSP processor. For design and implementation of concrete system it is needed to select open source hardware platform, among all available. That platform should be the simplest and the cheapest and should meet all requirements of application. Concrete platform is chosen such that entire system be optimized and minimized, but with the goal that all requirements for application are met. As far as the software platform is concerned, high level programming languages are mainly used for programming in such systems. Rarely is used assembly language. Often, operating system is used in such systems, usually RTOS. Entire software is minimized and optimized with the aim to satisfy concrete purpose. Standard hardware and software development tools are used for development of the systems. Advantages of such method of design and implementation are: smaller development time and lower development costs, less time to market, optimization of all resources, and relatively high speed of operation. Disadvantages of this method are: greater dimensions and weight, higher energy consumption, higher price. This method should be used when it is needed to realize and produce relatively smaller number of such systems. In such situations this way of design and implementation has the best economic justification and gives the best economic effects.

Embedded systems based on PLC platform use some of on the market available PLC devices as hardware platforms. Such platforms are based on general purpose microprocessor or microcontroller or on DSP processor used in some available PLC device. For design and implementation of concrete system it is needed to select PLC platform, among all available. That platform should be the simplest and the cheapest, and should meet all needs of application. Concrete PLC platform is selected such that entire system can be optimized and minimized, but with the goal that all requirements for system application are met. As far as the software platform is concerned, in such systems mainly are used tools and languages that are used for PLC programming. Whole software is minimized and optimized according to application and with the aim to satisfy purpose of the system. Standard resources and tools for development of PLC-based systems are used for development of such systems. Advantages of such way of design and implementation are: high speed of operation, high reliability, short development time and low development costs, short time to market. Disadvantages of this way are: large dimensions and weight, high energy consumption, high price. This method is used when is needed to realize and produce small number of such systems. In such situations this way of design and implementation has the best economic justification and gives the best economic effects.
