⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 interrupt.cod

📁 EP9315的BSP包(WINCE下的BSP,内有各种驱动的详细的代码)
💻 COD
📖 第 1 页 / 共 5 页
字号:

  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 + -