Microcontroller or microprocessor?
A microcontroller is a small computer on one chip. A microprocessor usually needs separate memory chips, but can run a full operating system like Linux.
Key points
- A microcontroller (MCU) puts the CPU, SRAM and peripherals such as timers, ADCs and serial interfaces on one chip, usually with program flash too (some keep their program in a separate flash chip), and typically runs bare-metal code or a real-time operating system.123
- A microprocessor or application processor (MPU) has a memory management unit (MMU) and relies on external DRAM and external storage, which lets it run a general-purpose OS such as Linux or Android.4156
- Linux normally runs on processors with an MMU. The kernel still has a no-MMU mode, but it gives no memory protection between programs, and in June 2026 an NXP kernel developer proposed dropping no-MMU support for several NXP chips, saying their users had moved to RTOSes.67
- "MPU" has a second meaning. On Arm Cortex-M chips it means Memory Protection Unit, which controls access to regions of memory but does not provide virtual memory. Check which one is meant.4
- The line is blurring both ways: high-end microcontrollers now run Cortex-M cores at up to about 1 GHz, and many application processors include a Cortex-M core for real-time work.891011
Common mistakes
- Choosing a microprocessor because the project might need Linux later, then paying for extra memory, power chips, slow start-up and a filesystem that power cuts can corrupt.
Where to go next
- See the microcontroller in the end-to-end diagram
- Instruction sets: Arm, RISC-V, x86 and others builds on this
- Chip, module, SoM, dev board, SBC builds on this
- Anatomy of an application-processor system builds on this
- GPUs, DSPs, ISPs, NPUs and what TOPS means builds on this
- Choosing a microcontroller or processor builds on this
- Bare metal: the super-loop and interrupts builds on this
- Secure boot and the root of trust builds on this
- Machine learning on a microcontroller builds on this
Spotted a mistake, or found this useful?
Tell usSources
- CPU Architecture: A-profile, R-profile and M-profile · Arm · Vendor page
- RP2350 datasheet · Raspberry Pi · Datasheet
- FreeRTOS: Real-time operating system for microcontrollers and small microprocessors · FreeRTOS (AWS) · Project docs
- Armv7-M Architecture Reference Manual (DDI0403E.e) · Arm · Reference
- i.MX 8M Mini Hardware Developer's Guide (IMX8MMHDG) Rev. 4.1 · NXP · Reference
- No-MMU memory mapping support · kernel.org · Project docs
- [PATCH 00/11] ARM: NXP: Drop NOMMU platform support (Frank Li, 19 June 2026) · linux-arm-kernel mailing list · Project docs
- i.MX RT1170 · NXP · Vendor page
- RA8M2: 1GHz Arm Cortex-M85 and Cortex-M33 Dual-Core High-Performance MCU · Renesas · Vendor page
- STM32MP157F · STMicroelectronics · Vendor page
- i.MX 8M Mini · NXP · Vendor page