An embedded system is a combination of the computer hardware and software accomplished with additional mechanical or other parts designed to perform a specific function.
Embedded software is an almost every electronic device in the use today. There is a software hidden away inside our watches, VCR's, cellular phones
A well-designed embedded system conceals the existence of the processor and the software .
Each embedded System is unique, and the hardware is highly specialized to the application domain.
How does an Embedded system differ from computer system ?
An Embedded system is a specific to a application, whereas a computer system is generic.
Though the components are same there is substantial difference in them.
A personal computer is not designed to perform a specific function, rather it is able to do many things.
The essential difference is that a computer when manufactured is in blank state, the manufacturer does not know what the customer will do with it, while an Embedded system is application specific.
An Embedded systems is a component within some large systems.
If required each of the embedded systems are connected by a sort of a communication network.
Numerous embedded systems make up the computer system.
Embedded system Vs Real time System
Real time system is a subclass of Embedded systems that has strict timing constraints.
A real time system is specified in terms of its ability to make certain calculations or decisions in a timely manner to face the deadline.
A missed deadline is just as bad as a wrong answer which is very crucial.
A real time system must be diligently designed which must guarantee reliable operation of the hardware and the software under all possible conditions.
A real time system has two flavors
Hard Real time systems
Soft Real time Systems
A hard real time system guarantees that critical tasks be completed on time, the goal requires that all the delays in the system need to be bounded. The current task is of high priority and there shall be no preemption.
A less restrictive type of real time system is a soft real time system, where a critical real time task gets priority over other tasks,and retains the priority until it completes it’s task.
A generic Embedded System
All embedded systems contain some type of inputs and some outputs.
The outputs of the system are the a function of its input and several other factors.
The inputs to the system are control knobs and buttons, the outputs are typically the display’s on the front panel.
Memory Processor i/p o/p
Common design requirements
Number of units
Expected life time
Hardware for Embedded Systems
Prior to writing software for an embedded system, one must be familiar with the hardware on which it will run.
The processor and software pair can be replaced with a custom integrated circuit that performs the same function in hardware.
When the design is hard coded in this manner lot of flexibility is lost.
Knowing the purpose of the hardware and making a data flow diagram makes the task of the designer easy.
Each of the embedded system is unique and the hardware is highly specialized to the application domain.
Common memory types in Embedded Systems Memory RAM Hybrid ROM DRAM SRAM NVRAM Flash EEPROM EPROM PROM Masked
Types of memory
Many types of memory devices are available for use in modern embedded systems, the difference between them need to be known to use them effectively.
Other than the ROM and RAM there is a third kind of memory device called hybrid memory which exhibits some of the characteristics of both.
Among all the types NVRAM, the non-volatile RAM is fairly common in embedded systems, even after its high cost.
C has been the language of the embedded programmers. The inherent advantages in this is that, it is fairly simple to learn, compilers are available for almost every processor in use today.
C which is considered as a middle level language having both the constructs of the low-level as well as high-level, has all the rich features in it that makes it the choice of the embedded programmers.
Of course, C is not the only language used by embedded programmers there are other languages like
These languages though exists did not gain popularity as C.
Embedded software is in almost every electronic device designed today.
Early embedded applications included unmanned space probes,computerized traffic lights and air traffic control systems.
There is software hidden away inside our watches, microwaves, VCR’s, cellular telephones, and pagers.
The military uses embedded software software to guide smart missiles and detect enemy aircraft.
Communication satellites, space probes and modern medicine would be nearly impossible without it.
Each of the embedded system is unique and the hardware is highly specialized to the application domain. As a result, embedded systems programming can be widely varying experience and can take years to master.
One common denominator across almost all embedded software development is the use of C programming language.
It seems inevitable that the number of embedded systems will continue to increase rapidly.
Already there are promising new embedded devices that have enormous market potential.
Individuals who possess the skills and desire to design the next generation of embedded systems will be in demand for quite some amount of time.