There is no formal definition of an embedded system, but it is generally accepted to be dedicated computer hardware with software designed to solve a specific problem or task. This is in contrast to a general-purpose computer, such as a personal computer (PC) or workstation, designed to run any software application programmers create and users choose to install. Marketing campaigns like “Intel Inside” have taught even non-technical people that there is a microprocessor inside every PC. In contrast, embedded systems utilize “hidden” microprocessors. Product literature may not even list how many or what kind of microprocessors are used in a product. As one who is always curious about what is inside a particular product or chip, I am often puzzled as to why this information is not readily available in product brochures and datasheets. This is especially true for products where the software content can be added or changed. As confirmation, ask yourself, “What kind of microprocessor is used in my
mobile phone?” Few people have any idea what is inside the phone.
Embedded systems typically use a microprocessor, combined with other hardware and software, to solve a specific computing problem. Microprocessors range from simple (by today’s standards) 8-bit microcontrollers to the world’s fastest and most sophisticated 64-bit microprocessors. At a minimum some random access memory (RAM) or read-only memory (ROM) is required to store the software. Flash memory is commonly used as nonvolatile memory to hold the software and still allow for field upgrades when defects are fixed or other software enhancements are made. In addition to the microprocessor and memory, embedded systems generally have a mix of hardware functions such as timers, interrupt controllers, UARTs, general-purpose
input and output (GPIO) pins, direct memory access (DMA) controllers, real time clocks, and liquid crystal display (LCD) controllers. The mix of hardware peripherals varies greatly in embedded systems and is tailored specifically for the requirements of the product. Embedded system software can be divided into two main classes, the operating
software and the application software. Operating software ranges from a small executive to a large real-time operating system (RTOS). The function of the operating software is to provide a set of services to the application software without forcing the application software to learn about the details of the hardware implementation. The application software implements the specific tasks the embedded system is designed to perform. An example of application software is the graphical user interface (GUI) that is used to configure the product. The different types of embedded system software will be further classified in the next chapter. Figure 1-1 illustrates the basics of an embedded system.
Keyword :
embedded systems ,software ,real-time ,operating system ,microcontroller ,memory ,embedded system ,user interface ,real time ,products ,product ,processors ,processor ,operating systems ,target ,subsystem ,software development ,sensor ,robotics ,personal computer ,peripherals ,open source ,microprocessor ,microcontrollers ,linux kernel ,kernel ,interface ,how to ,file system ,engineers ,embedded systems programming ,embedded systems design ,embedded software ,embedded linux ,embedded devices ,ee times ,developers ,design ,debugging ,controllers ,computer ,complexity ,architectures ,application.

