📄 handle_interrupts.lst
字号:
========================================================================
** ELF Header Information
File Name: handle_interrupts.axf
Machine class: ELFCLASS32 (32-bit)
Data encoding: ELFDATA2LSB (Little endian)
Header version: EV_CURRENT (Current version)
File Type: ET_EXEC (Executable) (2)
Machine: EM_ARM (ARM)
Image Entry point: 0x00008044
Flags: EF_ARM_HASENTRY + EF_ARM_SYMSARESORTED + EF_ARM_MAPSYMSFIRST (0x02000016)
EABI conformance : ARM EABI Version 2.
Built with
ARM C Compiler, ADS1.2 [Build 805]
ARM/Thumb Macro Assembler vsn ADS1.2 [Build 805]
ARM Linker, ADS1.2 [Build 805]
Header size: 52 bytes (0x34)
Program header entry size: 32 bytes (0x20)
Section header entry size: 40 bytes (0x28)
Program header entries: 1
Section header entries: 9
Program header offset: 7448 (0x00001d18)
Section header offset: 7480 (0x00001d38)
Section header string table index: 8
========================================================================
** Program header #0 (PT_LOAD) [PF_X + PF_W + PF_R + PF_ARM_ENTRY]
Size : 4348 bytes (2184 bytes in file)
Virtual address: 0x00008000
========================================================================
** Section #1 'ER_RO' (SHT_PROGBITS) [SHF_ALLOC + SHF_EXECINSTR]
Size : 2184 bytes (alignment 4)
Address: 0x00008000
$a
asm_code
0x00008000: e3a000d2 .... MOV r0,#0xd2
0x00008004: e12ff000 ../. MSR CPSR_cxsf,r0
0x00008008: e3a0da70 p... MOV r13,#0x70000
0x0000800c: e3a000d3 .... MOV r0,#0xd3
0x00008010: e12ff000 ../. MSR CPSR_cxsf,r0
0x00008014: e3a0da80 .... MOV r13,#0x80000
0x00008018: e3a00053 S... MOV r0,#0x53
0x0000801c: e121f000 ..!. MSR CPSR_c,r0
0x00008020: ea000007 .... B __main ; 0x8044
irq_handler
0x00008024: e24ee004 ..N. SUB r14,r14,#4
0x00008028: e92d5fff ._-. STMFD r13!,{r0-r12,r14}
0x0000802c: e14f4000 .@O. MRS r4,SPSR
0x00008030: e92d0010 ..-. STMFD r13!,{r4}
0x00008034: eb0001e8 .... BL do_irq ; 0x87dc
0x00008038: e8bd0010 .... LDMFD r13!,{r4}
0x0000803c: e16ff004 ..o. MSR SPSR_cxsf,r4
0x00008040: e8fd9fff .... LDMFD r13!,{r0-r12,pc}^
__main
!!!
0x00008044: e28f8090 .... ADD r8,pc,#0x90 ; #0x80dc
0x00008048: e898000f .... LDMIA r8,{r0-r3}
0x0000804c: e0800008 .... ADD r0,r0,r8
0x00008050: e0811008 .... ADD r1,r1,r8
0x00008054: e0822008 . .. ADD r2,r2,r8
0x00008058: e0833008 .0.. ADD r3,r3,r8
0x0000805c: e240b001 ..@. SUB r11,r0,#1
0x00008060: e242c001 ..B. SUB r12,r2,#1
_move_region
0x00008064: e1500001 ..P. CMP r0,r1
0x00008068: 0a00000e .... BEQ _zero_region ; 0x80a8
0x0000806c: e8b00070 p... LDMIA r0!,{r4-r6}
0x00008070: e1540005 ..T. CMP r4,r5
0x00008074: 0afffffa .... BEQ _move_region ; 0x8064
0x00008078: e3140001 .... TST r4,#1
0x0000807c: 1084400b .@.. ADDNE r4,r4,r11
0x00008080: e3150001 .... TST r5,#1
0x00008084: 1085500b .P.. ADDNE r5,r5,r11
0x00008088: e3150002 .... TST r5,#2
0x0000808c: 10855009 .P.. ADDNE r5,r5,r9
0x00008090: e3c55003 .P.. BIC r5,r5,#3
_move_loop
0x00008094: e2566004 .`V. SUBS r6,r6,#4
0x00008098: 24947004 .p.$ LDRCS r7,[r4],#4
0x0000809c: 24857004 .p.$ STRCS r7,[r5],#4
0x000080a0: 8afffffb .... BHI _move_loop ; 0x8094
0x000080a4: eaffffee .... B _move_region ; 0x8064
_zero_region
0x000080a8: e1520003 ..R. CMP r2,r3
0x000080ac: 0b000051 Q... BLEQ __rt_entry ; 0x81f8
0x000080b0: e3a07000 .p.. MOV r7,#0
0x000080b4: e8b20030 0... LDMIA r2!,{r4,r5}
0x000080b8: e3140001 .... TST r4,#1
0x000080bc: 1084400c .@.. ADDNE r4,r4,r12
0x000080c0: e3140002 .... TST r4,#2
0x000080c4: 10844009 .@.. ADDNE r4,r4,r9
0x000080c8: e3c44003 .@.. BIC r4,r4,#3
_zero_loop
0x000080cc: e2555004 .PU. SUBS r5,r5,#4
0x000080d0: 24847004 .p.$ STRCS r7,[r4],#4
0x000080d4: 8afffffc .... BHI _zero_loop ; 0x80cc
0x000080d8: eafffff2 .... B _zero_region ; 0x80a8
_region_table
$d
0x000080dc: 00000770 p... DCD 1904
0x000080e0: 00000794 .... DCD 1940
0x000080e4: 00000794 .... DCD 1940
0x000080e8: 000007ac .... DCD 1964
int0_hooker
$a
.text
0x000080ec: e1a0f00e .... MOV pc,r14
timer_hooker
0x000080f0: e1a0f00e .... MOV pc,r14
uart0_hooker
0x000080f4: e92d4008 .@-. STMFD r13!,{r3,r14}
0x000080f8: eb0000a8 .... BL beep_on ; 0x83a0
0x000080fc: e3a01000 .... MOV r1,#0
0x00008100: e3a00000 .... MOV r0,#0
0x00008104: e2800001 .... ADD r0,r0,#1
0x00008108: e3500b40 @.P. CMP r0,#0x10000
0x0000810c: bafffffc .... BLT 0x8104
0x00008110: e2811001 .... ADD r1,r1,#1
0x00008114: e351000a ..Q. CMP r1,#0xa
0x00008118: bafffff8 .... BLT 0x8100
0x0000811c: e8bd4008 .@.. LDMFD r13!,{r3,r14}
0x00008120: ea0000a4 .... B beep_off ; 0x83b8
main
0x00008124: e92d4010 .@-. STMFD r13!,{r4,r14}
0x00008128: e3a04000 .@.. MOV r4,#0
0x0000812c: e59f00c8 .... LDR r0,0x81fc
0x00008130: eb0001ba .... BL install_irq_handler ; 0x8820
0x00008134: e59f00c4 .... LDR r0,0x8200
0x00008138: eb0000c5 .... BL timer_install_irq_hooker ; 0x8454
0x0000813c: e59f00c0 .... LDR r0,0x8204
0x00008140: eb0000f7 .... BL int0_install_irq_hooker ; 0x8524
0x00008144: e59f00bc .... LDR r0,0x8208
0x00008148: eb000135 5... BL uart0_install_irq_hooker ; 0x8624
0x0000814c: eb000194 .... BL clear_irq_pending ; 0x87a4
0x00008150: e3a00000 .... MOV r0,#0
0x00008154: eb000198 .... BL unmask_irq ; 0x87bc
0x00008158: e3a00004 .... MOV r0,#4
0x0000815c: eb000196 .... BL unmask_irq ; 0x87bc
0x00008160: e3a00005 .... MOV r0,#5
0x00008164: eb000194 .... BL unmask_irq ; 0x87bc
0x00008168: e3a0000a .... MOV r0,#0xa
0x0000816c: eb000192 .... BL unmask_irq ; 0x87bc
0x00008170: e3a00053 S... MOV r0,#0x53
0x00008174: e12ff000 ../. MSR CPSR_cxsf,r0
0x00008178: eb000023 #... BL led_init ; 0x820c
0x0000817c: eb000081 .... BL beep_init ; 0x8388
0x00008180: eb0000d6 .... BL int0_init ; 0x84e0
0x00008184: eb0000ee .... BL int0_enable_irq ; 0x8544
0x00008188: eb0000a5 .... BL timer_init ; 0x8424
0x0000818c: eb0000bb .... BL timer_enable_irq ; 0x8480
0x00008190: eb000103 .... BL uart0_init ; 0x85a4
0x00008194: eb000143 C... BL uart0_enable_recv_irq ; 0x86a8
0x00008198: eb00014f O... BL uart0_enable_send_irq ; 0x86dc
0x0000819c: ea000011 .... B 0x81e8
0x000081a0: eb000115 .... BL uart0_getchar ; 0x85fc
0x000081a4: e350000d ..P. CMP r0,#0xd
0x000081a8: 1a000003 .... BNE 0x81bc
0x000081ac: e3a0000d .... MOV r0,#0xd
0x000081b0: eb000102 .... BL uart0_putchar ; 0x85c0
0x000081b4: e3a0000a .... MOV r0,#0xa
0x000081b8: ea000009 .... B 0x81e4
0x000081bc: e3500008 ..P. CMP r0,#8
0x000081c0: 1a000005 .... BNE 0x81dc
0x000081c4: e3a00008 .... MOV r0,#8
0x000081c8: eb0000fc .... BL uart0_putchar ; 0x85c0
0x000081cc: e3a00020 ... MOV r0,#0x20
0x000081d0: eb0000fa .... BL uart0_putchar ; 0x85c0
0x000081d4: e3a00008 .... MOV r0,#8
0x000081d8: ea000001 .... B 0x81e4
0x000081dc: e3500000 ..P. CMP r0,#0
0x000081e0: 0a000000 .... BEQ 0x81e8
0x000081e4: eb0000f5 .... BL uart0_putchar ; 0x85c0
0x000081e8: e2944001 .@.. ADDS r4,r4,#1
0x000081ec: 1affffeb .... BNE 0x81a0
0x000081f0: e3a00000 .... MOV r0,#0
0x000081f4: e8bd8010 .... LDMFD r13!,{r4,pc}
__rt_entry
0x000081f8: eaffffc9 .... B main ; 0x8124
$d
$f
0x000081fc: 00008024 $... DCD 32804
$f
0x00008200: 000080f0 .... DCD 33008
$f
0x00008204: 000080ec .... DCD 33004
$f
0x00008208: 000080f4 .... DCD 33012
led_init
$a
.text
0x0000820c: e59f0170 p... LDR r0,0x8384
0x00008210: e5901000 .... LDR r1,[r0,#0]
0x00008214: e3811b80 .... ORR r1,r1,#0x20000
0x00008218: e3811070 p... ORR r1,r1,#0x70
0x0000821c: e5801000 .... STR r1,[r0,#0]
0x00008220: e5901008 .... LDR r1,[r0,#8]
0x00008224: e3c11b80 .... BIC r1,r1,#0x20000
0x00008228: e3c11070 p... BIC r1,r1,#0x70
0x0000822c: e5801008 .... STR r1,[r0,#8]
0x00008230: e3a00000 .... MOV r0,#0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -