0. Getting Started

The Spark:
What is "Booting"?

Imagine a robot sitting in a dark room. It has no brain, no memory, and no instructions. It is just a collection of metal and wires.

Then, you flip a switch. Power flows in. How does it know what to do first?

1. The Bootstrap Paradox

🥨
The Problem

To run a program, the CPU needs to follow instructions. But who tells the CPU where those instructions are? In the early days of computing, this was a massive logical loop.

The term "Booting" comes from the phrase "to pull oneself up by one's own bootstraps." It refers to the seemingly impossible task of a system starting itself from nothing.

2. The "Hardwired" Secret

The answer to the paradox is not software—it's **Hardware**. Inside every microcontroller, there are physical electrical paths that are hard-coded to look at one specific spot when power arrives.

The Fixed Address

Think of it like a train track. Even if the train has no driver, the tracks are laid out to lead to exactly one station. The moment the engine (CPU) starts, it follows the tracks to the first instruction. This "Starting Station" is called the Reset Vector.

3. From Zero to Main()

The journey from "Zero" (Power-Off) to "Main" (Your Code) follows this sequence:

Voltage
âš¡ Power-On
→
Hardware
🧭 Reset Vector
→
Assembly
🧹 Startup Code
→
C Code
🚀 main()

Ready to dive deeper?

Next: MCU vs. Computer Startup →