Definition
An embedded system is a computing system built into a larger device to perform a specific function. The washing machine controller, the car engine control unit, the thermostat, the drone flight controller, the smart speaker — all embedded systems.
They differ from general-purpose computers in three ways: they run a fixed set of programs, they interact with physical hardware directly, and they are constrained on power, memory and cost.
The stack
An embedded system usually has:
- A microcontroller or microprocessor — the compute core.
- Peripherals — timers, ADCs, GPIO, UART, SPI, I2C, PWM.
- Sensors and actuators — the interface to the physical world.
- Firmware — code that runs directly on the microcontroller, often written in C or C++.
- An optional real-time operating system — for scheduling and I/O when the workload grows.
- Communication — Bluetooth, Wi-Fi, LoRa, CAN, Ethernet.
What embedded engineers do
- Read datasheets and reference manuals
- Configure peripherals via registers
- Write drivers for sensors and actuators
- Design interrupt-driven code and timing-sensitive routines
- Debug with logic analysers, oscilloscopes and JTAG probes
- Manage memory, power and reliability trade-offs
The work is precise. A single off-by-one in a register can be the difference between a working device and one that resets every seven minutes.
Bare-metal vs RTOS vs embedded Linux
- Bare-metal — code runs directly on hardware with no OS. Smallest, cheapest, most deterministic.
- RTOS — a small real-time operating system. FreeRTOS, Zephyr. Useful when you have multiple tasks with timing constraints.
- Embedded Linux — a full Linux system on a capable processor. Used in routers, cameras, industrial controllers.
Why embedded systems matter
Every physical product with intelligence has embedded software inside. Electric vehicles, medical devices, industrial automation and consumer electronics all depend on embedded engineers.