We’re Officially Live β€” Lifetime Founding Membership Available for a Limited Time
Free preview

What Is an Embedded System?

A computer dedicated to one job inside a larger device, and the MCU-vs-MPU choice (everything-on-one-chip vs an application processor running Linux) that frames every design.

18 min read

In this lesson:


What "embedded" means

A laptop is a general-purpose computer: it runs arbitrary programs you install. An embedded system is a computer built into a larger product to do one dedicated job, the controller in a washing machine, a motor drive, a pacemaker, a car's ECU. You don't install apps on it; its program is fixed firmware.

Embedded systems typically share these traits:


MCU vs MPU: the fundamental hardware split

The first architectural decision is what kind of processor sits at the center.

A microcontroller (MCU) integrates the CPU core, memory (flash + SRAM), and peripherals onto a single chip. It's a complete computer in one package, add power and a crystal and it runs. Think STM32, AVR, PIC, ESP32.

A microprocessor (MPU), here meaning an application processor, is essentially just the CPU (often with a GPU). It has no usable on-chip program memory or RAM; it needs external DRAM, external flash/eMMC, and a power-management chip, and it runs a full OS like Linux. Think the SoC in a Raspberry Pi, i.MX, or a phone.

        MCU (one chip)                       MPU (a system of chips)
 β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”   β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚  CPU core                 β”‚        β”‚  CPU    │──▢│ external β”‚
 β”‚  Flash (program)          β”‚        β”‚ (+ GPU) β”‚   β”‚  DRAM    β”‚
 β”‚  SRAM (data)              β”‚        β””β”€β”€β”€β”€β”¬β”€β”€β”€β”€β”˜   β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜
 β”‚  Peripherals (GPIO,UART,  β”‚             β”‚        β”Œβ”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”
 β”‚   timers, ADC, ...)       β”‚             └───────▢│  eMMC /  β”‚
 β””β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”€β”˜                      β”‚  flash   β”‚
   self-contained, boots from               +PMIC, +external storage,
   internal flash in ms                      boots an OS in seconds

The comparison that matters

MCU MPU (application processor)
Memory on-chip flash + SRAM (KB-MB) external DRAM + flash (MB-GB)
Software bare-metal or RTOS full OS (Linux, Android)
Boot time milliseconds (from internal flash) seconds (load OS from storage)
Determinism high (predictable timing) lower (OS scheduling, caches, MMU)
Power Β΅A-mA, easy deep sleep much higher; sleep is complex
Cost / BOM low, few external parts higher, many support chips
Compute MHz, often no FPU/MMU GHz, multicore, MMU, GPU
Best at real-time control, low power, simple rich UI, networking, heavy compute, filesystems

The rule of thumb: choose an MCU when the job is real-time control, low power, low cost, and instant-on. Choose an MPU when you need an operating system, a rich GUI, networking stacks, a filesystem, or serious compute (video, ML). Many products use both, an MPU for the application and an MCU as a real-time co-processor.

This course is about the MCU world (Cortex-M class), where you own every byte and every cycle.


The line is blurry: "embedded Linux"

The MCU/MPU split isn't absolute. High-end MCUs now have megabytes of RAM and run lightweight Linux; application processors can run bare-metal. "Embedded Linux" sits in the middle, an MPU running Linux but in a fixed-function product (a router, a smart thermostat). The deciding questions are practical: do you need an OS and its ecosystem, and can you afford the external memory, power, and boot time it requires?


The "MPU" naming trap

Watch out: MPU has two meanings in embedded.

So a Cortex-M microcontroller (an MCU) can contain an MPU (memory protection unit). Always read MPU from context; senior engineers disambiguate automatically.


Gotchas


TL;DR

This is just the start

Sign up free to track progress on this lesson, get coding problems with the Run button, and unlock the full interview Q&A.

More in Embedded Systems Fundamentals

Inside an MCUThe Memory Map
Registers & Memory-Mapped I/O
GPIO: Digital I/O
Interrupts & ISRs
Timers & Counters