# 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.

Page: https://dharanova.com/learn/mcu-vs-mpu · Track: Think · Level: Foundation · Facts last checked 7 October 2026

Diagram: Two side-by-side panels. Microcontroller (MCU): one chip holds the CPU, SRAM, peripherals (timers, ADCs, serial) and usually the program flash; some keep the program in a separate flash chip; it typically runs bare-metal code or an RTOS. Microprocessor (MPU): the chip holds a CPU with a memory management unit (MMU) and is wired to separate DRAM and storage chips; it runs Linux or Android, and Linux normally runs on a processor with an MMU. Below: on Arm Cortex-M chips "MPU" also means Memory Protection Unit, which gives no virtual memory. A note says the line is blurring both ways.

## 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. [1][2][3]
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. [4][1][5][6]
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. [6][7]
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. [8][9][10][11]

## 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

- [Instruction sets: Arm, RISC-V, x86 and others](https://dharanova.com/learn/isa-landscape.md): The instruction set is the language a processor understands. Who owns it, and who can build chips with it, shapes everything around it.
- [Chip, module, SoM, dev board, SBC](https://dharanova.com/learn/chip-som-board.md): The same processor is sold as a bare chip, a module or a ready-made board. Their prices are not comparable, and mixing them up is a common mistake.
- [Anatomy of an application-processor system](https://dharanova.com/learn/anatomy-of-an-mpu-system.md): What sits around the processor on a Linux board, and how it starts up, from power-on to a login prompt.
- [GPUs, DSPs, ISPs, NPUs and what TOPS means](https://dharanova.com/learn/accelerators-and-tops.md): Accelerators do one kind of work far more efficiently than a CPU. TOPS is the headline number, and it is hard to compare between chips.
- [Choosing a microcontroller or processor](https://dharanova.com/learn/choosing-a-processor.md): Answer six questions to find the kind of chip that fits your project, from small microcontrollers to Linux-class processors. You get a class, not a brand.
- [Bare metal: the super-loop and interrupts](https://dharanova.com/learn/bare-metal.md): The simplest firmware is a main loop and a few interrupt handlers, with no operating system. It handles more than you might expect.
- [Secure boot and the root of trust](https://dharanova.com/learn/secure-boot.md): At start-up, each piece of software checks the signature of the next one before running it, starting from code that cannot be changed.
- [Machine learning on a microcontroller](https://dharanova.com/learn/tinyml.md): Small machine-learning models can run on microcontrollers, with no operating system and very little memory.

## Sources

1. [CPU Architecture: A-profile, R-profile and M-profile](https://www.arm.com/architecture/cpu), Arm
2. [RP2350 datasheet](https://datasheets.raspberrypi.com/rp2350/rp2350-datasheet.pdf), Raspberry Pi
3. [FreeRTOS: Real-time operating system for microcontrollers and small microprocessors](https://www.freertos.org/), FreeRTOS (AWS)
4. [Armv7-M Architecture Reference Manual (DDI0403E.e)](https://support.arm.com/documentation/ddi0403/ee/), Arm
5. [i.MX 8M Mini Hardware Developer's Guide (IMX8MMHDG) Rev. 4.1](https://community.nxp.com/pwmxy87654/attachments/pwmxy87654/imx-processors/218788/1/IMX8MMHDG-NEW.pdf), NXP
6. [No-MMU memory mapping support](https://docs.kernel.org/admin-guide/mm/nommu-mmap.html), kernel.org
7. [[PATCH 00/11] ARM: NXP: Drop NOMMU platform support (Frank Li, 19 June 2026)](https://ratatoskr.run/linux-arm-kernel/2026/06/17155621/t), linux-arm-kernel mailing list
8. [i.MX RT1170](https://www.nxp.com/products/i.MX-RT1170), NXP
9. [RA8M2: 1GHz Arm Cortex-M85 and Cortex-M33 Dual-Core High-Performance MCU](https://www.renesas.com/en/products/ra8m2), Renesas
10. [STM32MP157F](https://estore.st.com/en/stm32mp157faa1-cpn.html), STMicroelectronics
11. [i.MX 8M Mini](https://www.nxp.com/products/i.MX8MMINI), NXP
