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

📄 idle.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
00032c  e3a01456          MOV      r1,#0x56000000
000330  e5810088          STR      r0,[r1,#0x88]
;;;132        
;;;133        rSRCPND = BIT_EINT0;
000334  e3a00001          MOV      r0,#1
000338  e3a0144a          MOV      r1,#0x4a000000
00033c  e5810000          STR      r0,[r1,#0]
;;;134        rINTPND = BIT_EINT0;
000340  e3a00001          MOV      r0,#1
000344  e3a0144a          MOV      r1,#0x4a000000
000348  e5810010          STR      r0,[r1,#0x10]
;;;135    
;;;136        t0cnt=0;t1cnt=0;
00034c  e3a00000          MOV      r0,#0
000350  e51f111c          LDR      r1,|L1.572|
000354  e5810000          STR      r0,[r1,#0]  ; t0cnt
000358  e3a00000          MOV      r0,#0
00035c  e51f1124          LDR      r1,|L1.576|
000360  e5810000          STR      r0,[r1,#0]  ; t1cnt
;;;137    
;;;138        pISR_TIMER0=(U32)Timer0Int; 
000364  e59f0170          LDR      r0,|L1.1244|
000368  e51f10ac          LDR      r1,|L1.708|
00036c  e5810f48          STR      r0,[r1,#0xf48]
;;;139        pISR_TIMER1=(U32)Timer1Int;
000370  e59f0168          LDR      r0,|L1.1248|
000374  e5810f4c          STR      r0,[r1,#0xf4c]
;;;140        pISR_EINT0=(U32)Eint0Int;
000378  e51f00c0          LDR      r0,|L1.704|
00037c  e5810f20          STR      r0,[r1,#0xf20]
;;;141    
;;;142        rTCFG0=0x0;		//PRESC01=1,PRESC234=1
000380  e3a00000          MOV      r0,#0
000384  e3a01451          MOV      r1,#0x51000000
000388  e5810000          STR      r0,[r1,#0]
;;;143        rTCFG1=0x0; 	//TIMER0,1,2,3,4,5= 1/2    
00038c  e3a00000          MOV      r0,#0
000390  e3a01451          MOV      r1,#0x51000000
000394  e5810004          STR      r0,[r1,#4]
;;;144        rTCNTB0=65535;	
000398  e59f0144          LDR      r0,|L1.1252|
00039c  e3a01451          MOV      r1,#0x51000000
0003a0  e581000c          STR      r0,[r1,#0xc]
;;;145        rTCNTB1=2570;
0003a4  e59f013c          LDR      r0,|L1.1256|
0003a8  e3a01451          MOV      r1,#0x51000000
0003ac  e5810018          STR      r0,[r1,#0x18]
;;;146        rTCON=0xa0a;	//T0,T1=manualUpdate,interval mode
0003b0  e3a01451          MOV      r1,#0x51000000
0003b4  e5810008          STR      r0,[r1,#8]
;;;147        rTCON=0x909;	//Start T0,T1.
0003b8  e59f012c          LDR      r0,|L1.1260|
0003bc  e3a01451          MOV      r1,#0x51000000
0003c0  e5810008          STR      r0,[r1,#8]
;;;148        //rTCON=0x00a;
;;;149        //rTCON=0x009;
;;;150      
;;;151        rINTMSK=~(BIT_EINT0|BIT_TIMER0|BIT_TIMER1);
0003c4  e59f0124          LDR      r0,|L1.1264|
0003c8  e3a0144a          MOV      r1,#0x4a000000
0003cc  e5810008          STR      r0,[r1,#8]
;;;152            
;;;153        for(i=0;i<10000;i++)
0003d0  e3a04000          MOV      r4,#0
                  |L1.980|
0003d4  e254cd80          SUBS     r12,r4,#0x2000
0003d8  a25cce71          SUBGES   r12,r12,#0x710
0003dc  aa000019          BGE      |L1.1096|
0003e0  ea000001          B        |L1.1004|
                  |L1.996|
0003e4  e2844001          ADD      r4,r4,#1
0003e8  eafffff9          B        |L1.980|
;;;154        {
;;;155        	rCLKCON|=(1<<2);  //enter IDLE mode.
                  |L1.1004|
0003ec  e3a0044c          MOV      r0,#0x4c000000
0003f0  e590000c          LDR      r0,[r0,#0xc]
0003f4  e3800004          ORR      r0,r0,#4
0003f8  e3a0144c          MOV      r1,#0x4c000000
0003fc  e581000c          STR      r0,[r1,#0xc]
;;;156    
;;;157    	//wait until S3C2400X enters IDLE mode.	
;;;158    	//wait EINT0 interrupt or RTC alarm interrupt
;;;159    	for(j=0;j<10;j++);   
000400  e3a05000          MOV      r5,#0
                  |L1.1028|
000404  e355000a          CMP      r5,#0xa
000408  aa000001          BGE      |L1.1044|
00040c  e2855001          ADD      r5,r5,#1
000410  eafffffb          B        |L1.1028|
;;;160    
;;;161    	rCLKCON&=~(1<<2);      
                  |L1.1044|
000414  e3a0044c          MOV      r0,#0x4c000000
000418  e590000c          LDR      r0,[r0,#0xc]
00041c  e3c00004          BIC      r0,r0,#4
000420  e3a0144c          MOV      r1,#0x4c000000
000424  e581000c          STR      r0,[r1,#0xc]
;;;162        	    //turn-off IDLE bit. IDLE bit should be turned off after wake-up.
;;;163    
;;;164        	if(i%100==0)Uart_Printf("#");
000428  e1a01004          MOV      r1,r4
00042c  e3a00064          MOV      r0,#0x64
000430  ebfffffe          BL       __rt_sdiv
000434  e3510000          CMP      r1,#0
000438  1a000001          BNE      |L1.1092|
00043c  e28f00b0          ADR      r0,|L1.1268|
000440  ebfffffe          BL       Uart_Printf
;;;165        }
                  |L1.1092|
000444  eaffffe6          B        |L1.996|
;;;166    
;;;167        rTCON=0x0; //turn the timer off
                  |L1.1096|
000448  e3a00000          MOV      r0,#0
00044c  e3a01451          MOV      r1,#0x51000000
000450  e5810008          STR      r0,[r1,#8]
;;;168    
;;;169        rINTMSK=BIT_ALLMSK;
000454  e3e00000          MVN      r0,#0
000458  e3a0144a          MOV      r1,#0x4a000000
00045c  e5810008          STR      r0,[r1,#8]
;;;170        
;;;171        Uart_Printf("\nt0cnt=%d,t1cnt=%d(t0cnt+t1cnt>=10000)\n",t0cnt,t1cnt);
000460  e51f0228          LDR      r0,|L1.576|
000464  e5902000          LDR      r2,[r0,#0]  ; t1cnt
000468  e51f0234          LDR      r0,|L1.572|
00046c  e5901000          LDR      r1,[r0,#0]  ; t0cnt
000470  e28f0080          ADR      r0,|L1.1272|
000474  ebfffffe          BL       Uart_Printf
;;;172        Uart_Printf("Return to Normal Mode.\n");
000478  e24f0f6d          ADR      r0,|L1.716|
00047c  ebfffffe          BL       Uart_Printf
;;;173    }
000480  e8bd8038          LDMFD    sp!,{r3-r5,pc}
                  |L1.1156|
000484  4c44495b          DCB      "[IDL"
000488  6f4d2045          DCB      "E Mo"
00048c  48206564          DCB      "de H"
000490  20647261          DCB      "ard "
000494  74736554          DCB      "Test"
000498  74697720          DCB      " wit"
00049c  69542068          DCB      "h Ti"
0004a0  3072656d          DCB      "mer0"
0004a4  00000a5d          DCB      "]\n\0\0"
                  |L1.1192|
0004a8  32433353          DCB      "S3C2"
0004ac  20323434          DCB      "442 "
0004b0  6c6c6977          DCB      "will"
0004b4  736c6120          DCB      " als"
0004b8  6177206f          DCB      "o wa"
0004bc  7520656b          DCB      "ke u"
0004c0  79622070          DCB      "p by"
0004c4  4e494520          DCB      " EIN"
0004c8  66203054          DCB      "T0 f"
0004cc  696c6c61          DCB      "alli"
0004d0  6520676e          DCB      "ng e"
0004d4  2e656764          DCB      "dge."
0004d8  0000000a          DCB      "\n\0\0\0"
                  |L1.1244|
0004dc  00000000          DCD      Timer0Int
                  |L1.1248|
0004e0  00000000          DCD      Timer1Int
                  |L1.1252|
0004e4  0000ffff          DCD      0x0000ffff
                  |L1.1256|
0004e8  00000a0a          DCD      0x00000a0a
                  |L1.1260|
0004ec  00000909          DCD      0x00000909
                  |L1.1264|
0004f0  fffff3fe          DCD      0xfffff3fe
                  |L1.1268|
0004f4  00000023          DCB      "#\0\0\0"
                  |L1.1272|
0004f8  6330740a          DCB      "\nt0c"
0004fc  253d746e          DCB      "nt=%"
000500  31742c64          DCB      "d,t1"
000504  3d746e63          DCB      "cnt="
000508  74286425          DCB      "%d(t"
00050c  746e6330          DCB      "0cnt"
000510  6331742b          DCB      "+t1c"
000514  3d3e746e          DCB      "nt>="
000518  30303031          DCB      "1000"
00051c  000a2930          DCB      "0)\n\0"
                          ENDP

                  Test_MMUIdleMode PROC
;;;180    void Test_MMUIdleMode(void)
;;;181    {
000520  e92d4010          STMFD    sp!,{r4,lr}
;;;182        int i;
;;;183        int extintMode;
;;;184    
;;;185        MMU_SetAsyncBusMode(); //ARM920T should be in the async. Bus mode.
000524  ebfffffe          BL       MMU_SetAsyncBusMode
;;;186    
;;;187        Uart_Printf("[MMU IDLE Mode Test]\n");
000528  e28f00c8          ADR      r0,|L1.1528|
00052c  ebfffffe          BL       Uart_Printf
;;;188        Uart_Printf("This routine tests MMU registser7:Wait for interrupt function.\n");
000530  e28f00d8          ADR      r0,|L1.1552|
000534  ebfffffe          BL       Uart_Printf
;;;189        Uart_Printf("After 10 seconds, S3C2442 will wake up by RTC alarm interrupt.\n");
000538  e24f0fba          ADR      r0,|L1.600|
00053c  ebfffffe          BL       Uart_Printf
;;;190        Uart_Printf("S3C2442 will also wake up by EINT0.\n");
000540  e24f0fac          ADR      r0,|L1.664|
000544  ebfffffe          BL       Uart_Printf
;;;191        Uart_TxEmpty(1);    //Wait until UART0 Tx buffer empty.
000548  e3a00001          MOV      r0,#1
00054c  ebfffffe          BL       Uart_TxEmpty
;;;192    
;;;193        rGPFCON=rGPFCON & ~(3<<0)|(2<<0); //PF0=EINT0
000550  e3a00456          MOV      r0,#0x56000000
000554  e5900050          LDR      r0,[r0,#0x50]
000558  e3c00003          BIC      r0,r0,#3
00055c  e3800002          ORR      r0,r0,#2
000560  e3a01456          MOV      r1,#0x56000000
000564  e5810050          STR      r0,[r1,#0x50]
;;;194        rEXTINT0=rEXTINT0&(7<<0)|(0x2<<0); //EINT0=falling edge triggered
000568  e3a00456          MOV      r0,#0x56000000
00056c  e5900088          LDR      r0,[r0,#0x88]
000570  e2000007          AND      r0,r0,#7
000574  e3800002          ORR      r0,r0,#2
000578  e3a01456          MOV      r1,#0x56000000
00057c  e5810088          STR      r0,[r1,#0x88]
;;;195        
;;;196        pISR_EINT0=(U32)Eint0Int;
000580  e51f02c8          LDR      r0,|L1.704|
000584  e51f12c8          LDR      r1,|L1.708|
000588  e5810f20          STR      r0,[r1,#0xf20]
;;;197        pISR_RTC=(U32)AlarmInt;
00058c  e51f02cc          LDR      r0,|L1.712|
000590  e5810f98          STR      r0,[r1,#0xf98]
;;;198    
;;;199        rSRCPND = BIT_EINT0|BIT_RTC; //to clear the previous pending states
000594  e3a00350          MOV      r0,#0x40000001
000598  e3a0144a          MOV      r1,#0x4a000000
00059c  e5810000          STR      r0,[r1,#0]
;;;200        rINTPND = BIT_EINT0|BIT_RTC;
0005a0  e3a00350          MOV      r0,#0x40000001
0005a4  e3a0144a          MOV      r1,#0x4a000000
0005a8  e5810010          STR      r0,[r1,#0x10]
;;;201        
;;;202        rINTMSK=~(BIT_EINT0|BIT_RTC);
0005ac  e3e00350          MVN      r0,#0x40000001
0005b0  e3a0144a          MOV      r1,#0x4a000000
0005b4  e5810008          STR      r0,[r1,#8]
;;;203        //rINTMSK=~(BIT_RTC);
;;;204        //rINTMSK=BIT_ALLMSK;
;;;205    
;;;206        SetAlarmWakeUp();
0005b8  ebfffffe          BL       SetAlarmWakeUp
;;;207        rRTCCON = 0x0;	// R/W disable, but interrupt will be generated.
0005bc  e3a00000          MOV      r0,#0
0005c0  e3a01457          MOV      r1,#0x57000000
0005c4  e5c10040          STRB     r0,[r1,#0x40]
;;;208    
;;;209        MMU_WaitForInterrupt();
0005c8  ebfffffe          BL       MMU_WaitForInterrupt
;;;210         
;;;211        //wait until S3C2400X enters IDLE mode.	
;;;212        //wait EINT0 interrupt or RTC alarm interrupt
;;;213        for(i=0;i<10;i++);   
0005cc  e3a04000          MOV      r4,#0
                  |L1.1488|
0005d0  e354000a          CMP      r4,#0xa
0005d4  aa000001          BGE      |L1.1504|
0005d8  e2844001          ADD      r4,r4,#1
0005dc  eafffffb          B        |L1.1488|
;;;214    
;;;215        Uart_Printf("Return to Normal Mode.\n");
                  |L1.1504|
0005e0  e24f0fc7          ADR      r0,|L1.716|
0005e4  ebfffffe          BL       Uart_Printf
;;;216    
;;;217        rINTMSK=BIT_ALLMSK;
0005e8  e3e00000          MVN      r0,#0
0005ec  e3a0144a          MOV      r1,#0x4a000000
0005f0  e5810008          STR      r0,[r1,#8]
;;;218    }
0005f4  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.1528|
0005f8  554d4d5b          DCB      "[MMU"
0005fc  4c444920          DCB      " IDL"
000600  6f4d2045          DCB      "E Mo"
000604  54206564          DCB      "de T"
000608  5d747365          DCB      "est]"
00060c  0000000a          DCB      "\n\0\0\0"
                  |L1.1552|
000610  73696854          DCB      "This"
000614  756f7220          DCB      " rou"
000618  656e6974          DCB      "tine"
00061c  73657420          DCB      " tes"
000620  4d207374          DCB      "ts M"
000624  7220554d          DCB      "MU r"
000628  73696765          DCB      "egis"
00062c  72657374          DCB      "tser"
000630  61573a37          DCB      "7:Wa"
000634  66207469          DCB      "it f"
000638  6920726f          DCB      "or i"
00063c  7265746e          DCB      "nter"
000640  74707572          DCB      "rupt"
000644  6e756620          DCB      " fun"
000648  6f697463          DCB      "ctio"
00064c  000a2e6e          DCB      "n.\n\0"
                          ENDP



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

                  t0cnt
                  ||.bss$2||
                          % 4
                  t1cnt
                          % 4


        END

⌨️ 快捷键说明

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