RP2350 Boot Sequence
Power-On to main() — 5 Steps
STEP 1
Power On
Cortex-M33 wakes, execution at 0x00000000 (Bootrom)
▼
STEP 2
Bootrom Executes
32KB on-chip ROM — finds IMAGE_DEF at 0x10000000
▼
STEP 3
Flash XIP Setup (bootrom-managed)
Bootrom configures flash interface & XIP (no boot2 on RP2350)
▼
STEP 4
Vector Table & Reset Handler
Reads SP from offset 0x00 -> 0x20082000
Reads Reset Handler from 0x04 -> 0x1000015d
▼
STEP 5
C Runtime Startup (crt0.S)
Copy .data from flash -> RAM
Zero .bss section
Call runtime_init() -> main()
Key Insight
Your main() is the LAST thing to run.
All 5 steps must complete first!