📄 eint.txt
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]
; commandline [-errors .\err\eint.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
CODE32
AREA ||.text||, CODE, READONLY
Ch6_INTERRUPT_CONTROLLER PROC
;;;28 void Ch6_INTERRUPT_CONTROLLER(void)
;;;29 {
000000 e92d4010 STMFD sp!,{r4,lr}
;;;30 while(1)
000004 e1a00000 NOP
|L1.8|
000008 e1a00000 NOP
;;;31 {
;;;32 int i =0;
00000c e3a04000 MOV r4,#0
;;;33
;;;34 while(1)
000010 e1a00000 NOP
|L1.20|
000014 e1a00000 NOP
;;;35 { //display menu
;;;36 Uart_Printf("%2d:%s ",i,int_func[i][1]);
000018 e59f008c LDR r0,|L1.172|
00001c e0800184 ADD r0,r0,r4,LSL #3
000020 e1a01004 MOV r1,r4
000024 e5902004 LDR r2,[r0,#4]
000028 e28f0080 ADR r0,|L1.176|
00002c ebfffffe BL _printf
;;;37 i++;
000030 e2844001 ADD r4,r4,#1
;;;38 if((int)(int_func[i][0])==0)
000034 e59f0070 LDR r0,|L1.172|
000038 e7900184 LDR r0,[r0,r4,LSL #3]
00003c e3500000 CMP r0,#0
000040 1a000002 BNE |L1.80|
;;;39 {
;;;40 Uart_Printf("\n");
000044 e28f0070 ADR r0,|L1.188|
000048 ebfffffe BL _printf
;;;41 break;
00004c ea000004 B |L1.100|
;;;42 }
;;;43 if((i%4)==0)
|L1.80|
000050 e3140003 TST r4,#3
000054 1a000001 BNE |L1.96|
;;;44 Uart_Printf("\n");
000058 e28f005c ADR r0,|L1.188|
00005c ebfffffe BL _printf
;;;45 }
|L1.96|
000060 eaffffeb B |L1.20|
;;;46
;;;47 Uart_Printf("\nSelect (\"-1\" to exit) : ");
|L1.100|
000064 e28f0054 ADR r0,|L1.192|
000068 ebfffffe BL _printf
;;;48 i = Uart_GetIntNum();
00006c ebfffffe BL Uart_GetIntNum
000070 e1a04000 MOV r4,r0
;;;49 Uart_Printf("\n");
000074 e28f0040 ADR r0,|L1.188|
000078 ebfffffe BL _printf
;;;50 if(i==-1) break;
00007c e3740001 CMN r4,#1
000080 1a000000 BNE |L1.136|
000084 ea000007 B |L1.168|
;;;51 if(i>=0 && (i<(sizeof(int_func)/8)) )
|L1.136|
000088 e3540000 CMP r4,#0
00008c ba000004 BLT |L1.164|
000090 e3540004 CMP r4,#4
000094 2a000002 BCS |L1.164|
;;;52 ( (void (*)(void)) (int_func[i][0]) )();
000098 e59f100c LDR r1,|L1.172|
00009c e7910184 LDR r0,[r1,r4,LSL #3]
0000a0 e12fff30 BLX r0
;;;53 }
|L1.164|
0000a4 eaffffd7 B |L1.8|
;;;54 }
|L1.168|
0000a8 e8bd8010 LDMFD sp!,{r4,pc}
|L1.172|
0000ac 00000000 DCD int_func
|L1.176|
0000b0 3a643225 DCB "%2d:"
0000b4 20207325 DCB "%s "
0000b8 00000000 DCB "\0\0\0\0"
|L1.188|
0000bc 0000000a DCB "\n\0\0\0"
|L1.192|
0000c0 6c65530a DCB "\nSel"
0000c4 20746365 DCB "ect "
0000c8 312d2228 DCB "(\"-1"
0000cc 6f742022 DCB "\" to"
0000d0 69786520 DCB " exi"
0000d4 3a202974 DCB "t) :"
0000d8 00000020 DCB " \0\0\0"
ENDP
Eint0_1 PROC
;;;57 static void __irq Eint0_1(void)
;;;58 {
|L1.220|
0000dc e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;59 if(rEINTPEND==(1<<0))
0000e0 e59f0090 LDR r0,|L1.376|
0000e4 e5900038 LDR r0,[r0,#0x38]
0000e8 e3500001 CMP r0,#1
0000ec 1a000005 BNE |L1.264|
;;;60 {
;;;61 Uart_Printf("EINT0 interrupt is occured\n");
0000f0 e28f0084 ADR r0,|L1.380|
0000f4 ebfffffe BL _printf
;;;62 rEINTPEND=(1<<0);
0000f8 e3a00001 MOV r0,#1
0000fc e59f1074 LDR r1,|L1.376|
000100 e5810038 STR r0,[r1,#0x38]
000104 ea000011 B |L1.336|
;;;63 }
;;;64 else if(rEINTPEND==(1<<1))
|L1.264|
000108 e59f0068 LDR r0,|L1.376|
00010c e5900038 LDR r0,[r0,#0x38]
000110 e3500002 CMP r0,#2
000114 1a000005 BNE |L1.304|
;;;65 {
;;;66 Uart_Printf("EINT1 interrupt is occured\n");
000118 e28f0078 ADR r0,|L1.408|
00011c ebfffffe BL _printf
;;;67 rEINTPEND=(1<<1);
000120 e3a00002 MOV r0,#2
000124 e59f104c LDR r1,|L1.376|
000128 e5810038 STR r0,[r1,#0x38]
00012c ea000007 B |L1.336|
;;;68 }
;;;69 else
;;;70 {
;;;71 Uart_Printf("rEINTPEND=%x\n",rEINTPEND);
|L1.304|
000130 e59f0040 LDR r0,|L1.376|
000134 e5900038 LDR r0,[r0,#0x38]
000138 e1a01000 MOV r1,r0
00013c e28f0070 ADR r0,|L1.436|
000140 ebfffffe BL _printf
;;;72 rEINTPEND=((1<<0)|(1<<1));
000144 e3a00003 MOV r0,#3
000148 e59f1028 LDR r1,|L1.376|
00014c e5810038 STR r0,[r1,#0x38]
;;;73 }
;;;74 ClearPending(BIT_EINT0_2);
|L1.336|
000150 e3a00001 MOV r0,#1
000154 e59f1068 LDR r1,|L1.452|
000158 e5810000 STR r0,[r1,#0]
00015c e1c10000 BIC r0,r1,r0
000160 e5900010 LDR r0,[r0,#0x10]
000164 e5810010 STR r0,[r1,#0x10]
000168 e1a00001 MOV r0,r1
00016c e5900010 LDR r0,[r0,#0x10]
;;;75 }
000170 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
000174 e25ef004 SUBS pc,lr,#4
|L1.376|
000178 44800000 DCD 0x44800000
|L1.380|
00017c 544e4945 DCB "EINT"
000180 6e692030 DCB "0 in"
000184 72726574 DCB "terr"
000188 20747075 DCB "upt "
00018c 6f207369 DCB "is o"
000190 72756363 DCB "ccur"
000194 000a6465 DCB "ed\n\0"
|L1.408|
000198 544e4945 DCB "EINT"
00019c 6e692031 DCB "1 in"
0001a0 72726574 DCB "terr"
0001a4 20747075 DCB "upt "
0001a8 6f207369 DCB "is o"
0001ac 72756363 DCB "ccur"
0001b0 000a6465 DCB "ed\n\0"
|L1.436|
0001b4 4e494572 DCB "rEIN"
0001b8 4e455054 DCB "TPEN"
0001bc 78253d44 DCB "D=%x"
0001c0 0000000a DCB "\n\0\0\0"
|L1.452|
0001c4 40200000 DCD 0x40200000
ENDP
Eint9 PROC
;;;78 static void __irq Eint9(void)
;;;79 {
|L1.456|
0001c8 e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;80 if(rEINTPEND==(1<<9))
0001cc e51f005c LDR r0,|L1.376|
0001d0 e5900038 LDR r0,[r0,#0x38]
0001d4 e3500f80 CMP r0,#0x200
0001d8 1a000005 BNE |L1.500|
;;;81 {
;;;82 Uart_Printf("EINT9 interrupt is occured\n");
0001dc e28f004c ADR r0,|L1.560|
0001e0 ebfffffe BL _printf
;;;83 rEINTPEND=(1<<9);
0001e4 e3a00f80 MOV r0,#0x200
0001e8 e51f1078 LDR r1,|L1.376|
0001ec e5810038 STR r0,[r1,#0x38]
0001f0 ea000004 B |L1.520|
;;;84 }
;;;85 else
;;;86 {
;;;87 Uart_Printf("rEINTPEND=%x\n",rEINTPEND);
|L1.500|
0001f4 e51f0084 LDR r0,|L1.376|
0001f8 e5900038 LDR r0,[r0,#0x38]
0001fc e1a01000 MOV r1,r0
000200 e24f0054 ADR r0,|L1.436|
000204 ebfffffe BL _printf
;;;88 }
;;;89 ClearPending(BIT_EINT7_10);
|L1.520|
000208 e3a00004 MOV r0,#4
00020c e51f1050 LDR r1,|L1.452|
000210 e5810000 STR r0,[r1,#0]
000214 e1c10000 BIC r0,r1,r0
000218 e5900010 LDR r0,[r0,#0x10]
00021c e5810010 STR r0,[r1,#0x10]
000220 e1a00001 MOV r0,r1
000224 e5900010 LDR r0,[r0,#0x10]
;;;90 }
000228 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
00022c e25ef004 SUBS pc,lr,#4
|L1.560|
000230 544e4945 DCB "EINT"
000234 6e692039 DCB "9 in"
000238 72726574 DCB "terr"
00023c 20747075 DCB "upt "
000240 6f207369 DCB "is o"
000244 72756363 DCB "ccur"
000248 000a6465 DCB "ed\n\0"
ENDP
Eint11 PROC
;;;92 static void __irq Eint11(void)
;;;93 {
|L1.588|
00024c e92d500f STMFD sp!,{r0-r3,r12,lr}
;;;94 if(rEINTPEND==(1<<11))
000250 e51f00e0 LDR r0,|L1.376|
000254 e5900038 LDR r0,[r0,#0x38]
000258 e3500e80 CMP r0,#0x800
00025c 1a000005 BNE |L1.632|
;;;95 {
;;;96 Uart_Printf("EINT11 interrupt is occured\n");
000260 e28f0058 ADR r0,|L1.704|
000264 ebfffffe BL _printf
;;;97 rEINTPEND=(1<<11);
000268 e3a00e80 MOV r0,#0x800
00026c e51f10fc LDR r1,|L1.376|
000270 e5810038 STR r0,[r1,#0x38]
000274 ea000007 B |L1.664|
;;;98 }
;;;99 else
;;;100 {
;;;101 Uart_Printf("rEINTPEND=%x\n",rEINTPEND);
|L1.632|
000278 e51f0108 LDR r0,|L1.376|
00027c e5900038 LDR r0,[r0,#0x38]
000280 e1a01000 MOV r1,r0
000284 e24f00d8 ADR r0,|L1.436|
000288 ebfffffe BL _printf
;;;102 rEINTPEND=(1<<11);
00028c e3a00e80 MOV r0,#0x800
000290 e51f1120 LDR r1,|L1.376|
000294 e5810038 STR r0,[r1,#0x38]
;;;103 }
;;;104 ClearPending(BIT_EINT11_14);
|L1.664|
000298 e3a00008 MOV r0,#8
00029c e51f10e0 LDR r1,|L1.452|
0002a0 e5810000 STR r0,[r1,#0]
0002a4 e1c10000 BIC r0,r1,r0
0002a8 e5900010 LDR r0,[r0,#0x10]
0002ac e5810010 STR r0,[r1,#0x10]
0002b0 e1a00001 MOV r0,r1
0002b4 e5900010 LDR r0,[r0,#0x10]
;;;105 }
0002b8 e8bd500f LDMFD sp!,{r0-r3,r12,lr}
0002bc e25ef004 SUBS pc,lr,#4
|L1.704|
0002c0 544e4945 DCB "EINT"
0002c4 69203131 DCB "11 i"
0002c8 7265746e DCB "nter"
0002cc 74707572 DCB "rupt"
0002d0 20736920 DCB " is "
0002d4 7563636f DCB "occu"
0002d8 0a646572 DCB "red\n"
0002dc 00000000 DCB "\0\0\0\0"
ENDP
Test_Eint PROC
;;;108 void Test_Eint(void)
;;;109 {
0002e0 e92d4010 STMFD sp!,{r4,lr}
;;;110 // int i;
;;;111 char extintMode;
;;;112
;;;113 Uart_Printf("External interrupt test is EINT0/1/9/11\n");
0002e4 e28f0fab ADR r0,|L1.1432|
0002e8 ebfffffe BL _printf
;;;114 Uart_Printf("1.L-evel 2.H-evel 3.F-edge 4.R-edge 5.B-edge\n");
0002ec e28f0fb4 ADR r0,|L1.1476|
0002f0 ebfffffe BL _printf
;;;115 Uart_Printf("Select the external interrupt type.\n");
0002f4 e28f0fbf ADR r0,|L1.1528|
0002f8 ebfffffe BL _printf
;;;116 extintMode=Uart_Getch();
0002fc ebfffffe BL Uart_Getch
000300 e1a04000 MOV r4,r0
;;;117 Uart_Printf("%c is selected\n",extintMode);
000304 e1a01004 MOV r1,r4
000308 e28f0fc4 ADR r0,|L1.1568|
00030c ebfffffe BL _printf
;;;118
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -