The Vector Table:
Address 0x00000000
Once the voltage is stable and the clock is ticking, the CPU performs its first "magic" trick. It doesn't start at a random place. It looks at the very beginning of the memory—address 0x00000000.
The First 8 Bytes
According to the Arm architecture (standardized across most MCUs like STM32, NXP, and TI), the CPU expects two specific values to be ready before it can move:
1. Main Stack Pointer (Address 0x0)
Before the CPU can even call a sub-routine or handle an interrupt, it needs a Stack—a region of RAM where it stores temporary data. The very first task is loading the top of RAM address into the MSP register.
2. Reset Vector (Address 0x4)
This is the address of the Reset_Handler. It is the location of the first line of assembly code that will execute. The CPU takes this address and places it directly into the Program Counter (PC).
How does the linker put these values there?
Next: Memory Layout & SRAM →