0. Getting Started
Lesson 0

The Great Disconnect:
MCU vs. Computer Startup

When you press "Power" on a laptop, a complex orchestration of UEFI and OS kernels begins. On a Microcontroller, the CPU simply wakes up and looks at a pre-defined memory address.

Microcontroller (MCU)

  • Starts execution from Flash immediately (XIP).
  • Entry point is a Hardwired Address (Reset Vector).
  • Application is often the only software present.
  • Hardware init happens in Firmware (C/Assembly).

Personal Computer (PC)

  • Loads code from Disk into RAM before running.
  • Entry point managed by UEFI / BIOS firmware.
  • Software is a Multi-layered stack (UEFI → GRUB → Kernel).
  • Hardware init performed by Drivers within the OS.

Why this matters

In the MCU world, there is no "safety net." There is no Operating System to set up your heap, zero your global variables, or manage your clock. As an embedded engineer, you are the BIOS.

The Key Difference (XIP): Computers use RAM-based execution because reading from a SSD is too slow. MCUs use Execute-In-Place (XIP) because the internal Flash is fast enough to be mapped directly into the CPU's address space.
Feature Microcontroller (e.g., STM32) Computer (e.g., Apple M3 / Intel)
First Instruction Reset Vector (Fixed Address) UEFI / BIOS ROM
Storage Media Internal Nor Flash External NVMe SSD / HDD
Application Location Non-volatile RAM / ROM Main Dynamic RAM (DRAM)
Complexity Predictable & Traceability Heavily Abstracted (Hidden Layers)

Ready to see the Reset Vector?

Let's look at the first 8 bytes of an STM32 binary to see how it all starts.

Start Lesson 1: The Vector Table →