Lesson 0
The Great Disconnect:
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 →