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

📄 stop.txt

📁 s3c24a0固件测试代码 ? ? ? ? ?啊 
💻 TXT
📖 第 1 页 / 共 5 页
字号:
0005e0  e1c11000          BIC      r1,r1,r0
0005e4  e5810018          STR      r0,[r1,#0x18]
;;;186        rEXTINTC1 = 0x2222222;  //EINT9~3
0005e8  e59f03b4          LDR      r0,|L1.2468|
0005ec  e1c11000          BIC      r1,r1,r0
0005f0  e581001c          STR      r0,[r1,#0x1c]
;;;187    
;;;188        //Peri. port pull-up control
;;;189        //PERIPU	:PERIPU[26] PERIPU[24]	PERIPU[14]	PERIPU[13]	PERIPU[12]	PERIPU[11]	
;;;190        //Signal	:XmsSDIO    XsdDAT[3:0]	XrADR[25:18]	XciCDATA[7:0]	XmiADR[10:0]	XmiDATA[7:0]	
;;;191        //PU_OFF    :off(extPU) off(extPU)	on		on		on		on
;;;192        //--------------------------------------------------------------------------------------------------
;;;193        //PERIPU    :PERIPU[10] PERIPU[9]	PERIPU[8]   PERIPU[4]	    PERIPU[2]
;;;194        //Signal    :XspiCLK    X2sLRCK	XspiMISO    XrDATA[15:0]    XpDATA[31:0]
;;;195        //PU_OFF    :on	    on		on	    on		    on
;;;196        //rENPU = 0x50f0200; //Xr, Xd, XpDATA pull-up on. The data bus will not be float by pull-up resister. 
;;;197        rPERIPU=(1<<26)|(1<<24);
0005f4  e3a00650          MOV      r0,#0x5000000
0005f8  e28015fe          ADD      r1,r0,#0x3f800000
0005fc  e5810040          STR      r0,[r1,#0x40]
;;;198    }
000600  e12fff1e          BX       lr
                          ENDP

                  Test_StopMode PROC
;;;210    void Test_StopMode(void)
;;;211    {
000604  e92d4010          STMFD    sp!,{r4,lr}
000608  e24dd068          SUB      sp,sp,#0x68
;;;212        int i, j;
;;;213        U32 portStatus[26];
;;;214        Uart_Printf("[STOP Mode Test]\n");
00060c  e28f0fe5          ADR      r0,|L1.2472|
000610  ebfffffe          BL       _printf
;;;215        Uart_Printf("nBATT_FLT pin should be tested.\n");
000614  e28f0fe8          ADR      r0,|L1.2492|
000618  ebfffffe          BL       _printf
;;;216        Uart_Printf("S3C24A0 will wake up by EINT0/1/9, Stylus down, Modem or Alarm(10 sec).\n");
00061c  e59f03bc          LDR      r0,|L1.2528|
000620  ebfffffe          BL       _printf
;;;217    
;;;218        //rLOCKTIME=(0xfff<<16)|(0xfff<<0); // 3602 is about 300us at 12Mhz
;;;219    
;;;220        // Save the port configurations
;;;221    #if GPIO_RESTORE
;;;222        for(i=0;i<26;i++)
000624  e3a04000          MOV      r4,#0
                  |L1.1576|
000628  e354001a          CMP      r4,#0x1a
00062c  aa000006          BGE      |L1.1612|
000630  ea000001          B        |L1.1596|
                  |L1.1588|
000634  e2844001          ADD      r4,r4,#1
000638  eafffffa          B        |L1.1576|
;;;223    	portStatus[i]=*( (volatile U32 *)(0x44800000 + i*4));
                  |L1.1596|
00063c  e51f0598          LDR      r0,|L1.172|
000640  e7900104          LDR      r0,[r0,r4,LSL #2]
000644  e78d0104          STR      r0,[sp,r4,LSL #2]
000648  eafffff9          B        |L1.1588|
;;;224    #endif
;;;225       
;;;226        ConfigStopGPIO(); 
                  |L1.1612|
00064c  ebfffffe          BL       ConfigStopGPIO
;;;227    
;;;228    #if XTAL_ENABLE_STOPMODE
;;;229        rALIVECON&=~(1<<0);
;;;230        rCLKSRC=rCLKSRC&~(1<<8)|(1<<8); //X-Tal oscillator is always enabled even S3C24A0 is in the STOP mode
;;;231    #else 
;;;232        rALIVECON|=(1<<0);
000650  e51f05ac          LDR      r0,|L1.172|
000654  e5900044          LDR      r0,[r0,#0x44]
000658  e3800001          ORR      r0,r0,#1
00065c  e51f15b8          LDR      r1,|L1.172|
000660  e5810044          STR      r0,[r1,#0x44]
;;;233        rXTALWSET=(XTAL_SETTLEDOWN_TIME<<16)|(XTAL_SETTLEDOWN_TIME<<0);
000664  e59f0378          LDR      r0,|L1.2532|
000668  e3a01440          MOV      r1,#0x40000000
00066c  e5810004          STR      r0,[r1,#4]
;;;234    #endif
;;;235    
;;;236        //Wake-up(EINT0)
;;;237        rGPCON_L= (rGPCON_L & ~(3<<0) ) | (2<<0);      //GP0=EINT0
000670  e2810648          ADD      r0,r1,#0x4800000
000674  e5900008          LDR      r0,[r0,#8]
000678  e3c00003          BIC      r0,r0,#3
00067c  e3800002          ORR      r0,r0,#2
000680  e2811648          ADD      r1,r1,#0x4800000
000684  e5810008          STR      r0,[r1,#8]
;;;238    #if CHOOSE_EINT0_TYPE	   
;;;239        SelectEintType();
;;;240    #else
;;;241        rEXTINTC0=( rEXTINTC0 & ~(7<<0) ) | (2<<0);	//EINT0= falling edge triggered
000688  e1a00001          MOV      r0,r1
00068c  e5900018          LDR      r0,[r0,#0x18]
000690  e3c00007          BIC      r0,r0,#7
000694  e3800002          ORR      r0,r0,#2
000698  e5810018          STR      r0,[r1,#0x18]
;;;242    #endif
;;;243    
;;;244        //Wake-up(EINT1)     
;;;245        rGPCON_L= ( rGPCON_L & ~(3<<2) ) | (2<<2); //GP1=EINT1
00069c  e1a00001          MOV      r0,r1
0006a0  e5900008          LDR      r0,[r0,#8]
0006a4  e3c0000c          BIC      r0,r0,#0xc
0006a8  e3800008          ORR      r0,r0,#8
0006ac  e5810008          STR      r0,[r1,#8]
;;;246        rEXTINTC0=( rEXTINTC0 & ~(7<<4) ) | (0<<0); //EINT0=low level triggered
0006b0  e1a00001          MOV      r0,r1
0006b4  e5900018          LDR      r0,[r0,#0x18]
0006b8  e3c00070          BIC      r0,r0,#0x70
0006bc  e5810018          STR      r0,[r1,#0x18]
;;;247    
;;;248        //Wake-up(EINT9) 
;;;249        rGPCON_L= ( rGPCON_L&~(3<<18) ) | (2<<18);     //GP9=EINT9
0006c0  e1a00001          MOV      r0,r1
0006c4  e5900008          LDR      r0,[r0,#8]
0006c8  e3c00ac0          BIC      r0,r0,#0xc0000
0006cc  e3800a80          ORR      r0,r0,#0x80000
0006d0  e5810008          STR      r0,[r1,#8]
;;;250        rEXTINTC1= ( rEXTINTC1 & ~(7<<24) ) | (2<<24); //EINT9=rising edge triggered
0006d4  e1a00001          MOV      r0,r1
0006d8  e590001c          LDR      r0,[r0,#0x1c]
0006dc  e3c00670          BIC      r0,r0,#0x7000000
0006e0  e3800780          ORR      r0,r0,#0x2000000
0006e4  e581001c          STR      r0,[r1,#0x1c]
;;;251        
;;;252        //To test not available wake-up EINT(EINT11) 
;;;253        rGPCON_M=rGPCON_M&~(3<<0)|(2<<0);    //GP11=EINT11
0006e8  e1a00001          MOV      r0,r1
0006ec  e5900004          LDR      r0,[r0,#4]
0006f0  e3c00003          BIC      r0,r0,#3
0006f4  e3800002          ORR      r0,r0,#2
0006f8  e5810004          STR      r0,[r1,#4]
;;;254        rEXTINTC2=rEXTINTC2&~(7<<0)|(2<<0);  //EINT11=falling edge triggered
0006fc  e1a00001          MOV      r0,r1
000700  e5900020          LDR      r0,[r0,#0x20]
000704  e3c00007          BIC      r0,r0,#7
000708  e3800002          ORR      r0,r0,#2
00070c  e5810020          STR      r0,[r1,#0x20]
;;;255    
;;;256        //Interrupt service routine
;;;257        pISR_EINT0_2=(U32)EintInt;	    //for EINT0/1
000710  e59f02d0          LDR      r0,|L1.2536|
000714  e59f12d0          LDR      r1,|L1.2540|
000718  e5810f20          STR      r0,[r1,#0xf20]
;;;258        pISR_EINT7_10=(U32)Eint9Int;    //for EINT9
00071c  e59f02cc          LDR      r0,|L1.2544|
000720  e5810f28          STR      r0,[r1,#0xf28]
;;;259        pISR_EINT11_14=(U32)Eint11Int;  //for EINT11    
000724  e59f02c8          LDR      r0,|L1.2548|
000728  e5810f2c          STR      r0,[r1,#0xf2c]
;;;260        pISR_RTC=(U32)AlarmInt;
00072c  e59f02c4          LDR      r0,|L1.2552|
000730  e5810f98          STR      r0,[r1,#0xf98]
;;;261        pISR_ADC_PENUP_DOWN=(U32)PenDownInt;
000734  e59f02c0          LDR      r0,|L1.2556|
000738  e5810f9c          STR      r0,[r1,#0xf9c]
;;;262        pISR_MODEM=(U32)ModemInt;
00073c  e59f02bc          LDR      r0,|L1.2560|
000740  e5810f6c          STR      r0,[r1,#0xf6c]
;;;263        
;;;264        //Clear all sub pending
;;;265        rEINTPEND=rEINTPEND;
000744  e51f06a0          LDR      r0,|L1.172|
000748  e5900038          LDR      r0,[r0,#0x38]
00074c  e51f16a8          LDR      r1,|L1.172|
000750  e5810038          STR      r0,[r1,#0x38]
;;;266        rSUBSRCPND=(BIT_SUB_PENDN|BIT_SUB_PENUP);
000754  e3a00a60          MOV      r0,#0x60000
000758  e2411646          SUB      r1,r1,#0x4600000
00075c  e5810018          STR      r0,[r1,#0x18]
;;;267    
;;;268        //Clear interrupt pending
;;;269        ClearPending(BIT_EINT11_14);
000760  e3a00008          MOV      r0,#8
000764  e1c11000          BIC      r1,r1,r0
000768  e5810000          STR      r0,[r1,#0]
00076c  e1c10000          BIC      r0,r1,r0
000770  e5900010          LDR      r0,[r0,#0x10]
000774  e5810010          STR      r0,[r1,#0x10]
000778  e1a00001          MOV      r0,r1
00077c  e5900010          LDR      r0,[r0,#0x10]
;;;270        ClearPending(BIT_EINT7_10);
000780  e3a00004          MOV      r0,#4
000784  e1c11000          BIC      r1,r1,r0
000788  e5810000          STR      r0,[r1,#0]
00078c  e1c10000          BIC      r0,r1,r0
000790  e5900010          LDR      r0,[r0,#0x10]
000794  e5810010          STR      r0,[r1,#0x10]
000798  e1a00001          MOV      r0,r1
00079c  e5900010          LDR      r0,[r0,#0x10]
;;;271        ClearPending(BIT_EINT0_2);
0007a0  e3a00001          MOV      r0,#1
0007a4  e1c11000          BIC      r1,r1,r0
0007a8  e5810000          STR      r0,[r1,#0]
0007ac  e1c10000          BIC      r0,r1,r0
0007b0  e5900010          LDR      r0,[r0,#0x10]
0007b4  e5810010          STR      r0,[r1,#0x10]
0007b8  e1a00001          MOV      r0,r1
0007bc  e5900010          LDR      r0,[r0,#0x10]
;;;272        ClearPending(BIT_RTC);
0007c0  e3a00440          MOV      r0,#0x40000000
0007c4  e18014c0          ORR      r1,r0,r0,ASR #9
0007c8  e5810000          STR      r0,[r1,#0]
0007cc  e18004c0          ORR      r0,r0,r0,ASR #9
0007d0  e5900010          LDR      r0,[r0,#0x10]
0007d4  e5810010          STR      r0,[r1,#0x10]
0007d8  e1a00001          MOV      r0,r1
0007dc  e5900010          LDR      r0,[r0,#0x10]
;;;273        ClearPending(BIT_MODEM);
0007e0  e3a00a80          MOV      r0,#0x80000
0007e4  e1c11000          BIC      r1,r1,r0
0007e8  e5810000          STR      r0,[r1,#0]
0007ec  e1c10000          BIC      r0,r1,r0
0007f0  e5900010          LDR      r0,[r0,#0x10]
0007f4  e5810010          STR      r0,[r1,#0x10]
0007f8  e1a00001          MOV      r0,r1
0007fc  e5900010          LDR      r0,[r0,#0x10]
;;;274        ClearPending(BIT_ADC_PENUP_DOWN);
000800  e3a00480          MOV      r0,#0x80000000
000804  e1c11000          BIC      r1,r1,r0
000808  e5810000          STR      r0,[r1,#0]
00080c  e1c10000          BIC      r0,r1,r0
000810  e5900010          LDR      r0,[r0,#0x10]
000814  e5810010          STR      r0,[r1,#0x10]
000818  e1a00001          MOV      r0,r1
00081c  e5900010          LDR      r0,[r0,#0x10]
;;;275    
;;;276    #if 1
;;;277        //Unmask interrupt
;;;278        rINTMSK=rINTMSK&~(BIT_EINT11_14);
000820  e1a00001          MOV      r0,r1
000824  e5900008          LDR      r0,[r0,#8]
000828  e3c00008          BIC      r0,r0,#8
00082c  e5810008          STR      r0,[r1,#8]
;;;279        rINTMSK=rINTMSK&~(BIT_EINT7_10);
000830  e1a00001          MOV      r0,r1
000834  e5900008          LDR      r0,[r0,#8]
000838  e3c00004          BIC      r0,r0,#4
00083c  e5810008          STR      r0,[r1,#8]
;;;280        rINTMSK=rINTMSK&~(BIT_EINT0_2);
000840  e1a00001          MOV      r0,r1
000844  e5900008          LDR      r0,[r0,#8]
000848  e3c00001          BIC      r0,r0,#1
00084c  e5810008          STR      r0,[r1,#8]
;;;281        rINTMSK=rINTMSK&~(BIT_RTC);
000850  e1a00001          MOV      r0,r1
000854  e5900008          LDR      r0,[r0,#8]
000858  e3c00440          BIC      r0,r0,#0x40000000
00085c  e5810008          STR      r0,[r1,#8]
;;;282        rINTMSK=rINTMSK&~(BIT_MODEM); 
000860  e1a00001          MOV      r0,r1
000864  e5900008          LDR      r0,[r0,#8]
000868  e3c00a80          BIC      r0,r0,#0x80000
00086c  e5810008          STR      r0,[r1,#8]
;;;283        rINTMSK=rINTMSK&~(BIT_ADC_PENUP_DOWN);
000870  e1a00001          MOV      r0,r1
000874  e5900008          LDR      r0,[r0,#8]
000878  e3c00480          BIC      r0,r0,#0x80000000
00087c  e5810008          STR      r0,[r1,#8]
;;;284        
;;;285        //Unmask sub interrupt 
;;;286        //rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT0);
;;;287        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT1);
000880  e2810646          ADD      r0,r1,#0x4600000
000884  e5900034          LDR      r0,[r0,#0x34]
000888  e3c00002          BIC      r0,r0,#2
00088c  e2811646          ADD      r1,r1,#0x4600000
000890  e5810034          STR      r0,[r1,#0x34]
;;;288        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT9);
000894  e1a00001          MOV      r0,r1
000898  e5900034          LDR      r0,[r0,#0x34]
00089c  e3c00f80          BIC      r0,r0,#0x200
0008a0  e5810034          STR      r0,[r1,#0x34]
;;;289        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT11);
0008a4  e1a00001          MOV      r0,r1
0008a8  e5900034          LDR      r0,[r0,#0x34]
0008ac  e3c00e80          BIC      r0,r0,#0x800
0008b0  e5810034          STR      r0,[r1,#0x34]
;;;290        rINTSUBMSK&=~(BIT_SUB_PENDN);
0008b4  e2410646          SUB      r0,r1,#0x4600000
0008b8  e590001c          LDR      r0,[r0,#0x1c]
0008bc  e3c00a40          BIC      r0,r0,#0x40000
0008c0  e2411646          SUB      r1,r1,#0x4600000
0008c4  e581001c          STR      r0,[r1,#0x1c]
;;;291        rEINTMASK=rEINTMASK&~(BIT_EINTPEND_EINT0);
0008c8  e2810646          ADD      r0,r1,#0x4600000
0008cc  e5900034          LDR      r0,[r0,#0x34]
0008d0  e3c00001          BIC      r0,r0,#1
0008d4  e2811646          ADD      r1,r1,#0x4600000
0008d8  e5810034          STR      r0,[r1,#0x34]
;;;292        //for(i=0;i<100;i++);
;;;293    #endif	     
;;;294     
;;;295    #if CHECK_SDRAM_SELFREFRESH
;;;296        Test_InitSDRAM(_NONCACHE_STARTADDRESS,0x400000);
0008dc  e3a01840          MOV      r1,#0x400000
0008e0  e3a00544          MOV      r0,#0x11000000
0008e4  ebfffffe          BL       Test_InitSDRAM
;;;297    #endif
;;;298    
;;;299        //rPWRMAN|=(1<<8);
;;;300        

⌨️ 快捷键说明

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