Microcontroller Booting Process
Hardware Initialization to Application — MCU Focus
Conceptual Anchor: Unlike a computer (PC) that loads an OS from a disk into RAM, a Microcontroller often executes code directly from non-volatile memory (Flash). This course focuses on the low-level "Bare-Metal" transition.
Based on Chapter 4 of Embedded Systems Architecture, we trace the MCU's journey from the first clock cycle to the main() function. We'll explore assembly-level memory setup and how the Linker Script defines this entire reality.
Lesson 0.1
Lesson 0.2
Lesson 1
Lesson 2
Lesson 3
The Spark: What is Booting?
Starting from absolute zero. Analogies, the bootstrap paradox, and basic concepts.
MCU vs. Computer Startup
Why simple MCUs don't need BIOS, UEFI, or traditional Bootloaders to run code.
Vector Initialization
Analyzing the first 8 bytes of Flash. Setting the Stack Pointer and Reset Vector.
Memory Preparation
Moving global variables from Flash to RAM. Why global variables start at zero.
The main() Handoff
Entering the C world. Stack alignment and the final branch instruction.