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

📄 swi.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\swi.err -O0 -asm -g+ -cpu ARM920T -fs "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Isr_SwiTest PROC
;;;25     void __irq Isr_SwiTest(void)
;;;26     {
                  |L1.0|
000000  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;27         rINTMSK = rINTMSK | BIT_UART0;
000004  e3a0044a          MOV      r0,#0x4a000000
000008  e5900008          LDR      r0,[r0,#8]
00000c  e3800540          ORR      r0,r0,#0x10000000
000010  e3a0144a          MOV      r1,#0x4a000000
000014  e5810008          STR      r0,[r1,#8]
;;;28         ClearPending(BIT_UART0);    
000018  e3a00540          MOV      r0,#0x10000000
00001c  e3a0144a          MOV      r1,#0x4a000000
000020  e5810000          STR      r0,[r1,#0]
000024  e3a00540          MOV      r0,#0x10000000
000028  e3a0144a          MOV      r1,#0x4a000000
00002c  e5810010          STR      r0,[r1,#0x10]
000030  e3a0044a          MOV      r0,#0x4a000000
000034  e5900010          LDR      r0,[r0,#0x10]
;;;29         SwiTest();
000038  ef000087          SWI      0x87
;;;30         swiVar++;
00003c  e59f00c0          LDR      r0,|L1.260|
000040  e5900000          LDR      r0,[r0,#0]  ; swiVar
000044  e2800001          ADD      r0,r0,#1
000048  e59f10b4          LDR      r1,|L1.260|
00004c  e5810000          STR      r0,[r1,#0]  ; swiVar
;;;31     
;;;32     }
000050  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
000054  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Test_SwiIrq PROC
;;;35     void Test_SwiIrq(void)
;;;36     {
000058  e92d4010          STMFD    sp!,{r4,lr}
;;;37         int i;
;;;38         swiVar = 1;
00005c  e3a00001          MOV      r0,#1
000060  e59f109c          LDR      r1,|L1.260|
000064  e5810000          STR      r0,[r1,#0]  ; swiVar
;;;39         
;;;40         Uart_Printf("rUCON0 = %x\n",rUCON0);
000068  e3a00450          MOV      r0,#0x50000000
00006c  e5900004          LDR      r0,[r0,#4]
000070  e1a01000          MOV      r1,r0
000074  e28f008c          ADR      r0,|L1.264|
000078  ebfffffe          BL       Uart_Printf
;;;41         Uart_Printf("[ SWI Test ]\n");
00007c  e28f0094          ADR      r0,|L1.280|
000080  ebfffffe          BL       Uart_Printf
;;;42         Uart_Printf("swiVar = %d\n",swiVar);
000084  e59f0078          LDR      r0,|L1.260|
000088  e5901000          LDR      r1,[r0,#0]  ; swiVar
00008c  e28f0094          ADR      r0,|L1.296|
000090  ebfffffe          BL       Uart_Printf
;;;43         Uart_TxEmpty(1);
000094  e3a00001          MOV      r0,#1
000098  ebfffffe          BL       Uart_TxEmpty
;;;44           //UART0 Tx interrupt bit in rINTPND will be set.
;;;45         pISR_UART0 = (U32)Isr_SwiTest;
00009c  e59f0094          LDR      r0,|L1.312|
0000a0  e59f1094          LDR      r1,|L1.316|
0000a4  e5810f90          STR      r0,[r1,#0xf90]
;;;46         pISR_SWI   = (U32)SWI_ISR;
0000a8  e59f0090          LDR      r0,|L1.320|
0000ac  e5810f08          STR      r0,[r1,#0xf08]
;;;47         rINTMSK    = rINTMSK & ~(BIT_UART0);
0000b0  e3a0044a          MOV      r0,#0x4a000000
0000b4  e5900008          LDR      r0,[r0,#8]
0000b8  e3c00540          BIC      r0,r0,#0x10000000
0000bc  e3a0144a          MOV      r1,#0x4a000000
0000c0  e5810008          STR      r0,[r1,#8]
;;;48         for(i=0;i<10000;i++);
0000c4  e3a04000          MOV      r4,#0
                  |L1.200|
0000c8  e254cd80          SUBS     r12,r4,#0x2000
0000cc  a25cce71          SUBGES   r12,r12,#0x710
0000d0  aa000001          BGE      |L1.220|
0000d4  e2844001          ADD      r4,r4,#1
0000d8  eafffffa          B        |L1.200|
;;;49         rINTMSK = rINTMSK | BIT_UART0;
                  |L1.220|
0000dc  e3a0044a          MOV      r0,#0x4a000000
0000e0  e5900008          LDR      r0,[r0,#8]
0000e4  e3800540          ORR      r0,r0,#0x10000000
0000e8  e3a0144a          MOV      r1,#0x4a000000
0000ec  e5810008          STR      r0,[r1,#8]
;;;50         Uart_Printf("swiVar = %d\n",swiVar);
0000f0  e59f000c          LDR      r0,|L1.260|
0000f4  e5901000          LDR      r1,[r0,#0]  ; swiVar
0000f8  e28f0028          ADR      r0,|L1.296|
0000fc  ebfffffe          BL       Uart_Printf
;;;51     }000100  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.260|
000104  00000000          DCD      ||.bss$2||
                  |L1.264|
000108  4f435572          DCB      "rUCO"
00010c  3d20304e          DCB      "N0 ="
000110  0a782520          DCB      " %x\n"
000114  00000000          DCB      "\0\0\0\0"
                  |L1.280|
000118  5753205b          DCB      "[ SW"
00011c  65542049          DCB      "I Te"
000120  5d207473          DCB      "st ]"
000124  0000000a          DCB      "\n\0\0\0"
                  |L1.296|
000128  56697773          DCB      "swiV"
00012c  3d207261          DCB      "ar ="
000130  0a642520          DCB      " %d\n"
000134  00000000          DCB      "\0\0\0\0"
                  |L1.312|
000138  00000000          DCD      Isr_SwiTest
                  |L1.316|
00013c  31fff000          DCD      0x31fff000
                  |L1.320|
000140  00000000          DCD      SWI_ISR
                          ENDP



                          AREA ||.bss||, NOINIT, ALIGN=2

                  swiVar
                  ||.bss$2||
                          % 4


        END

⌨️ 快捷键说明

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