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.

Foundation

What sits on the chip in a microcontroller and in a microprocessor A microcontroller holds its CPU, SRAM, peripherals and usually its program flash on one chip and typically runs bare-metal code or an RTOS. A microprocessor has a CPU with a memory management unit and relies on separate DRAM and storage chips, which lets it run Linux or Android. Microcontroller (MCU) One chip CPU SRAM Peripherals timers, ADCs, serial Program flash usually Typically runs bare-metal code or an RTOS Some keep the program in a separate flash chip instead. Microprocessor (MPU) One chip CPU MMU Separate chips DRAM external Storage external Runs Linux or Android MMU: memory management unit. Linux normally runs on one. “MPU” has a second meaning On Arm Cortex-M chips it means Memory Protection Unit: it controls access to regions of memory but does not provide virtual memory. Check which one is meant. The line is blurring: high-end MCUs run Cortex-M cores at up to about 1 GHz, and many application processors include a Cortex-M core for real-time work.
A microcontroller keeps its CPU, memory and peripherals on one chip; a microprocessor has a CPU with an MMU and relies on separate DRAM and storage chips.

Key points

  1. 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
  2. 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
  3. 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
  4. "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
  5. 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.

Sources

  1. CPU Architecture: A-profile, R-profile and M-profile · Arm · Vendor page
  2. RP2350 datasheet · Raspberry Pi · Datasheet
  3. FreeRTOS: Real-time operating system for microcontrollers and small microprocessors · FreeRTOS (AWS) · Project docs
  4. Armv7-M Architecture Reference Manual (DDI0403E.e) · Arm · Reference
  5. i.MX 8M Mini Hardware Developer's Guide (IMX8MMHDG) Rev. 4.1 · NXP · Reference
  6. No-MMU memory mapping support · kernel.org · Project docs
  7. [PATCH 00/11] ARM: NXP: Drop NOMMU platform support (Frank Li, 19 June 2026) · linux-arm-kernel mailing list · Project docs
  8. i.MX RT1170 · NXP · Vendor page
  9. RA8M2: 1GHz Arm Cortex-M85 and Cortex-M33 Dual-Core High-Performance MCU · Renesas · Vendor page
  10. STM32MP157F · STMicroelectronics · Vendor page
  11. i.MX 8M Mini · NXP · Vendor page