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

📄 sleep.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
000338  e5900034          LDR      r0,[r0,#0x34]
00033c  e3c00f80          BIC      r0,r0,#0x200
000340  e2811646          ADD      r1,r1,#0x4600000
000344  e5810034          STR      r0,[r1,#0x34]
;;;83     }
000348  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
00034c  e25ef004          SUBS     pc,lr,#4
                  |L1.848|
000350  0000002e          DCB      ".\0\0\0"
                          ENDP

                  Set_SleepKey PROC
;;;90     void Set_SleepKey()
;;;91     {
000354  e92d4008          STMFD    sp!,{r3,lr}
;;;92         Uart_Printf("Write sleep-key into internal alive-SRAM. \n");
000358  e28f0024          ADR      r0,|L1.900|
00035c  ebfffffe          BL       _printf
;;;93     
;;;94         rALIVECON |= 1<<3;
000360  e51f02bc          LDR      r0,|L1.172|
000364  e5900044          LDR      r0,[r0,#0x44]
000368  e3800008          ORR      r0,r0,#8
00036c  e51f12c8          LDR      r1,|L1.172|
000370  e5810044          STR      r0,[r1,#0x44]
;;;95         //SRAMKey_Sleep0 = 0xaaaa5555;    //Sleep key0
;;;96         //SRAMKey_Sleep1 = 0x5555aaaa;    //Sleep key1
;;;97         SRAMKey_Count  = 0x0;	    //Repeat test counter
000374  e3a00000          MOV      r0,#0
000378  e1c11000          BIC      r1,r1,r0
00037c  e5810084          STR      r0,[r1,#0x84]
;;;98         //SRAMKey_Run  = 	//Restart pointer
;;;99     }
000380  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.900|
000384  74697257          DCB      "Writ"
000388  6c732065          DCB      "e sl"
00038c  2d706565          DCB      "eep-"
000390  2079656b          DCB      "key "
000394  6f746e69          DCB      "into"
000398  746e6920          DCB      " int"
00039c  616e7265          DCB      "erna"
0003a0  6c61206c          DCB      "l al"
0003a4  2d657669          DCB      "ive-"
0003a8  4d415253          DCB      "SRAM"
0003ac  000a202e          DCB      ". \n\0"
                          ENDP

                  Clear_SleepKey PROC
;;;101    void Clear_SleepKey(void)
;;;102    {
0003b0  e92d4010          STMFD    sp!,{r4,lr}
;;;103        int i;
;;;104        int error=0;
0003b4  e3a04000          MOV      r4,#0
;;;105        Uart_Printf("Erase sleep-keys in the internal SRAM.\n");
0003b8  e28f002c          ADR      r0,|L1.1004|
0003bc  ebfffffe          BL       _printf
;;;106    
;;;107        //SRAMKey_Sleep0 = 0;
;;;108        //SRAMKey_Sleep1 = 0;
;;;109        SRAMKey_Count  = 0;
0003c0  e3a00000          MOV      r0,#0
0003c4  e51f1320          LDR      r1,|L1.172|
0003c8  e5810084          STR      r0,[r1,#0x84]
;;;110        SRAMKey_Run    = 0;
0003cc  e3a00000          MOV      r0,#0
0003d0  e1c11000          BIC      r1,r1,r0
0003d4  e5810088          STR      r0,[r1,#0x88]
;;;111    
;;;112        rALIVECON &= 0x1;
0003d8  e1c10000          BIC      r0,r1,r0
0003dc  e5900044          LDR      r0,[r0,#0x44]
0003e0  e2000001          AND      r0,r0,#1
0003e4  e5810044          STR      r0,[r1,#0x44]
;;;113    }
0003e8  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.1004|
0003ec  73617245          DCB      "Eras"
0003f0  6c732065          DCB      "e sl"
0003f4  2d706565          DCB      "eep-"
0003f8  7379656b          DCB      "keys"
0003fc  206e6920          DCB      " in "
000400  20656874          DCB      "the "
000404  65746e69          DCB      "inte"
000408  6c616e72          DCB      "rnal"
00040c  41525320          DCB      " SRA"
000410  000a2e4d          DCB      "M.\n\0"
                          ENDP

                  ConfigSleepGPIO PROC
;;;115    void ConfigSleepGPIO(void)
;;;116    {
000414  e92d4008          STMFD    sp!,{r3,lr}
;;;117        // Check point
;;;118        // 1) NC pin: input pull-up on 
;;;119        // 2) If input is drived externally: input pull-up off
;;;120        // 3) If a connected component draws some current: output low.
;;;121        // 4) If a connected component draws no current: output high.
;;;122        // 5) UART Tx: Output(H) and enable pull-up
;;;123        //    UART Rx: Input and disable pull-up
;;;124        
;;;125        //CAUTION:Follow the configuration order for setting the ports. 
;;;126        // 1) setting value(GPnDAT) 
;;;127        // 2) setting control register(GPnCON)
;;;128        // 3) configure pull-up resistor(GPnUP)  
;;;129    
;;;130        //rRSTCNT= 35; // 83.3*2048*RSTCNT Value = 6ms
;;;131        //rALIVECON=1; // 32768HZ
;;;132        //rRSTCNT = 1; // 83.3*2048*1 = 62.5ms
;;;133    
;;;134        //Initialize rEXTINTC0,rEXTINTC1,rEXTINTC2
;;;135        rEINTMASK=0xfffff;
000418  e59f00f8          LDR      r0,|L1.1304|
00041c  e51f1378          LDR      r1,|L1.172|
000420  e5810034          STR      r0,[r1,#0x34]
;;;136        rEXTINTC0=0x0;
000424  e3a00000          MOV      r0,#0
000428  e1c11000          BIC      r1,r1,r0
00042c  e5810018          STR      r0,[r1,#0x18]
;;;137        rEXTINTC1=0x100;
000430  e3a00f40          MOV      r0,#0x100
000434  e1c11000          BIC      r1,r1,r0
000438  e581001c          STR      r0,[r1,#0x1c]
;;;138        rEXTINTC2=0x0;
00043c  e3a00000          MOV      r0,#0
000440  e1c11000          BIC      r1,r1,r0
000444  e5810020          STR      r0,[r1,#0x20]
;;;139    
;;;140        //GPIO configuration in Sleep mode(These value should be modified suitably for your system) 
;;;141        //GP5 has some problem so....
;;;142        //Ports     :GP31 GP30 GP29 GP28 GP27 GP26 GP25 GP24 GP23 GP22 GP21 GP20 GP19 GP18 GP17 GP16
;;;143        //GPDAT     :0    1	   1    0    0	  0    0    0    0    0	   0    0    0	  0    0    0
;;;144        //GPOEN     :i    O	   O    i    i	  i    i    i    i    i	   i    i    i	  i    i    i
;;;145        //GPPU      :x    o	   o    x    x	  x    x    x    x    x	   x    x    x	  x    o    o
;;;146        //-------------------------------------------------------------------------------------------
;;;147        //Ports     :GP15 GP14 GP13 GP12 GP11 GP10 GP09 GP08 GP07 GP06 GP05 GP04 GP03 GP02 GP01 GP00
;;;148        //GPDAT     :0    0	   0    0    0	  0    0    0    0    0	   0    0    0	  0    0    0
;;;149        //GPOEN     :i    i	   i    i    i	  i    i    i    i    i	   i    i    i	  i    i    i
;;;150        //GPPU      :o    x	   o    x    x	  o    x    o    x    x    x    x    o    o    x    x
;;;151        rGPDAT_SLEEP = (1<<30)|(1<<29);
000448  e3a00460          MOV      r0,#0x60000000
00044c  e240156e          SUB      r1,r0,#0x1b800000
000450  e5810048          STR      r0,[r1,#0x48]
;;;152        rGPOEN_SLEEP = ~( (1<<30)|(1<<29) );
000454  e3e00460          MVN      r0,#0x60000000
000458  e00110c0          AND      r1,r1,r0,ASR #1
00045c  e581004c          STR      r0,[r1,#0x4c]
;;;153        rGPPU_SLEEP =0x9ffc5af3;
000460  e59f00b4          LDR      r0,|L1.1308|
000464  e00110c0          AND      r1,r1,r0,ASR #1
000468  e5810050          STR      r0,[r1,#0x50]
;;;154        Uart_Printf("\n\n@@@ rGPDAT_SLEEP=0x%x\n",rGPDAT_SLEEP);
00046c  e00100c0          AND      r0,r1,r0,ASR #1
000470  e5900048          LDR      r0,[r0,#0x48]
000474  e1a01000          MOV      r1,r0
000478  e28f00a0          ADR      r0,|L1.1312|
00047c  ebfffffe          BL       _printf
;;;155        Uart_Printf("@@@ rGPOEN_SLEEP=0x%x\n",rGPOEN_SLEEP);
000480  e51f03dc          LDR      r0,|L1.172|
000484  e590004c          LDR      r0,[r0,#0x4c]
000488  e1a01000          MOV      r1,r0
00048c  e28f00a8          ADR      r0,|L1.1340|
000490  ebfffffe          BL       _printf
;;;156        Uart_Printf("@@@ rGPPU_SLEEP=0x%x\n\n",rGPPU_SLEEP);
000494  e51f03f0          LDR      r0,|L1.172|
000498  e5900050          LDR      r0,[r0,#0x50]
00049c  e1a01000          MOV      r1,r0
0004a0  e28f00ac          ADR      r0,|L1.1364|
0004a4  ebfffffe          BL       _printf
;;;157    
;;;158        //Set output value during SLEEP mode
;;;159        rPERIDAT_SLEEP0=0x80913202;	//1000, 0000, 1001, 0001 \ 0011, 0010, 0000, 0010
0004a8  e59f00bc          LDR      r0,|L1.1388|
0004ac  e51f1408          LDR      r1,|L1.172|
0004b0  e5810054          STR      r0,[r1,#0x54]
;;;160        rPERIDAT_SLEEP1=0x28;	//                                     0100, 1000 
0004b4  e3a00028          MOV      r0,#0x28
0004b8  e1c11000          BIC      r1,r1,r0
0004bc  e5810058          STR      r0,[r1,#0x58]
;;;161        
;;;162        //Enable the output during SLEEP mode
;;;163        rPERIOEN_SLEEP0=0x1f73c3;	//            0001, 1111 \ 0111, 0011, 1100, 0011 
0004c0  e59f00a8          LDR      r0,|L1.1392|
0004c4  e1c11000          BIC      r1,r1,r0
0004c8  e581005c          STR      r0,[r1,#0x5c]
;;;164        rPERIOEN_SLEEP1=0x300000;	//            0011, 0000 \ 0000, 0000, 0000, 0000  
0004cc  e3a009c0          MOV      r0,#0x300000
0004d0  e1c11000          BIC      r1,r1,r0
0004d4  e5810060          STR      r0,[r1,#0x60]
;;;165        
;;;166        //Configure pull-up during SLEEP mode
;;;167        rPERIPU_SLEEP=0x5000f00;	//      0101, 0000, 0000 \ 0000, 1111, 0000, 0000
0004d8  e59f0094          LDR      r0,|L1.1396|
0004dc  e1c11140          BIC      r1,r1,r0,ASR #2
0004e0  e5810064          STR      r0,[r1,#0x64]
;;;168    
;;;169        rALIVECON |= (1<<0);//Alive block uses RTC clk  
0004e4  e1c10140          BIC      r0,r1,r0,ASR #2
0004e8  e5900044          LDR      r0,[r0,#0x44]
0004ec  e3800001          ORR      r0,r0,#1
0004f0  e5810044          STR      r0,[r1,#0x44]
;;;170    
;;;171        rRSTCNT= 0x10; //about 1sec
0004f4  e3a00010          MOV      r0,#0x10
0004f8  e1c11000          BIC      r1,r1,r0
0004fc  e5810068          STR      r0,[r1,#0x68]
;;;172    
;;;173    
;;;174        //rPERIOEN_SLEEP0 &= ( ~(1<<8) & ~(1<<6) );
;;;175        Uart_Printf("\n @@@PERIOEN_SLEEP0=0x%x @@@\n\n", rPERIOEN_SLEEP0);
000500  e1c10000          BIC      r0,r1,r0
000504  e590005c          LDR      r0,[r0,#0x5c]
000508  e1a01000          MOV      r1,r0
00050c  e28f0064          ADR      r0,|L1.1400|
000510  ebfffffe          BL       _printf
;;;176    
;;;177    
;;;178    /*        
;;;179        //Set output value during SLEEP mode
;;;180        rDATRinSLEEP0=0x80912222;//1000, 0000, 1001, 0001 \ 0010, 0010, 0010, 0010
;;;181        rDATRinSLEEP1=0x00040010;//0000, 0000, 0000, 0100 \ 0000, 0000, 0001, 0000    
;;;182        
;;;183        //Configure pull-up during SLEEP mode
;;;184        rENPUinSLEEP =0x050f0600;//0000, 0101, 0000, 1111 \ 0000, 0110, 0000, 0000
;;;185    
;;;186        
;;;187    #if XTAL_ENABLE_SLEEPMODE//Xtal is enabled during SLEEP mode
;;;188        //Set power settle down time
;;;189        rALIVECON=0; // 12MHZ, 83.3ns
;;;190        //rRSTCNT= 0x1; // 83.3*2048*RSTCNT Value = 6ms
;;;191        rRSTCNT= 0x50; 
;;;192        rOENinSLEEP0=(1<<21)|(1<<20)| //XmiDATA[7:0] | XeaHREADY
;;;193    	(1<<19)|(1<<18)|(1<<17)|(1<<16)| //XeaHDATA[31:0] | XeaHADDR[31:0] | XeaHWRITE,SIZE[2:0] | XeaHTRANS[1:0],BURST[2:0] 
;;;194    	(0<<15)|(1<<14)|(1<<13)|(1<<12)| //XjTDO | XsXTOUT | XsdDAT[3:0] | XmsSDIO
;;;195    	(0<<11)|(0<<10)|(1<< 9)|(0<< 8)| //XvSD | XvVD[23:0] | UdSUSPND | UdOEN
;;;196    	(1<< 7)|(0<< 6)|(0<< 5)|(0<< 4)| //usSUSPND | usOEN[1:0] | XspiCLK,MISO,MOSI | X2sLRCK,CLK
;;;197    	(0<< 3)|(1<< 2)|(1<< 1)|(1<< 0); //Reserved | XdDATA[31:0] | XpDATA[31:0] | XrDATA[31:0]
;;;198    #else
;;;199        //Set power settle down time
;;;200        rALIVECON=1; // 32.768KHZ, 
;;;201        rRSTCNT= 0x10; //about 1sec
;;;202        //rRSTCNT= 0xff; //Boaz
;;;203        //rRSTCNT= 0x0; //Boaz
;;;204        //rRSTCNT= 0x80; //Boaz
;;;205        rOENinSLEEP0=(1<<21)|(1<<20)| //XmiDATA[7:0] | XeaHREADY
;;;206    	(1<<19)|(1<<18)|(1<<17)|(1<<16)| //XeaHDATA[31:0] | XeaHADDR[31:0] | XeaHWRITE,SIZE[2:0] | XeaHTRANS[1:0],BURST[2:0] 
;;;207    	(0<<15)|(0<<14)|(1<<13)|(1<<12)| //XjTDO | XsXTOUT | XsdDAT[3:0] | XmsSDIO
;;;208    	(0<<11)|(0<<10)|(1<< 9)|(0<< 8)| //XvSD | XvVD[23:0] | UdSUSPND | UdOEN
;;;209    	(1<< 7)|(0<< 6)|(0<< 5)|(0<< 4)| //usSUSPND | usOEN[1:0] | XspiCLK,MISO,MOSI | X2sLRCK,CLK
;;;210    	(0<< 3)|(1<< 2)|(1<< 1)|(1<< 0); //Reserved | XdDATA[31:0] | XpDATA[31:0] | XrDATA[31:0]
;;;211    #endif
;;;212    */
;;;213    }
000514  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.1304|
000518  000fffff          DCD      0x000fffff
                  |L1.1308|
00051c  9ffc5af3          DCD      0x9ffc5af3
                  |L1.1312|
000520  40400a0a          DCB      "\n\n@@"
000524  47722040          DCB      "@ rG"
000528  54414450          DCB      "PDAT"
00052c  454c535f          DCB      "_SLE"
000530  303d5045          DCB      "EP=0"
000534  0a782578          DCB      "x%x\n"
000538  00000000          DCB      "\0\0\0\0"
                  |L1.1340|
00053c  20404040          DCB      "@@@ "
000540  4f504772          DCB      "rGPO"
000544  535f4e45          DCB      "EN_S"
000548  5045454c          DCB      "LEEP"
00054c  2578303d          DCB      "=0x%"
000550  00000a78          DCB      "x\n\0\0"
                  |L1.1364|
000554  20404040          DCB      "@@@ "
000558  50504772          DCB      "rGPP"
00055c  4c535f55          DCB      "U_SL"
000560  3d504545          DCB      "EEP="
000564  78257830          DCB      "0x%x"
000568  00000a0a          DCB      "\n\n\0\0"
                  |L1.1388|
00056c  80913202          DCD      0x80913202
                  |L1.1392|
000570  001f73c3          DCD      0x001f73c3
                  |L1.1396|
000574  05000f00          DCD      0x05000f00
                  |L1.1400|
000578  4040200a          DCB      "\n @@"
00057c  52455040          DCB      "@PER"
000580  4e454f49          DCB      "IOEN"
000584  454c535f          DCB      "_SLE"
000588  3d305045          DCB      "EP0="
00058c  78257830          DCB      "0x%x"
000590  40404020          DCB      " @@@"
000594  00000a0a          DCB      "\n\n\0\0"
                          ENDP

                  Test_SleepMode PROC
;;;215    void Test_SleepMode(void)
;;;216    {
000598  e92d4008          STMFD    sp!,{r3,lr}

⌨️ 快捷键说明

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