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

📄 eint.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
; 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 + -