LPC2148
Сам сброс:
Код
54: ((void (*)())0x0000)();
55:
0x00000512 F000 BL __ARM_common_call_via_r0(0x000011FC) - Part #1
0x00000514 FE73 BL __ARM_common_call_via_r0(0x000011FC) - Part #2
...
__ARM_common_call_via_r0:
0x000011FC 4700 BX R0
__ARM_common_call_via_r2:
0x000011FE 4710 BX R2
//Тут вроде правильно доходит до вектора ресета
239: Vectors LDR PC, Reset_Addr
0x00000000 E59FF018 LDR PC,[PC,#0x0018]
Далее идет Setup VPBDIV, Setup PLL, Configure and Enable PLL, Wait until PLL Locked, Switch to PLL Clock, Setup MAM, Setup Stack for each mode, Enter Undefined Instruction Mode and set its Stack Pointer (также Abort, FIQ, IRQ, Supervisor, User mode)
и дальше повисает
Код
; Enter the C code
IMPORT __main
LDR R0, =__main
BX R0
//asm:
416: IMPORT __main
0x00000100 E24DAB01 SUB R10,R13,#0x00000400
417: LDR R0, =__main
0x00000104 E59F0010 LDR R0,[PC,#0x0010]
418: BX R0
419:
420:
421: IF :DEF:__MICROLIB
422:
423: EXPORT __heap_base
424: EXPORT __heap_limit
425:
426: ELSE
427:; User Initial Stack & Heap
428: AREA |.text|, CODE, READONLY
429:
430: IMPORT __use_two_region_memory
431: EXPORT __user_initial_stackheap
432: __user_initial_stackheap
433:
0x00000108 E12FFF10 BX R0
0x0000010C E01FC100 DD 0xE01FC100
0x00000110 E01FC080 DD 0xE01FC080
0x00000114 E01FC000 DD 0xE01FC000
0x00000118 40000550 DD 0x40000550
0x0000011C 00000120 DD 0x00000120
__main:
0x00000120 EB000000 BL __scatterload_rt2(0x00000128)
0x00000124 EB00002F BL __rt_entry_sh(0x000001E8)
__scatterload_rt2:
0x00000128 E28F002C ADD R0,PC,#0x0000002C
0x0000012C E8900C00 LDMIA R0,{R10-R11}
0x00000130 E08AA000 ADD R10,R10,R0
0x00000134 E08BB000 ADD R11,R11,R0
0x00000138 E24A7001 SUB R7,R10,#0x00000001
__scatterload_null:
0x0000013C E15A000B CMP R10,R11
0x00000140 1A000000 BNE 0x00000148
0x00000144 EB000027 BL __rt_entry_sh(0x000001E8)
0x00000148 E8BA000F LDMIA R10!,{R0-R3}
0x0000014C E24FE018 SUB R14,PC,#0x00000018
0x00000150 E3130001 TST R3,#0x00000001
0x00000154 1047F003 SUBNE PC,R7,R3
0x00000158 E12FFF13 BX R3
0x0000015C 00001188 DD 0x00001188
0x00000160 000011A8 DD 0x000011A8
__scatterload_copy:
0x00000164 E2522010 SUBS R2,R2,#0x00000010
0x00000168 28B00078 LDMCSIA R0!,{R3-R6}
0x0000016C 28A10078 STMCSIA R1!,{R3-R6}
0x00000170 8AFFFFFB BHI __scatterload_copy(0x00000164)
0x00000174 E1B02E82 MOVS R2,R2,LSL #29
0x00000178 28B00030 LDMCSIA R0!,{R4-R5}
0x0000017C 28A10030 STMCSIA R1!,{R4-R5}
0x00000180 45904000 LDRMI R4,[R0]
0x00000184 45814000 STRMI R4,[R1]
0x00000188 E12FFF1E BX R14
__scatterload_zeroinit:
0x0000018C E3B03000 MOVS R3,#0x00000000
0x00000190 E3B04000 MOVS R4,#0x00000000
0x00000194 E3B05000 MOVS R5,#0x00000000
0x00000198 E3B06000 MOVS R6,#0x00000000
0x0000019C E2522010 SUBS R2,R2,#0x00000010 //и вот
0x000001A0 28A10078 STMCSIA R1!,{R3-R6} //тут
0x000001A4 8AFFFFFC BHI 0x0000019C //крутится
0x000001A8 E1B02E82 MOVS R2,R2,LSL #29
0x000001AC 28A10030 STMCSIA R1!,{R4-R5}
0x000001B0 45813000 STRMI R3,[R1]
0x000001B4 E12FFF1E BX R14