📄 eint.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\eint.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Eint0Int PROC
;;;18 static void __irq Eint0Int(void)
;;;19 {
|L1.0|
000000 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;20 ClearPending(BIT_EINT0);
000004 e3a00001 MOV r0,#1
000008 e3a0144a MOV r1,#0x4a000000
00000c e5810000 STR r0,[r1,#0]
000010 e3a00001 MOV r0,#1
000014 e3a0144a MOV r1,#0x4a000000
000018 e5810010 STR r0,[r1,#0x10]
00001c e3a0044a MOV r0,#0x4a000000
000020 e5900010 LDR r0,[r0,#0x10]
;;;21 Uart_Printf("EINT0 interrupt is occurred.\n");
000024 e28f0008 ADR r0,|L1.52|
000028 ebfffffe BL Uart_Printf
;;;22 }
00002c e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000030 e25ef004 SUBS pc,lr,#4
|L1.52|
000034 544e4945 DCB "EINT"
000038 6e692030 DCB "0 in"
00003c 72726574 DCB "terr"
000040 20747075 DCB "upt "
000044 6f207369 DCB "is o"
000048 72756363 DCB "ccur"
00004c 2e646572 DCB "red."
000050 0000000a DCB "\n\0\0\0"
ENDP
Eint2Int PROC
;;;24 static void __irq Eint2Int(void)
;;;25 {
|L1.84|
000054 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;26 ClearPending(BIT_EINT2);
000058 e3a00004 MOV r0,#4
00005c e3a0144a MOV r1,#0x4a000000
000060 e5810000 STR r0,[r1,#0]
000064 e3a00004 MOV r0,#4
000068 e3a0144a MOV r1,#0x4a000000
00006c e5810010 STR r0,[r1,#0x10]
000070 e3a0044a MOV r0,#0x4a000000
000074 e5900010 LDR r0,[r0,#0x10]
;;;27 Uart_Printf("EINT2 interrupt is occurred.\n");
000078 e28f0008 ADR r0,|L1.136|
00007c ebfffffe BL Uart_Printf
;;;28 }
000080 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000084 e25ef004 SUBS pc,lr,#4
|L1.136|
000088 544e4945 DCB "EINT"
00008c 6e692032 DCB "2 in"
000090 72726574 DCB "terr"
000094 20747075 DCB "upt "
000098 6f207369 DCB "is o"
00009c 72756363 DCB "ccur"
0000a0 2e646572 DCB "red."
0000a4 0000000a DCB "\n\0\0\0"
ENDP
Eint11_19 PROC
;;;30 static void __irq Eint11_19(void)
;;;31 {
|L1.168|
0000a8 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;32 if(rEINTPEND==(1<<11))
0000ac e3a00456 MOV r0,#0x56000000
0000b0 e59000a8 LDR r0,[r0,#0xa8]
0000b4 e3500e80 CMP r0,#0x800
0000b8 1a000005 BNE |L1.212|
;;;33 {
;;;34 Uart_Printf("EINT11 interrupt is occurred.\n");
0000bc e28f0080 ADR r0,|L1.324|
0000c0 ebfffffe BL Uart_Printf
;;;35 rEINTPEND=(1<<11);
0000c4 e3a00e80 MOV r0,#0x800
0000c8 e3a01456 MOV r1,#0x56000000
0000cc e58100a8 STR r0,[r1,#0xa8]
0000d0 ea000011 B |L1.284|
;;;36 }
;;;37 else if(rEINTPEND==(1<<19))
|L1.212|
0000d4 e3a00456 MOV r0,#0x56000000
0000d8 e59000a8 LDR r0,[r0,#0xa8]
0000dc e3500a80 CMP r0,#0x80000
0000e0 1a000005 BNE |L1.252|
;;;38 {
;;;39 Uart_Printf("EINT19 interrupt is occurred.\n");
0000e4 e28f0078 ADR r0,|L1.356|
0000e8 ebfffffe BL Uart_Printf
;;;40 rEINTPEND=(1<<19);
0000ec e3a00a80 MOV r0,#0x80000
0000f0 e3a01456 MOV r1,#0x56000000
0000f4 e58100a8 STR r0,[r1,#0xa8]
0000f8 ea000007 B |L1.284|
;;;41 }
;;;42 else
;;;43 {
;;;44 Uart_Printf("rEINTPEND=0x%x\n",rEINTPEND);
|L1.252|
0000fc e3a00456 MOV r0,#0x56000000
000100 e59000a8 LDR r0,[r0,#0xa8]
000104 e1a01000 MOV r1,r0
000108 e28f0074 ADR r0,|L1.388|
00010c ebfffffe BL Uart_Printf
;;;45 rEINTPEND=(1<<19)|(1<<11);
000110 e59f007c LDR r0,|L1.404|
000114 e3a01456 MOV r1,#0x56000000
000118 e58100a8 STR r0,[r1,#0xa8]
;;;46 }
;;;47 ClearPending(BIT_EINT8_23);
|L1.284|
00011c e3a00020 MOV r0,#0x20
000120 e3a0144a MOV r1,#0x4a000000
000124 e5810000 STR r0,[r1,#0]
000128 e3a00020 MOV r0,#0x20
00012c e3a0144a MOV r1,#0x4a000000
000130 e5810010 STR r0,[r1,#0x10]
000134 e3a0044a MOV r0,#0x4a000000
000138 e5900010 LDR r0,[r0,#0x10]
;;;48 }
00013c e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000140 e25ef004 SUBS pc,lr,#4
|L1.324|
000144 544e4945 DCB "EINT"
000148 69203131 DCB "11 i"
00014c 7265746e DCB "nter"
000150 74707572 DCB "rupt"
000154 20736920 DCB " is "
000158 7563636f DCB "occu"
00015c 64657272 DCB "rred"
000160 00000a2e DCB ".\n\0\0"
|L1.356|
000164 544e4945 DCB "EINT"
000168 69203931 DCB "19 i"
00016c 7265746e DCB "nter"
000170 74707572 DCB "rupt"
000174 20736920 DCB " is "
000178 7563636f DCB "occu"
00017c 64657272 DCB "rred"
000180 00000a2e DCB ".\n\0\0"
|L1.388|
000184 4e494572 DCB "rEIN"
000188 4e455054 DCB "TPEN"
00018c 78303d44 DCB "D=0x"
000190 000a7825 DCB "%x\n\0"
|L1.404|
000194 00080800 DCD 0x00080800
ENDP
Test_Eint PROC
;;;52 void Test_Eint(void)
;;;53 {
000198 e92d4010 STMFD sp!,{r4,lr}
;;;54 int i;
;;;55 int extintMode;
;;;56
;;;57 Uart_Printf("[External Interrupt Test through PF0/2/11/19]\n");
00019c e28f0fa4 ADR r0,|L1.1076|
0001a0 ebfffffe BL Uart_Printf
;;;58
;;;59 Uart_Printf("1.L-LEVEL 2.H-LEVEL 3.F-EDGE 4.R-EDGE 5.B-EDGE\n");
0001a4 e28f0fae ADR r0,|L1.1124|
0001a8 ebfffffe BL Uart_Printf
;;;60 Uart_Printf("Select the external interrupt type.\n");
0001ac e28f0fb9 ADR r0,|L1.1176|
0001b0 ebfffffe BL Uart_Printf
;;;61 extintMode=Uart_Getch();
0001b4 ebfffffe BL Uart_Getch
0001b8 e1a04000 MOV r4,r0
;;;62
;;;63 //extintMode='3';
;;;64 rGPFCON = (rGPFCON & 0xffcc)|(1<<5)|(1<<1); //PF0/2 = EINT0/2
0001bc e3a00456 MOV r0,#0x56000000
0001c0 e5900050 LDR r0,[r0,#0x50]
0001c4 e59f12f4 LDR r1,|L1.1216|
0001c8 e0000001 AND r0,r0,r1
0001cc e3800022 ORR r0,r0,#0x22
0001d0 e3a01456 MOV r1,#0x56000000
0001d4 e5810050 STR r0,[r1,#0x50]
;;;65 rGPGCON = (rGPGCON & 0xff3fff3f)|(1<<23)|(1<<7); //PG3/11 = EINT11/19
0001d8 e3a00456 MOV r0,#0x56000000
0001dc e5900060 LDR r0,[r0,#0x60]
0001e0 e3c008c0 BIC r0,r0,#0xc00000
0001e4 e3c000c0 BIC r0,r0,#0xc0
0001e8 e3800880 ORR r0,r0,#0x800000
0001ec e3800080 ORR r0,r0,#0x80
0001f0 e3a01456 MOV r1,#0x56000000
0001f4 e5810060 STR r0,[r1,#0x60]
;;;66
;;;67 switch(extintMode)
0001f8 e2442031 SUB r0,r4,#0x31
0001fc e3500004 CMP r0,#4
000200 908ff100 ADDLS pc,pc,r0,LSL #2
000204 ea000069 B |L1.944|
000208 ea000003 B |L1.540|
00020c ea000013 B |L1.608|
000210 ea000027 B |L1.692|
000214 ea00003b B |L1.776|
000218 ea00004f B |L1.860|
;;;68 {
;;;69 case '1':
;;;70 rEXTINT0 = (rEXTINT0 & ~((7<<8) | (0x7<<0))) | 0x0<<8 | 0x0<<0; //EINT0/2=low level triggered
|L1.540|
00021c e3a00456 MOV r0,#0x56000000
000220 e5900088 LDR r0,[r0,#0x88]
000224 e3c00e70 BIC r0,r0,#0x700
000228 e3c00007 BIC r0,r0,#7
00022c e3a01456 MOV r1,#0x56000000
000230 e5810088 STR r0,[r1,#0x88]
;;;71 rEXTINT1 = (rEXTINT1 & ~(7<<12)) | 0x0<<12; //EINT11=low level triggered
000234 e3a00456 MOV r0,#0x56000000
000238 e590008c LDR r0,[r0,#0x8c]
00023c e3c00c70 BIC r0,r0,#0x7000
000240 e3a01456 MOV r1,#0x56000000
000244 e581008c STR r0,[r1,#0x8c]
;;;72 rEXTINT2 = (rEXTINT2 & ~(7<<12)) | 0x0<<12; //EINT19=low level triggered
000248 e3a00456 MOV r0,#0x56000000
00024c e5900090 LDR r0,[r0,#0x90]
000250 e3c00c70 BIC r0,r0,#0x7000
000254 e3a01456 MOV r1,#0x56000000
000258 e5810090 STR r0,[r1,#0x90]
;;;73 break;
00025c ea000054 B |L1.948|
;;;74 case '2':
;;;75 rEXTINT0 = (rEXTINT0 & ~((7<<8) | (0x7<<0))) | 0x1<<8 | 0x1<<0; //EINT0/2=high level triggered
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -