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

📄 interrupt.cod

📁 Ep93XX TionProV2 BSP
💻 COD
📖 第 1 页 / 共 5 页
字号:
; Listing generated by Microsoft (R) Optimizing Compiler Version 13.10.4237 

	TTL	C:\WINCE500\PLATFORM\Ep93xx\Src\Kernel\Hal\Common\.\interrupt.c
	CODE32

  00000			 AREA	 |.drectve|, DRECTVE
	DCB	"-defaultlib:coredll.lib "
	DCB	"-defaultlib:corelibc.lib "

	EXPORT	|gfRTCAlarm| [ DATA ]
	EXPORT	|gdwInterruptMask1| [ DATA ]
	EXPORT	|gdwInterruptMask2| [ DATA ]
	EXPORT	|gfResumeFlag| [ DATA ]

  00000			 AREA	 |.data|, DATA
	 COMMON	|gbAC97|, 0x4

	 COMMON	|gulTransmitBuffer|, 0x4000

	 COMMON	|gulRecieveBuffer|, 0x4000


  00000			 AREA	 |.bss|, NOINIT
|?dwLastTimerValue@?1??TimerInterrupt@@9@9| % 0x4	; `TimerInterrupt'::`2'::dwLastTimerValue
|?dwLastCount@?6??TimerInterrupt@@9@9| % 0x4		; `TimerInterrupt'::`7'::dwLastCount

  00000			 AREA	 |.data|, DATA
	 COMMON	|sPlayBack|, 0x1c

	 COMMON	|sRecord|, 0x1c


  00008			 AREA	 |.bss|, NOINIT
|g_dwLastInterrupt| % 0x4
|gfRTCAlarm| %	0x4

  00000			 AREA	 |.data|, DATA
	 COMMON	|gliRTCAlarmTicks|, 0x8

	 COMMON	|fInterruptFlag|, 0x4


  00010			 AREA	 |.bss|, NOINIT
|gdwInterruptMask2| % 0x4

  00000			 AREA	 |.data|, DATA
	 COMMON	|gdwInterruptWakeMask1|, 0x4

	 COMMON	|gdwInterruptWakeMask2|, 0x4

	 COMMON	|fPS2Int|, 0x4

	 COMMON	|gfSysIntrWakeupMask|, 0x48

	 COMMON	|gdwLastWakeupSource|, 0x4

	 COMMON	|dwTimeValueWhenSuspend|, 0x4

|?bFirstTime@?1??TimerInterrupt@@9@9| DCD 0x1		; `TimerInterrupt'::`2'::bFirstTime
|gfResumeFlag| DCD 0x1
|gdwInterruptMask1| DCD 0x10

  00000			 AREA	 |.rdata|, DATA, READONLY
|EdbgVendorIds| DCW 0x0
	DCW	0x0
	DCD	0x4033
	DCB	0x1
	DCB	0x0
	DCB	"AD", 0x0
	%	3
	DCW	0x1050
	DCW	0x940
	DCD	0x4005
	DCB	0x1
	DCB	0x0
	DCB	"LS", 0x0
	%	3
	DCW	0x1050
	DCW	0x940
	DCD	0x2078
	DCB	0x1
	DCB	0x0
	DCB	"LS", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8029
	DCD	0xc0f0
	DCB	0x1
	DCB	0x0
	DCB	"KS", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8129
	DCD	0x0
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0x900b
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0xd0c9
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x10ec
	DCW	0x8139
	DCD	0xe04c
	DCB	0x4
	DCB	0x0
	DCB	"RT", 0x0
	%	3
	DCW	0x1186
	DCW	0x1300
	DCD	0x50ba
	DCB	0x4
	DCB	0x0
	DCB	"DL", 0x0
	%	3
	DCW	0x100b
	DCW	0x20
	DCD	0xa0cc
	DCB	0x5
	DCB	0x0
	DCB	"NG", 0x0
	%	3
	DCW	0x10b7
	DCW	0x9050
	DCD	0x6008
	DCB	0x6
	DCB	0x0
	DCB	"3C", 0x0
	%	3
	DCW	0x10b7
	DCW	0x9200
	DCD	0x476
	DCB	0x6
	DCB	0x0
	DCB	"3C", 0x0
	%	3
	DCW	0x8086
	DCW	0x1039
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x103a
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x1051
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x1229
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	DCW	0x8086
	DCW	0x2449
	DCD	0x4033
	DCB	0x7
	DCB	0x1
	DCB	"IN", 0x0
	%	3
	EXPORT	|OEMInterruptHandlerFIQ|
; File c:\wince500\platform\ep93xx\src\kernel\hal\common\interrupt.c

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

  00000			 AREA	 |.pdata$$OEMInterruptHandlerFIQ|, PDATA, SELECTION=5, ASSOC=|.text| { |OEMInterruptHandlerFIQ| } ; comdat associative
|$T15770| DCD	|$L15769|
	DCD	0x4000a702
; Function compile flags: /Ogsy

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

  00000		 |OEMInterruptHandlerFIQ| PROC

; 138  : {

  00000		 |$L15769|
  00000	e92d4070	 stmdb       sp!, {r4 - r6, lr}
  00004	e24dd004	 sub         sp, sp, #4
  00008		 |$M15767|

; 139  :     volatile register  ULONG ulTemp;
; 140  :     register    ULONG   *p;
; 141  : 
; 142  : 
; 143  :     // Fake CPUEnterIdle needs to know about interrupt firing.
; 144  :     fInterruptFlag = TRUE;
; 145  : 
; 146  :     if(gbAC97)

  00008	e59f3288	 ldr         r3, [pc, #0x288]
  0000c	e59f2280	 ldr         r2, [pc, #0x280]
  00010	e3a05001	 mov         r5, #1
  00014	e5933000	 ldr         r3, [r3]

; 147  :     {
; 148  :         //register    ULONG   ulAC97Status;
; 149  :         register    ULONG   ulAC97ISR;
; 150  :         register    ULONG   *pAC97DR = (ULONG   *)AC97CH+(AC97I_DR>>2);
; 151  : 
; 152  :         // ulAC97Status = AC97CH[AC97I_SR>>2];
; 153  :         ulAC97ISR = AC97CH[AC97I_ISR>>2];
; 154  :         if(ulAC97ISR & ISR_TIS)

  00018	e59fe270	 ldr         lr, [pc, #0x270]
  0001c	e5825000	 str         r5, [r2]
  00020	e3530000	 cmp         r3, #0
  00024	0a000040	 beq         |$L15376|
  00028	e59f325c	 ldr         r3, [pc, #0x25C]
  0002c	e3a0020b	 mov         r0, #0xB, 4
  00030	e3800722	 orr         r0, r0, #0x22, 14
  00034	e5934000	 ldr         r4, [r3]
  00038	e3140004	 tst         r4, #4
  0003c	0a000019	 beq         |$L15389|

; 155  :         {
; 156  :             //
; 157  :             // Check to see if the transmit buffer is enabled.
; 158  :             //
; 159  :             if(sPlayBack.bEnabled )

  00040	e59f223c	 ldr         r2, [pc, #0x23C]
  00044	e5923014	 ldr         r3, [r2, #0x14]
  00048	e3530000	 cmp         r3, #0
  0004c	0a000013	 beq         |$L15383|

; 160  :             {
; 161  :                 
; 162  :                 p = sPlayBack.pulPosition;

  00050	e5921010	 ldr         r1, [r2, #0x10]

; 163  :                 if(p == sPlayBack.pulBufferHalf)

  00054	e592300c	 ldr         r3, [r2, #0xC]
  00058	e1510003	 cmp         r1, r3

; 164  :                 {
; 165  :                     *VIC1_SOFTINT           = INT1_UNUSED1;
; 166  :                 }
; 167  :                 else if(p >= sPlayBack.pulBufferEnd )

  0005c	0a000004	 beq         |$L15762|
  00060	e5923008	 ldr         r3, [r2, #8]
  00064	e1510003	 cmp         r1, r3
  00068	3a000002	 bcc         |$L15387|

; 168  :                 {
; 169  :                     p = sPlayBack.pulPosition = sPlayBack.pulBuffer;

  0006c	e5921000	 ldr         r1, [r2]
  00070	e5821010	 str         r1, [r2, #0x10]
  00074		 |$L15762|

; 170  :                     *VIC1_SOFTINT           = INT1_UNUSED1;

  00074	e58e5000	 str         r5, [lr]
  00078		 |$L15387|

; 171  :                 }    
; 172  : 
; 173  :                 *pAC97DR = *p++;

  00078	e4913004	 ldr         r3, [r1], #4
  0007c	e5803000	 str         r3, [r0]

; 174  :                 *pAC97DR = *p++;

  00080	e4913004	 ldr         r3, [r1], #4
  00084	e5803000	 str         r3, [r0]

; 175  :                 *pAC97DR = *p++;

  00088	e4913004	 ldr         r3, [r1], #4

; 176  :                 *pAC97DR = *p++;

  0008c	e5803000	 str         r3, [r0]
  00090	e4913004	 ldr         r3, [r1], #4

; 177  : 
; 178  :                 sPlayBack.pulPosition = p;

  00094	e5803000	 str         r3, [r0]
  00098	e5821010	 str         r1, [r2, #0x10]

; 179  :             }
; 180  :             else

  0009c	ea000001	 b           |$L15389|
  000a0		 |$L15383|

; 181  :             {
; 182  :                 *pAC97DR = 0;
; 183  :                 *pAC97DR = 0;
; 184  :                 *pAC97DR = 0;
; 185  :                 *pAC97DR = 0;

  000a0	e3a03000	 mov         r3, #0
  000a4	e5803000	 str         r3, [r0]
  000a8		 |$L15389|

; 186  :             }
; 187  :         }
; 188  : 
; 189  :         //if(ulAC97Status & SR_RXFF)
; 190  :         if(ulAC97ISR & ISR_RIS)

  000a8	e3140008	 tst         r4, #8
  000ac	0a00006c	 beq         |$L15741|

; 191  :         {
; 192  :             //
; 193  :             // Check to see if the recieve buffer is enabled.
; 194  :             //
; 195  :             if(sRecord.bEnabled )

  000b0	e59f11c0	 ldr         r1, [pc, #0x1C0]
  000b4	e5913014	 ldr         r3, [r1, #0x14]
  000b8	e3530000	 cmp         r3, #0
  000bc	0a000014	 beq         |$L15391|

; 196  :             {
; 197  :                 p = sRecord.pulPosition;

  000c0	e5912010	 ldr         r2, [r1, #0x10]

; 198  :                 if(p == sRecord.pulBufferHalf)

  000c4	e591300c	 ldr         r3, [r1, #0xC]
  000c8	e1520003	 cmp         r2, r3

; 199  :                 {
; 200  :                     *VIC1_SOFTINT           = INT1_UNUSED2;
; 201  :                 }
; 202  :                 else if(p >= sRecord.pulBufferEnd )

  000cc	0a000004	 beq         |$L15763|
  000d0	e5913008	 ldr         r3, [r1, #8]
  000d4	e1520003	 cmp         r2, r3
  000d8	3a000003	 bcc         |$L15395|

; 203  :                 {
; 204  :                     p = sRecord.pulPosition = sRecord.pulBuffer;

  000dc	e5912000	 ldr         r2, [r1]

; 205  :                     *VIC1_SOFTINT           = INT1_UNUSED2;

  000e0	e5812010	 str         r2, [r1, #0x10]
  000e4		 |$L15763|
  000e4	e3a03002	 mov         r3, #2
  000e8	e58e3000	 str         r3, [lr]
  000ec		 |$L15395|

; 206  :                 }    
; 207  : 
; 208  :                 *p++ = *pAC97DR;

  000ec	e5903000	 ldr         r3, [r0]
  000f0	e4823004	 str         r3, [r2], #4

; 209  :                 *p++ = *pAC97DR;

  000f4	e5903000	 ldr         r3, [r0]
  000f8	e4823004	 str         r3, [r2], #4

; 210  :                 *p++ = *pAC97DR;

  000fc	e5903000	 ldr         r3, [r0]
  00100	e4823004	 str         r3, [r2], #4

; 211  :                 *p++ = *pAC97DR;

  00104	e5903000	 ldr         r3, [r0]
  00108	e4823004	 str         r3, [r2], #4
  0010c	e5812010	 str         r2, [r1, #0x10]

; 212  : 
; 213  :                 sRecord.pulPosition= p;
; 214  :             }
; 215  :             else

  00110	ea000053	 b           |$L15741|
  00114		 |$L15391|

; 216  :             {
; 217  :                 ulTemp = *pAC97DR;

  00114	e5903000	 ldr         r3, [r0]
  00118	e58d3000	 str         r3, [sp]

; 218  :                 ulTemp = *pAC97DR;

  0011c	e58d3000	 str         r3, [sp]

; 219  :                 ulTemp = *pAC97DR;

  00120	e58d3000	 str         r3, [sp]

; 220  :                 ulTemp = *pAC97DR;

  00124	e58d3000	 str         r3, [sp]

; 221  :             }
; 222  :         }
; 223  :     }
; 224  :     else

  00128	ea00004d	 b           |$L15741|
  0012c		 |$L15376|

; 225  :     {
; 226  :         register    ULONG   ulSAIStatus;
; 227  : 
; 228  : 		DWORD	dwFillCount=0;
; 229  :         //
; 230  :         // Check to see if the Transmit Fifo is emtpy.
; 231  :         //
; 232  :         ulSAIStatus = *SAI_GSR;

  0012c	e59f3154	 ldr         r3, [pc, #0x154]

; 233  : 		
; 234  : 
; 235  :         if(ulSAIStatus & GSR_TX0_FIFO_EMPTY )

  00130	e5930000	 ldr         r0, [r3]
  00134	e3100a02	 tst         r0, #2, 20

; 236  : 			dwFillCount=8;

  00138	13a04008	 movne       r4, #8
  0013c	1a000002	 bne         |$L15404|

; 237  : 		else if(ulSAIStatus & GSR_TX0_FIFO_HALF_EMPTY )

⌨️ 快捷键说明

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