What is an embedded system
An embedded system is a combination of hardware and software designed to perform a specific function. Embedded systems range from simple devices such as calculators to extremely complex ones, such as flight control systems for rockets.
In an embedded system, there is relatively few hardware resources available. However, in a general purpose computer, there is an abundance of hardware resources, such as RAM, CPU, Speed etc. Most of the embedded system software is written in languages such as embedded C/C++ along with assembly language for software sections where performance is a priority.
Interestingly, many embedded systems work with little or no human intervention. So these systems are smart enough to recover from common errors.
Impact of embedded systems in our daily life
Embedded devices are present all around us in different forms. For instance, take example of a passenger car. We can see many embedded modules (often called as ECUs) present under the hood of modern vehicles. Typical ECUs present in car are electronic braking systems, engine control units, car security systems, infotainment systems, electronic power steering, climate control systems, seat position control systems, airbag control and so on.
Mobile phone is also an example of an embedded system. The mobile phones also contains a large number of peripherals such as acceleration sensor, gyroscope, light sensor, finger print reader, speaker, microphone, GPS, camera etc interfaced with its microprocessor.
The devices which we use daily such as microwave oven, TV, radio, AC, set top box, router, WiFi-modem, refrigerator, washing machine etc all contain one or more embedded modules to perform various functions.
How does an embedded system works
Working of an embedded device varies greatly depending upon the function that the device is intended to perform. Typically, a few sensors, switches, indicators and actuators interfaced with a microcontroller to form a complete embedded device.
The software, Bare-metal or an RTOS based software, contained within the embedded device co-ordinates and manages various peripherals and prioritizes various tasks of the system.