Сделал дизассемблер и обнаружил следующюю вещь:
Disassembly of section .rom_vectors:
80000000 <__exception_handlers>:
80000000: ea00000e b 80000040 <_stext>
80000004: e59ff018 ldr pc, [pc, #24] ; 80000024 <.undefined_instruction>
80000008: e59ff018 ldr pc, [pc, #24] ; 80000028 <.software_interrupt>
8000000c: e59ff018 ldr pc, [pc, #24] ; 8000002c <.abort_prefetch>
80000010: e59ff018 ldr pc, [pc, #24] ; 80000030 <.abort_data>
80000014: 00000000 andeq r0, r0, r0
80000018: e59ff018 ldr pc, [pc, #24] ; 80000038 <.IRQ>
8000001c: e59ff018 ldr pc, [pc, #24] ; 8000003c <.FIQ>
00000000 <__exception_handlers>:
0: ea00000e b 40 <_stext>
4: e59ff018 ldr pc, [pc, #24] ; 24 <armreg_r9>
8: e59ff018 ldr pc, [pc, #24] ; 28 <armreg_r10>
c: e59ff018 ldr pc, [pc, #24] ; 2c <armreg_fp>
10: e59ff018 ldr pc, [pc, #24] ; 30 <armreg_ip>
14: 00000000 andeq r0, r0, r0
18: e59ff018 ldr pc, [pc, #24] ; 38 <armreg_lr>
1c: e59ff018 ldr pc, [pc, #24] ; 3c <armreg_pc>
Как видно описание переходов абсолютно одинаковое.
Кто нибудь знает -- у LPC22xx счетчик команд равен при попадании на вектор равен 0 или адресу собласти на которую производится mapping.