An embedded system is a combination of hardware and software that is designed to perform a specific task. They are usually based on a microcontroller and microprocessors. In this section, we will take a quick look into different architecture elements of an embedded system and its hardware architecture including memory and communication between these devices. Pretty much everything that we use on a day-to-day basis are embedded devices, including mobile phones, DVD players, GPS systems, and intelligent voice assistants such as Alexa.