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

📄 interrupt.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
  00120		 |$L15601|

; 1216 : 
; 1217 : #ifdef EP93XX_SIMULAT_PS2_KBD
; 1218 : 
; 1219 :         case SYSINTR_PS2_PORT:
; 1220 : 
; 1221 : 			//RETAILMSG(1, (TEXT("SYSINTR_PS2_PORT\r\n")));
; 1222 :             *pulInterruptMask1  = 0;
; 1223 :             *pulInterruptMask2  = 0; // the PS2 KeyBoard driver only  see a pseudo interrupt. so don't care the interrupt.
; 1224 :             break;
; 1225 : 
; 1226 : #endif
; 1227 : 
; 1228 : 
; 1229 : #ifdef   EP93XX_SD_MMC
; 1230 : 
; 1231 : 	 case SYSINTR_CARD_RESPONSE:
; 1232 : 		 //RETAILMSG(1,(L"SD_MMC response done\n"));
; 1233 :            *pulInterruptMask1  = 0;
; 1234 :             *pulInterruptMask2  = INT2_EXT1;
; 1235 :             break;
; 1236 : 
; 1237 : 	 case SYSINTR_CARD_DETECT:
; 1238 :             *pulInterruptMask1  = 0;
; 1239 :             *pulInterruptMask2  = INT2_EXT1;
; 1240 :             break;	
; 1241 : 
; 1242 : #elif  EP93XX_MS_CARD
; 1243 : 
; 1244 : 	 case SYSINTR_CARD_RESPONSE:
; 1245 : 
; 1246 : 		    *pulInterruptMask1  = 0;
; 1247 :             *pulInterruptMask2  = INT2_EXT2;
; 1248 :             break;
; 1249 : 
; 1250 : 	 case SYSINTR_CARD_DETECT:
; 1251 :             *pulInterruptMask1  = 0;
; 1252 :             *pulInterruptMask2  = INT2_EXT2;
; 1253 :             break;
; 1254 : #endif
; 1255 : 
; 1256 : #ifdef EP93XX_USB_SLAVE
; 1257 : 
; 1258 :         case SYSINTR_USBSLAVE:
; 1259 : 
; 1260 : 			//RETAILMSG(1, (TEXT("SYSINTR_PS2_PORT\r\n")));
; 1261 :             *pulInterruptMask1  = 0;
; 1262 :             *pulInterruptMask2  = INT2_EXT0; // the PS2 KeyBoard driver only  see a pseudo interrupt. so don't care the interrupt.
; 1263 :             break;
; 1264 : 
; 1265 : #endif
; 1266 : 
; 1267 :         case SYSINTR_PCMCIA_LEVEL:
; 1268 :             *pulInterruptMask1  = 0;

  00120	e3a03000	 mov         r3, #0
  00124	e5813000	 str         r3, [r1]

; 1269 :             *pulInterruptMask2  = INT2_PCMCIA_IRQ;

  00128	e3a03802	 mov         r3, #2, 16

; 1270 :             break;

  0012c	ea000010	 b           |$L15794|
  00130		 |$L15602|

; 1271 :         case SYSINTR_PCMCIA_STATE:
; 1272 :             *pulInterruptMask1  = INT1_PCMCIA_CD1 | INT1_PCMCIA_CD2 | INT1_PCMCIA_BVD1;

  00130	e3a03607	 mov         r3, #7, 12
  00134	e5813000	 str         r3, [r1]

; 1273 :             *pulInterruptMask2  = INT2_PCMCIA_BVD2;

  00138	e3a03902	 mov         r3, #2, 18

; 1274 :             break;

  0013c	ea00000c	 b           |$L15794|
  00140		 |$L15603|

; 1275 :     
; 1276 :         case SYSINTR_DMA_M2M0:
; 1277 :             *pulInterruptMask1  = INT1_DMAM2M0;

  00140	e3a03802	 mov         r3, #2, 16

; 1278 :             *pulInterruptMask2  = 0;
; 1279 :             break;

  00144	ea000004	 b           |$L15795|
  00148		 |$L15604|

; 1280 :         case SYSINTR_DMA_M2M1:
; 1281 :             *pulInterruptMask1  = INT1_DMAM2M1;

  00148	e3a03701	 mov         r3, #1, 14

; 1282 :             *pulInterruptMask2  = 0;
; 1283 :             break;

  0014c	ea000002	 b           |$L15795|
  00150		 |$L15605|

; 1284 : 
; 1285 :         case SYSINTR_PIO_PLAYBACK:
; 1286 :             *pulInterruptMask1  = INT1_UNUSED1;

  00150	e3a03001	 mov         r3, #1

; 1287 :             *pulInterruptMask2  = 0;
; 1288 :             break;

  00154	ea000000	 b           |$L15795|
  00158		 |$L15606|

; 1289 : 
; 1290 :         case SYSINTR_PIO_RECORD:
; 1291 :             *pulInterruptMask1  = INT1_UNUSED2;

  00158	e3a03002	 mov         r3, #2
  0015c		 |$L15795|
  0015c	e5813000	 str         r3, [r1]

; 1292 :             *pulInterruptMask2  = 0;

  00160	e3a03000	 mov         r3, #0

; 1293 :             break;

  00164	ea000002	 b           |$L15794|
  00168		 |$L15607|

; 1297 :             bRet = FALSE;

  00168	e3a04000	 mov         r4, #0
  0016c		 |$L15587|

; 1294 :         default:
; 1295 :             *pulInterruptMask1  = 0;

  0016c	e3a03000	 mov         r3, #0
  00170	e5813000	 str         r3, [r1]
  00174		 |$L15794|

; 1296 :             *pulInterruptMask2  = 0;

  00174	e5823000	 str         r3, [r2]

; 1297 :             bRet = FALSE;

  00178		 |$L15584|

; 1298 :             break;
; 1299 :     }
; 1300 :     return bRet;

  00178	e1a00004	 mov         r0, r4

; 1301 : }

  0017c	e8bd4010	 ldmia       sp!, {r4, lr}
  00180	e12fff1e	 bx          lr
  00184		 |$M15799|

			 ENDP  ; |SysIntrNumToInterruptMask|

	EXPORT	|OEMInterruptEnable|
	IMPORT	|INTERRUPTS_ON|
	IMPORT	|INTERRUPTS_OFF|

  00000			 AREA	 |.text| { |OEMInterruptEnable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000			 AREA	 |.pdata$$OEMInterruptEnable|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMInterruptEnable| } ; comdat associative
|$T15817| DCD	|$L15816|
	DCD	0x40008c02
; Function compile flags: /Ogsy

  00000			 AREA	 |.text| { |OEMInterruptEnable| }, CODE, ARM, SELECTION=1 ; comdat noduplicate

  00000		 |OEMInterruptEnable| PROC

; 1327 : {

  00000		 |$L15816|
  00000	e92d4ff0	 stmdb       sp!, {r4 - r11, lr}
  00004	e24dd010	 sub         sp, sp, #0x10
  00008		 |$M15814|
  00008	e58d2000	 str         r2, [sp]
  0000c	e1a0a001	 mov         r10, r1
  00010	e1a07000	 mov         r7, r0

; 1328 :     BOOL    bRet = TRUE;
; 1329 :     ULONG   ulIntMask1, ulIntMask2;
; 1330 : 
; 1331 : 
; 1332 :     bRet = SysIntrNumToInterruptMask(idInt, &ulIntMask1, &ulIntMask2);

  00014	e28d2008	 add         r2, sp, #8
  00018	e28d1004	 add         r1, sp, #4
  0001c	eb000000	 bl          SysIntrNumToInterruptMask
  00020	e58d000c	 str         r0, [sp, #0xC]

; 1333 :   
; 1334 :     INTERRUPTS_OFF();

  00024	eb000000	 bl          INTERRUPTS_OFF

; 1335 : 
; 1336 : 
; 1337 :     if(ulIntMask1)

  00028	e59de004	 ldr         lr, [sp, #4]
  0002c	e59f91d8	 ldr         r9, [pc, #0x1D8]
  00030	e59f41f4	 ldr         r4, [pc, #0x1F4]
  00034	e35e0000	 cmp         lr, #0

; 1338 :     {
; 1339 :         *VIC1_INTENABLE     = ulIntMask1;

  00038	1589e000	 strne       lr, [r9]

; 1340 :         gdwInterruptMask1   |= ulIntMask1;

  0003c	15943000	 ldrne       r3, [r4]

; 1341 :     }
; 1342 : 
; 1343 :     if(ulIntMask2)

  00040	e59f81e0	 ldr         r8, [pc, #0x1E0]
  00044	e59f51d8	 ldr         r5, [pc, #0x1D8]
  00048	1183300e	 orrne       r3, r3, lr
  0004c	e59de008	 ldr         lr, [sp, #8]
  00050	15843000	 strne       r3, [r4]

; 1344 :     {
; 1345 :         *VIC2_INTENABLE     = ulIntMask2;
; 1346 :         gdwInterruptMask2   |= ulIntMask2;
; 1347 :     }
; 1348 : 
; 1349 :     if(idInt ==SYSINTR_SPI)
; 1350 :     {
; 1351 :         fPS2Int             = 0;
; 1352 :     }
; 1353 : 
; 1354 :     if((idInt == SYSINTR_PIO_PLAYBACK) && (cbData == sizeof(PIOBufferParameters)) )

  00054	e59fb1c4	 ldr         r11, [pc, #0x1C4]
  00058	e35e0000	 cmp         lr, #0
  0005c	1588e000	 strne       lr, [r8]
  00060	15953000	 ldrne       r3, [r5]
  00064	e59f61b0	 ldr         r6, [pc, #0x1B0]
  00068	1183300e	 orrne       r3, r3, lr
  0006c	15853000	 strne       r3, [r5]
  00070	e357001c	 cmp         r7, #0x1C
  00074	059f319c	 ldreq       r3, [pc, #0x19C]
  00078	03a02000	 moveq       r2, #0
  0007c	05832000	 streq       r2, [r3]
  00080	e59f2188	 ldr         r2, [pc, #0x188]
  00084	e3570024	 cmp         r7, #0x24
  00088	1a000031	 bne         |$L15631|
  0008c	e59d3000	 ldr         r3, [sp]
  00090	e353000c	 cmp         r3, #0xC
  00094	1a000054	 bne         |$L15642|

; 1355 :     {
; 1356 :         PIOBufferParameters *pPIO = (PIOBufferParameters *)pvData;
; 1357 : 
; 1358 :         sPlayBack.pulPosition   = sPlayBack.pulBuffer = pPIO->pulBuffer = gulTransmitBuffer;

  00098	e59fe174	 ldr         lr, [pc, #0x174]

; 1359 :         sPlayBack.ulBufferSize  = pPIO->ulBufferSize;
; 1360 :         sPlayBack.pulBufferEnd  = sPlayBack.pulBuffer + (sPlayBack.ulBufferSize>>2);
; 1361 :         sPlayBack.pulBufferHalf = sPlayBack.pulBuffer + (sPlayBack.ulBufferSize>>3);
; 1362 :         sPlayBack.bEnabled      = FALSE;
; 1363 :         sPlayBack.bIntEnabled   = TRUE;
; 1364 :         gbAC97                  = pPIO->bAC97;
; 1365 : 
; 1366 :         if(!sRecord.bIntEnabled )

  0009c	e59f916c	 ldr         r9, [pc, #0x16C]
  000a0	e58ae004	 str         lr, [r10, #4]
  000a4	e582e000	 str         lr, [r2]
  000a8	e582e010	 str         lr, [r2, #0x10]
  000ac	e59a1008	 ldr         r1, [r10, #8]
  000b0	e59b0018	 ldr         r0, [r11, #0x18]
  000b4	e1a03121	 mov         r3, r1, lsr #2
  000b8	e1a021a1	 mov         r2, r1, lsr #3
  000bc	e5891004	 str         r1, [r9, #4]
  000c0	e08e3103	 add         r3, lr, r3, lsl #2
  000c4	e1a01009	 mov         r1, r9
  000c8	e5813008	 str         r3, [r1, #8]
  000cc	e08e3102	 add         r3, lr, r2, lsl #2
  000d0	e1a02009	 mov         r2, r9
  000d4	e582300c	 str         r3, [r2, #0xC]
  000d8	e3a03000	 mov         r3, #0
  000dc	e5823014	 str         r3, [r2, #0x14]
  000e0	e3a03001	 mov         r3, #1
  000e4	e59f1114	 ldr         r1, [pc, #0x114]
  000e8	e5823018	 str         r3, [r2, #0x18]
  000ec	e59a3000	 ldr         r3, [r10]
  000f0	e59f9114	 ldr         r9, [pc, #0x114]
  000f4	e3500000	 cmp         r0, #0
  000f8	e5813000	 str         r3, [r1]
  000fc	1a00003a	 bne         |$L15642|

; 1367 :         {
; 1368 :             if(pPIO->bAC97)

  00100	e59a3000	 ldr         r3, [r10]
  00104	e3530000	 cmp         r3, #0
  00108	0a000009	 beq         |$L15628|
  0010c		 |$L15813|

; 1369 :             {
; 1370 :                 gdwInterruptMask1       |= INT1_AAC;

  0010c	e5943000	 ldr         r3, [r4]

; 1371 :                 *VIC1_INTSELECT         |= INT1_AAC;

  00110	e59f20f0	 ldr         r2, [pc, #0xF0]

; 1372 :                 *VIC1_INTENABLE         = INT1_AAC;

  00114	e3a01040	 mov         r1, #0x40
  00118	e3833040	 orr         r3, r3, #0x40
  0011c	e5843000	 str         r3, [r4]
  00120	e5923000	 ldr         r3, [r2]
  00124	e3833040	 orr         r3, r3, #0x40
  00128	e5823000	 str         r3, [r2]
  0012c	e5891000	 str         r1, [r9]

; 1373 :             }
; 1374 :             else

  00130	ea00002d	 b           |$L15642|
  00134		 |$L15628|

; 1375 :             {
; 1376 :                 gdwInterruptMask2       |= INT2_SAI;

  00134	e5953000	 ldr         r3, [r5]
  00138	e3833201	 orr         r3, r3, #1, 4
  0013c	e5853000	 str         r3, [r5]

; 1377 :                 *VIC2_INTSELECT         |= INT2_SAI;

  00140	e5963000	 ldr         r3, [r6]
  00144	e3833201	 orr         r3, r3, #1, 4
  00148	e5863000	 str         r3, [r6]

; 1378 :                 *VIC2_INTENABLE         = INT2_SAI;

  0014c	e3a03201	 mov         r3, #1, 4
  00150	e5883000	 str         r3, [r8]
  00154		 |$L15631|

; 1379 :             }
; 1380 :         }
; 1381 :     }
; 1382 : 
; 1383 :     if((idInt == SYSINTR_PIO_RECORD) && (cbData == sizeof(PIOBufferParameters)) )

  00154	e3570025	 cmp         r7, #0x25
  00158	1a000023	 bne         |$L15642|
  0015c	e59d3000	 ldr         r3, [sp]
  00160	e353000c	 cmp         r3, #0xC
  00164	1a000020	 bne         |$L15642|

; 1384 :     {
; 1385 :         PIOBufferParameters *pPIO = (PIOBufferParameters *)pvData;
; 1386 : 
; 1387 :         sRecord.pulPosition     = sRecord.pulBuffer = pPIO->pulBuffer = gulRecieveBuffer;

  00168	e59fe094	 ldr         lr, [pc, #0x94]

; 1388 :         sRecord.ulBufferSize    = pPIO->ulBufferSize;
; 1389 :         sRecord.pulBufferEnd    = sRecord.pulBuffer + (sRecord.ulBufferSize>>2);
; 1390 :         sRecord.pulBufferHalf   = sRecord.pulBuffer + (sRecord.ulBufferSize>>3);
; 1391 :         sRecord.bEnabled        = FALSE;

  0016c	e3a07000	 mov         r7, #0

; 1392 :         sRecord.bIntEnabled     = TRUE;

  00170	e58ae004	 str         lr, [r10, #4]
  00174	e58be000	 str         lr, [r11]
  00178	e58be010	 str         lr, [r11, #0x10]
  0017c	e59a1008	 ldr         r1, [r10, #8]

; 1393 :         gbAC97                  = pPIO->bAC97;
; 1394 : 
; 1395 :         if(!sPlayBack.bIntEnabled)

  00180	e5920018	 ldr         r0, [r2, #0x18]
  00184	e1a03121	 mov         r3, r1, lsr #2
  00188	e08e3103	 add         r3, lr, r3, lsl #2
  0018c	e1a021a1	 mov         r2, r1, lsr #3
  00190	e58b1004	 str         r1, [r11, #4]
  00194	e58b3008	 str         r3, [r11, #8]
  00198	e08e3102	 add         r3, lr, r2, lsl #2
  0019c	e58b300c	 str         r3, [r11, #0xC]
  001a0	e3a03001	 mov         r3, #1
  001a4	e58b7014	 str         r7, [r11, #0x14]
  001a8	e59f2050	 ldr         r2, [pc, #0x50]
  001ac	e58b3018	 str         r3, [r11, #0x18]
  001b0	e59a3000	 ldr         r3, [r10]
  001b4	e3500000	 cmp         r0, #0
  001b8	e5823000	 str         r3, [r2]
  001bc	1a00000a	 bne         |$L15642|

; 1396 :         {
; 1397 :             if(pPIO->bAC97)

  001c0	e59a3000	 ldr         r3, [r10]
  001c4	e3530000	 cmp         r3, #0

; 1398 :             {
; 1399 :                 gdwInterruptMask1   |= INT1_AAC;
; 1400 :                 *VIC1_INTSELECT     |= INT1_AAC;
; 1401 :                 *VIC1_INTENABLE     = INT1_AAC;
; 1402 :             }
; 1403 :             else

  001c8	1affffcf	 bne         |$L15813|

; 1404 :             {
; 1405 :                 gdwInterruptMask2   |= INT2_SAI;

  001cc	e5953000	 ldr         r3, [r5]
  001d0	e3833201	 orr         r3, r3, #1, 4
  001d4	e5853000	 str         r3, [r5]

; 1406 :                 *VIC2_INTSELECT     |= INT2_SAI;

  001d8	e5963000	 ldr         r3, [r6]
  001dc	e3833201	 orr         r3, r3, #1, 4
  001e0	e5863000	 str         r3, [r6]

; 1407 :                 *VIC2_INTENABLE     = INT2_SAI;

  001e4	e3a03201	 mov         r3, #1, 4
  001e8	e5883000	 str         r3, [r8]
  001ec		 |$L15642|

; 1408 :             }
; 1409 :         }
; 1410 :     }
; 1411 : #ifdef EP93XX_SIMULAT_PS2_KBD
; 1412 : 	if( idInt == SYSINTR_PS2_PORT ) //Initialize KeyBoard when driver calls InterruptInitialize( )
; 1413 : 	{
; 1414 : 		int init_edb931xPS2(void);
; 1415 : 
; 1416 :         *VIC2_INTENABLE     = INT2_EXT0;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -