Reset Handler — 4 Phases _reset_handler at 0x1000015C Phase 1: Core Check 0x1000015C — 0x10000168 mov r0, #0xD0000000 Read CPUID -> Core 0 continues Phase 2: Data Copy 0x1000016A — 0x10000176 ldmia r4!, {r1,r2,r3} Copy .data from flash -> RAM Phase 3: BSS Clear 0x10000178 — 0x10000184 stmia r1!, {r0} r0 = 0 Zero all uninitialized globals Phase 4: Platform Entry 0x10000186+ blx r1 -> main() runtime_init -> main -> exit Execution Flow Core Check CPUID == 0? -> Data Copy flash -> RAM -> BSS Clear zero globals -> Platform Entry -> main()! Why check cores? RP2350 has 2 cores. Only Core 0 runs startup. Core 1 returns to bootrom and waits.