a microcontroller (MCU)
/ MY-kroh-kun-TROH-ler /
Think of the difference between a Swiss Army knife and a full workshop. A microcontroller, or MCU, is the Swiss Army knife: a whole tiny computer squeezed onto ONE chip — processor, memory, and the input/output hardware (timers, pins, sensors interfaces) all in a single part costing maybe a few cents to a couple of dollars. It is built to control one device, like a coffee maker or a drone motor, not to run a desktop.
The key contrast is with an application processor, the kind of chip in a phone or a Raspberry Pi. An application processor is fast (hundreds of MHz to GHz), has lots of RAM (gigabytes), a memory management unit for virtual memory, and runs a full operating system like Linux or Android from external DRAM and flash chips. A microcontroller is the opposite: a slower core (often a few MHz to a few hundred MHz), tiny ON-CHIP memory (kilobytes of RAM, tens to a few hundred kilobytes of flash for the program), usually NO virtual memory, and it boots in microseconds straight into your code with no OS required. The popular ARM Cortex-M family (Cortex-M0, M3, M4, M7) are MCUs; the Cortex-A family are application processors. Because RAM and flash are on the same die as the core, an MCU is cheap, low-power, and predictable in timing.
It matters because choosing MCU versus application processor shapes everything: an MCU is for deterministic, low-power, low-cost control where you often run bare metal or a small RTOS; an application processor is for rich software, networking, and user interfaces where you run Linux. The common confusion to avoid: 'microcontroller' and 'microprocessor' are not the same — a microprocessor (like an old x86 CPU) is JUST the processing core and needs external memory and peripheral chips, whereas a microcontroller integrates memory and peripherals onto the one chip. That integration is the whole point.
A typical Cortex-M4 MCU: core: ~80-180 MHz, no MMU flash: 256 KiB (your program lives here) RAM: 64 KiB (variables, stack live here) built-in: GPIO, UART, SPI, I2C, timers, ADC, DMA A typical Cortex-A application processor: core: ~1-2 GHz, with MMU DRAM: 1-4 GiB external storage: SD card / eMMC, runs Linux
An MCU integrates core, memory, and peripherals on one chip and runs without an OS; an application processor needs external memory and runs Linux.
Don't conflate microcontroller with microprocessor: a microprocessor is only the core and needs external memory and peripheral chips, while a microcontroller bundles memory and peripherals on-chip. That bundling is what makes MCUs cheap and self-contained.