📄 interrupt.cod
字号:
000c8 e59f117c ldr r1, [pc, #0x17C]
000cc e3a00501 mov r0, #1, 10
; 618 : gdwInterruptMask2 &= ~INT2_UART2;
000d0 e59f2170 ldr r2, [pc, #0x170]
000d4 e5810000 str r0, [r1]
000d8 e5920000 ldr r0, [r2]
000dc e3c01501 bic r1, r0, #1, 10
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
000e0 e5821000 str r1, [r2]
; 679 : break;
000e4 ea000053 b |$L14082|
000e8 |$L14095|
; 619 : break;
; 620 :
; 621 : case SYSINTR_UART3:
; 622 : *VIC2_INTCLEAR = INT2_UART3;
000e8 e59f115c ldr r1, [pc, #0x15C]
000ec e3a00502 mov r0, #2, 10
; 623 : gdwInterruptMask2 &= ~INT2_UART3;
000f0 e59f2150 ldr r2, [pc, #0x150]
000f4 e5810000 str r0, [r1]
000f8 e5920000 ldr r0, [r2]
000fc e3c01502 bic r1, r0, #2, 10
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
00100 e5821000 str r1, [r2]
; 679 : break;
00104 ea00004b b |$L14082|
00108 |$L14097|
; 624 : break;
; 625 :
; 626 : case SYSINTR_KEYBOARD:
; 627 : *VIC1_INTCLEAR = INT1_KEYPAD;
00108 e59f1148 ldr r1, [pc, #0x148]
0010c e3a00202 mov r0, #2, 4
; 628 : gdwInterruptMask1 &= ~INT1_KEYPAD;
00110 e59f2144 ldr r2, [pc, #0x144]
00114 e5810000 str r0, [r1]
00118 e5920000 ldr r0, [r2]
0011c e3c01202 bic r1, r0, #2, 4
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
00120 e5821000 str r1, [r2]
; 679 : break;
00124 ea000043 b |$L14082|
00128 |$L14099|
; 629 : break;
; 630 :
; 631 : case SYSINTR_SPI:
; 632 : *VIC2_INTCLEAR = INT2_SPI;
00128 e59f111c ldr r1, [pc, #0x11C]
0012c e3a00602 mov r0, #2, 12
; 633 : gdwInterruptMask2 &= ~INT2_SPI;
00130 e59f2110 ldr r2, [pc, #0x110]
00134 e5810000 str r0, [r1]
00138 e5920000 ldr r0, [r2]
0013c e3c01602 bic r1, r0, #2, 12
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
00140 e5821000 str r1, [r2]
; 679 : break;
00144 ea00003b b |$L14082|
00148 |$L14101|
; 634 : break;
; 635 :
; 636 : case SYSINTR_RTC_ALARM:
; 637 : *VIC2_INTCLEAR = INT2_RTC;
; 638 : gdwInterruptMask2 &= ~INT2_RTC;
00148 e59f20f8 ldr r2, [pc, #0xF8]
0014c e59f10f8 ldr r1, [pc, #0xF8]
00150 |$L14269|
00150 e3a00020 mov r0, #0x20
00154 e5810000 str r0, [r1]
00158 e5920000 ldr r0, [r2]
0015c e3c01020 bic r1, r0, #0x20
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
00160 e5821000 str r1, [r2]
; 679 : break;
00164 ea000033 b |$L14082|
00168 |$L14103|
; 639 : break;
; 640 :
; 641 : case SYSINTR_DMA0:
; 642 : case SYSINTR_DMA1:
; 643 : case SYSINTR_DMA2:
; 644 : case SYSINTR_DMA3:
; 645 : case SYSINTR_DMA4:
; 646 : case SYSINTR_DMA5:
; 647 : case SYSINTR_DMA6:
; 648 : case SYSINTR_DMA7:
; 649 : case SYSINTR_DMA8:
; 650 : case SYSINTR_DMA9:
; 651 : *VIC1_INTCLEAR = INT1_DMAM2P0<< (idInt - SYSINTR_DMA0);
00168 e244101f sub r1, r4, #0x1F
0016c e59f20e4 ldr r2, [pc, #0xE4]
00170 e3a03080 mov r3, #0x80
00174 e1a00113 mov r0, r3, lsl r1
00178 e5820000 str r0, [r2]
; 652 : gdwInterruptMask1 &= ~(INT1_DMAM2P0<< (idInt - SYSINTR_DMA0));
0017c e59f20d8 ldr r2, [pc, #0xD8]
00180 e5920000 ldr r0, [r2]
00184 e1c01113 bic r1, r0, r3, lsl r1
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
00188 e5821000 str r1, [r2]
; 679 : break;
0018c ea000029 b |$L14082|
00190 |$L14105|
; 653 : break;
; 654 : case SYSINTR_TOUCH:
; 655 : *VIC1_INTCLEAR = INT1_TOUCH;
00190 e59f10c0 ldr r1, [pc, #0xC0]
00194 e3a00101 mov r0, #1, 2
; 656 : gdwInterruptMask1 &= ~INT1_TOUCH;
00198 e59f20bc ldr r2, [pc, #0xBC]
0019c e5810000 str r0, [r1]
001a0 e5920000 ldr r0, [r2]
001a4 e3c01101 bic r1, r0, #1, 2
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
001a8 e5821000 str r1, [r2]
; 679 : break;
001ac ea000021 b |$L14082|
001b0 |$L14107|
; 657 : break;
; 658 :
; 659 : case SYSINTR_TIMER2:
; 660 : *VIC1_INTCLEAR = INT1_TIMER2;
; 661 : gdwInterruptMask1 &= ~INT1_TIMER2;
001b0 e59f20a4 ldr r2, [pc, #0xA4]
001b4 e59f109c ldr r1, [pc, #0x9C]
; 662 : break;
001b8 eaffffe4 b |$L14269|
001bc |$L14109|
; 663 :
; 664 : case SYSINTR_IR:
; 665 : *VIC2_INTCLEAR = INT2_IRDA;
001bc e59f1088 ldr r1, [pc, #0x88]
001c0 e3a00040 mov r0, #0x40
; 666 : gdwInterruptMask2 &= ~INT2_IRDA;
001c4 e59f207c ldr r2, [pc, #0x7C]
001c8 e5810000 str r0, [r1]
001cc e5920000 ldr r0, [r2]
001d0 e3c01040 bic r1, r0, #0x40
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
001d4 e5821000 str r1, [r2]
; 679 : break;
001d8 ea000016 b |$L14082|
001dc |$L14111|
; 667 : break;
; 668 :
; 669 : case SYSINTR_IDE:
; 670 : NKDbgPrintfW(L"OEMInterruptDisable: SYSINTR_IDE");
001dc e59f0070 ldr r0, [pc, #0x70]
001e0 eb000000 bl NKDbgPrintfW
; 671 : *VIC2_INTCLEAR = INT2_EXT3;
001e4 e59f3060 ldr r3, [pc, #0x60]
; 672 : gdwInterruptMask2 &= ~INT2_EXT3;
001e8 e59f2058 ldr r2, [pc, #0x58]
001ec e3a00c01 mov r0, #1, 24
001f0 e5830000 str r0, [r3]
001f4 e5920000 ldr r0, [r2]
001f8 e3c01c01 bic r1, r0, #1, 24
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
001fc e5821000 str r1, [r2]
; 679 : break;
00200 ea00000c b |$L14082|
00204 |$L14114|
; 673 : break;
; 674 :
; 675 : case SYSINTR_PCMCIA_LEVEL:
; 676 : NKDbgPrintfW(L"OEMInterruptDisable: SYSINTR_PCMCIA_LEVEL");
00204 e59f0044 ldr r0, [pc, #0x44]
00208 eb000000 bl NKDbgPrintfW
; 677 : *VIC2_INTCLEAR = INT2_GPIO6;
0020c e59f3038 ldr r3, [pc, #0x38]
; 678 : gdwInterruptMask2 &= ~INT2_GPIO6;
00210 e59f2030 ldr r2, [pc, #0x30]
00214 e3a00802 mov r0, #2, 16
00218 e5830000 str r0, [r3]
0021c e5920000 ldr r0, [r2]
00220 e3c01802 bic r1, r0, #2, 16
00224 e5821000 str r1, [r2]
; 679 : break;
00228 ea000002 b |$L14082|
0022c |$L14117|
; 680 :
; 681 : default:
; 682 : NKDbgPrintfW(L"OEMInterruptDisable: Unknown Interrupt #%02d\r\n", idInt);
0022c e59f0010 ldr r0, [pc, #0x10]
00230 e1a01004 mov r1, r4
00234 eb000000 bl NKDbgPrintfW
00238 |$L14082|
; 683 : break;
; 684 :
; 685 : }
; 686 :
; 687 : INTERRUPTS_ON();
00238 eb000000 bl INTERRUPTS_ON
; 688 :
; 689 : return;
; 690 : }
0023c e8bd4010 ldmia sp!, {r4, lr}
00240 e12fff1e bx lr
00244 |$L14276|
00244 00000000 DCD |??_C@_1FO@BJCM@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@|
00248 00000000 DCD |gdwInterruptMask2|
0024c b00c0014 DCD 0xb00c0014
00250 00000000 DCD |??_C@_1FE@CMMN@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@|
00254 00000000 DCD |??_C@_1EC@OJBB@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAi?$AAs?$AAa?$AAb?$AAl?$AAe?$AA?3@|
00258 b00b0014 DCD 0xb00b0014
0025c 00000000 DCD |gdwInterruptMask1|
00260 |$M14273|
ENDP ; |OEMInterruptDisable|
EXPORT |OEMInterruptDone|
EXPORT |??_C@_1FI@JDEI@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAo?$AAn?$AAe?$AA?3?$AA?5?$AAU?$AAn@| [ DATA ] ; `string'
00000 AREA |.text| { |OEMInterruptDone| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$OEMInterruptDone|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMInterruptDone| } ; comdat associative
|$T14286| DCD |OEMInterruptDone|
DCD 0x40004701
00000 AREA |.rdata| { |??_C@_1FI@JDEI@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAo?$AAn?$AAe?$AA?3?$AA?5?$AAU?$AAn@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FI@JDEI@?$AAO?$AAE?$AAM?$AAI?$AAn?$AAt?$AAe?$AAr?$AAr?$AAu?$AAp?$AAt?$AAD?$AAo?$AAn?$AAe?$AA?3?$AA?5?$AAU?$AAn@| DCB "O"
DCB 0x0, "E", 0x0, "M", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "e"
DCB 0x0, "r", 0x0, "r", 0x0, "u", 0x0, "p", 0x0, "t", 0x0, "D"
DCB 0x0, "o", 0x0, "n", 0x0, "e", 0x0, ":", 0x0, " ", 0x0, "U"
DCB 0x0, "n", 0x0, "k", 0x0, "n", 0x0, "o", 0x0, "w", 0x0, "n"
DCB 0x0, " ", 0x0, "I", 0x0, "n", 0x0, "t", 0x0, "e", 0x0, "r"
DCB 0x0, "r", 0x0, "u", 0x0, "p", 0x0, "t", 0x0, " ", 0x0, "#"
DCB 0x0, "%", 0x0, "0", 0x0, "2", 0x0, "d", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |OEMInterruptDone| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |OEMInterruptDone| PROC
; 711 : {
00000 e92d4010 stmdb sp!, {r4, lr}
00004 |$M14284|
00004 e1a04000 mov r4, r0
; 712 :
; 713 : INTERRUPTS_OFF();
00008 eb000000 bl INTERRUPTS_OFF
; 714 :
; 715 : // NOTE: we expect the interrupt to be turned off at the device. The
; 716 : // state isn't latched in any board-level registers.
; 717 :
; 718 : // Enable interrupt.
; 719 : //OEMInterruptEnable(idInt, NULL, 0);
; 720 :
; 721 : switch (idInt)
; 722 : {
0000c e244300d sub r3, r4, #0xD
00010 e353001b cmp r3, #0x1B
00014 8a000036 bhi |$L14168|
00018 e28f0004 add r0, pc, #4
0001c e7d00003 ldrb r0, [r0, +r3]
00020 e08ff000 add pc, pc, r0
00024 |$L14283|
00024 |$L14282|
00024 6cf9 DCB 0x6c
00025 ccf9 DCB 0xcc
00026 ccf9 DCB 0xcc
00027 40f9 DCB 0x40
00028 8cf9 DCB 0x8c
00029 ccf9 DCB 0xcc
0002a b4f9 DCB 0xb4
0002b bcf9 DCB 0xbc
0002c ccf9 DCB 0xcc
0002d acf9 DCB 0xac
0002e 18f9 DCB 0x18
0002f 20f9 DCB 0x20
00030 28f9 DCB 0x28
00031 30f9 DCB 0x30
00032 38f9 DCB 0x38
00033 50f9 DCB 0x50
00034 9cf9 DCB 0x9c
00035 ccf9 DCB 0xcc
00036 74f9 DCB 0x74
00037 74f9 DCB 0x74
00038 74f9 DCB 0x74
00039 74f9 DCB 0x74
0003a 74f9 DCB 0x74
0003b 74f9 DCB 0x74
0003c 74f9 DCB 0x74
0003d 74f9 DCB 0x74
0003e 74f9 DCB 0x74
0003f 74f9 DCB 0x74
00040 |$L14126|
; 723 : case SYSINTR_ETHER:
; 724 : //EdbgOutputDebugString("OEMInterruptDisable:SYSINTR_ETHER\n");
; 725 : *VIC2_INTENABLE = INT2_ETHERNET;
00040 e3a00080 mov r0, #0x80
; 726 : ASSERT(gdwInterruptMask2 & INT2_ETHERNET);
; 727 : break;
00044 ea000027 b |$L14281|
00048 |$L14129|
; 728 :
; 729 : case SYSINTR_USB:
; 730 : *VIC2_INTENABLE = INT2_USB;
00048 e3a00401 mov r0, #1, 8
; 731 : ASSERT(gdwInterruptMask2 & INT2_USB);
; 732 : break;
0004c ea000025 b |$L14281|
00050 |$L14132|
; 733 :
; 734 : case SYSINTR_UART1:
; 735 : *VIC2_INTENABLE = INT2_UART1;
00050 e3a00601 mov r0, #1, 12
; 736 : ASSERT(gdwInterruptMask2 & INT2_UART1);
; 737 : break;
00054 ea000023 b |$L14281|
00058 |$L14135|
; 738 :
; 739 : case SYSINTR_UART2:
; 740 : *VIC2_INTENABLE = INT2_UART2;
00058 e3a00501 mov r0, #1, 10
; 741 : ASSERT(gdwInterruptMask2 & INT2_UART2);
; 742 : break;
0005c ea000021 b |$L14281|
00060 |$L14138|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -