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

📄 power.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; generated by ARM C Compiler, ADS1.2 [Build 805]

; commandline [-errors .\err\power.err -O0 -asm -g+ -cpu 5TEJ -fs -Wd -Ec -I.\include "-IC:\Program Files\ARM\ADSv1_2\INCLUDE"]
                          CODE32

                          AREA ||.text||, CODE, READONLY

                  Ch33_Power_Test PROC
;;;53     void Ch33_Power_Test(void)
;;;54     {
                  |L1.0|
000000  e92d4010          STMFD    sp!,{r4,lr}
;;;55         int i;
;;;56     	    
;;;57         Uart_Printf("\nPower mode test.\n");
000004  e28f00bc          ADR      r0,|L1.200|
000008  ebfffffe          BL       _printf
;;;58     
;;;59         while(1)
00000c  e1a00000          NOP      
                  |L1.16|
000010  e1a00000          NOP      
;;;60         {
;;;61     	i=0;
000014  e3a04000          MOV      r4,#0
;;;62     	Uart_Printf("\n\n");
000018  e28f00bc          ADR      r0,|L1.220|
00001c  ebfffffe          BL       _printf
;;;63     	while(1)
000020  e1a00000          NOP      
                  |L1.36|
000024  e1a00000          NOP      
;;;64     	{   //display menu
;;;65     	    Uart_Printf("%2d:%s",i,func_power_test[i][1]);
000028  e59f00b0          LDR      r0,|L1.224|
00002c  e0800184          ADD      r0,r0,r4,LSL #3
000030  e1a01004          MOV      r1,r4
000034  e5902004          LDR      r2,[r0,#4]
000038  e28f00a4          ADR      r0,|L1.228|
00003c  ebfffffe          BL       _printf
;;;66     	    i++;
000040  e2844001          ADD      r4,r4,#1
;;;67     	    if((int)(func_power_test[i][0])==0)
000044  e59f0094          LDR      r0,|L1.224|
000048  e7900184          LDR      r0,[r0,r4,LSL #3]
00004c  e3500000          CMP      r0,#0
000050  1a000002          BNE      |L1.96|
;;;68     	    {
;;;69     		Uart_Printf("\n");
000054  e28f0090          ADR      r0,|L1.236|
000058  ebfffffe          BL       _printf
;;;70     		break;
00005c  ea000007          B        |L1.128|
;;;71     	    }
;;;72     	    if((i%3)==0)
                  |L1.96|
000060  e1a01004          MOV      r1,r4
000064  e3a00003          MOV      r0,#3
000068  ebfffffe          BL       __rt_sdiv
00006c  e3510000          CMP      r1,#0
000070  1a000001          BNE      |L1.124|
;;;73     	    Uart_Printf("\n");
000074  e28f0070          ADR      r0,|L1.236|
000078  ebfffffe          BL       _printf
;;;74     	}
                  |L1.124|
00007c  eaffffe8          B        |L1.36|
;;;75     
;;;76     	Uart_Printf("\nSelect (\"-1\" to exit) : ");
                  |L1.128|
000080  e28f0068          ADR      r0,|L1.240|
000084  ebfffffe          BL       _printf
;;;77     	i = Uart_GetIntNum();
000088  ebfffffe          BL       Uart_GetIntNum
00008c  e1a04000          MOV      r4,r0
;;;78     	if(i==-1) 
000090  e3740001          CMN      r4,#1
000094  1a000000          BNE      |L1.156|
;;;79     	    break;		// return.
000098  ea000007          B        |L1.188|
;;;80     	if(i>=0 && (i<((sizeof(func_power_test)-1)/8)) )	// select and execute...
                  |L1.156|
00009c  e3540000          CMP      r4,#0
0000a0  ba000004          BLT      |L1.184|
0000a4  e3540010          CMP      r4,#0x10
0000a8  2a000002          BCS      |L1.184|
;;;81     	    ( (void (*)(void)) (func_power_test[i][0]) )();
0000ac  e59f102c          LDR      r1,|L1.224|
0000b0  e7910184          LDR      r0,[r1,r4,LSL #3]
0000b4  e12fff30          BLX      r0
;;;82         }
                  |L1.184|
0000b8  eaffffd4          B        |L1.16|
;;;83         Uart_Printf("\nPower_Test program end.\n");
                  |L1.188|
0000bc  e28f0048          ADR      r0,|L1.268|
0000c0  ebfffffe          BL       _printf
;;;84     }
0000c4  e8bd8010          LDMFD    sp!,{r4,pc}
                  |L1.200|
0000c8  776f500a          DCB      "\nPow"
0000cc  6d207265          DCB      "er m"
0000d0  2065646f          DCB      "ode "
0000d4  74736574          DCB      "test"
0000d8  00000a2e          DCB      ".\n\0\0"
                  |L1.220|
0000dc  00000a0a          DCB      "\n\n\0\0"
                  |L1.224|
0000e0  00000000          DCD      func_power_test
                  |L1.228|
0000e4  3a643225          DCB      "%2d:"
0000e8  00007325          DCB      "%s\0\0"
                  |L1.236|
0000ec  0000000a          DCB      "\n\0\0\0"
                  |L1.240|
0000f0  6c65530a          DCB      "\nSel"
0000f4  20746365          DCB      "ect "
0000f8  312d2228          DCB      "(\"-1"
0000fc  6f742022          DCB      "\" to"
000100  69786520          DCB      " exi"
000104  3a202974          DCB      "t) :"
000108  00000020          DCB      " \0\0\0"
                  |L1.268|
00010c  776f500a          DCB      "\nPow"
000110  545f7265          DCB      "er_T"
000114  20747365          DCB      "est "
000118  676f7270          DCB      "prog"
00011c  206d6172          DCB      "ram "
000120  2e646e65          DCB      "end."
000124  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  SlowEint0Int PROC
;;;143    void __irq SlowEint0Int(void)
;;;144    {
000128  e92d0003          STMFD    sp!,{r0,r1}
;;;145        rINTMSK=BIT_ALLMSK;
00012c  e3e00000          MVN      r0,#0
000130  e59f122c          LDR      r1,|L1.868|
000134  e5810008          STR      r0,[r1,#8]
;;;146        rEINTMASK=BIT_EINTPEND_ALLMSK;
000138  e1a00620          MOV      r0,r0,LSR #12
00013c  e2811646          ADD      r1,r1,#0x4600000
000140  e5810034          STR      r0,[r1,#0x34]
;;;147        rEINTPEND=BIT_EINTPEND_EINT0;
000144  e3a00001          MOV      r0,#1
000148  e1c11000          BIC      r1,r1,r0
00014c  e5810038          STR      r0,[r1,#0x38]
;;;148        ClearPending(BIT_EINT0_2);
000150  e3a00001          MOV      r0,#1
000154  e2411646          SUB      r1,r1,#0x4600000
000158  e5810000          STR      r0,[r1,#0]
00015c  e1c10000          BIC      r0,r1,r0
000160  e5900010          LDR      r0,[r0,#0x10]
000164  e5810010          STR      r0,[r1,#0x10]
000168  e1a00001          MOV      r0,r1
00016c  e5900010          LDR      r0,[r0,#0x10]
;;;149        slowExit=1;
000170  e3a00001          MOV      r0,#1
000174  e59f11ec          LDR      r1,|L1.872|
000178  e5810000          STR      r0,[r1,#0]  ; slowExit
;;;150    }
00017c  e8bd0003          LDMFD    sp!,{r0,r1}
000180  e25ef004          SUBS     pc,lr,#4
                          ENDP

                  Test_SlowMode PROC
;;;86     void Test_SlowMode(void)
;;;87     {
000184  e92d4070          STMFD    sp!,{r4-r6,lr}
;;;88         int i;
;;;89         unsigned int saveLCD;
;;;90         unsigned int saveREFRESH;
;;;91     
;;;92         slowExit=0;
000188  e3a00000          MOV      r0,#0
00018c  e59f11d4          LDR      r1,|L1.872|
000190  e5810000          STR      r0,[r1,#0]  ; slowExit
;;;93         saveREFRESH=rSDRAM_REFRESH;
000194  e59f01d0          LDR      r0,|L1.876|
000198  e5900008          LDR      r0,[r0,#8]
00019c  e1a06000          MOV      r6,r0
;;;94         saveLCD=rLCDCON1;
0001a0  e3a0044a          MOV      r0,#0x4a000000
0001a4  e5900000          LDR      r0,[r0,#0]
0001a8  e1a05000          MOV      r5,r0
;;;95     
;;;96         rGPCON_L=( rGPCON_L & ~(3<<0) ) |(2<<0);	//GP0=EINT0
0001ac  e59f01bc          LDR      r0,|L1.880|
0001b0  e5900008          LDR      r0,[r0,#8]
0001b4  e3c00003          BIC      r0,r0,#3
0001b8  e3800002          ORR      r0,r0,#2
0001bc  e59f11ac          LDR      r1,|L1.880|
0001c0  e5810008          STR      r0,[r1,#8]
;;;97         rEXTINTC0=( rEXTINTC0 & ~(7<<0) ) |(2<<0);	//EINT0=falling edge triggered
0001c4  e1a00001          MOV      r0,r1
0001c8  e5900018          LDR      r0,[r0,#0x18]
0001cc  e3c00007          BIC      r0,r0,#7
0001d0  e3800002          ORR      r0,r0,#2
0001d4  e5810018          STR      r0,[r1,#0x18]
;;;98     
;;;99         pISR_EINT0_2=(U32)SlowEint0Int;
0001d8  e59f0194          LDR      r0,|L1.884|
0001dc  e59f1194          LDR      r1,|L1.888|
0001e0  e5810f20          STR      r0,[r1,#0xf20]
;;;100        ClearPending(BIT_EINT0_2);
0001e4  e3a00001          MOV      r0,#1
0001e8  e59f1174          LDR      r1,|L1.868|
0001ec  e5810000          STR      r0,[r1,#0]
0001f0  e1c10000          BIC      r0,r1,r0
0001f4  e5900010          LDR      r0,[r0,#0x10]
0001f8  e5810010          STR      r0,[r1,#0x10]
0001fc  e1a00001          MOV      r0,r1
000200  e5900010          LDR      r0,[r0,#0x10]
;;;101        rEINTPEND=BIT_EINTPEND_EINT0;
000204  e3a00001          MOV      r0,#1
000208  e2811646          ADD      r1,r1,#0x4600000
00020c  e5810038          STR      r0,[r1,#0x38]
;;;102        rEINTMASK=~BIT_EINTPEND_EINT0;
000210  e3e00001          MVN      r0,#1
000214  e0011000          AND      r1,r1,r0
000218  e5810034          STR      r0,[r1,#0x34]
;;;103        rINTMSK=~BIT_EINT0_2;
00021c  e3e00001          MVN      r0,#1
000220  e2411646          SUB      r1,r1,#0x4600000
000224  e5810008          STR      r0,[r1,#8]
;;;104    
;;;105        Uart_Printf("[SLOW MODE TEST]\n");
000228  e28f0f53          ADR      r0,|L1.892|
00022c  ebfffffe          BL       _printf
;;;106        Uart_Printf("  1. LEDs are flickered by 200ms period at %dMhz 20 times.\n",FCLK/1000000);
000230  e3a010cc          MOV      r1,#0xcc
000234  e28f0f55          ADR      r0,|L1.912|
000238  ebfffffe          BL       _printf
;;;107        Uart_Printf("  2. Entering SLOW mode.\n");
00023c  e28f0f62          ADR      r0,|L1.972|
000240  ebfffffe          BL       _printf
;;;108        Uart_Printf("  3. LEDs are flickered by %fms period at %dMhz until......\n",(float)(200*FCLK/FIN), FCLK/1000000);
000244  e3a030cc          MOV      r3,#0xcc
000248  e28f0f66          ADR      r0,|L1.1000|
00024c  e8900006          LDMIA    r0,{r1,r2}
000250  e28f0f66          ADR      r0,|L1.1008|
000254  ebfffffe          BL       printf
;;;109        Uart_Printf("  4. Press EINT0 key to exit SLOW mode\n");
000258  e28f0f74          ADR      r0,|L1.1072|
00025c  ebfffffe          BL       _printf
;;;110        Uart_TxEmpty(0);	//To avoid being crushed the character
000260  e3a00000          MOV      r0,#0
000264  ebfffffe          BL       Uart_TxEmpty
;;;111    
;;;112        for(i=0;i<20;i++)
000268  e3a04000          MOV      r4,#0
                  |L1.620|
00026c  e3540014          CMP      r4,#0x14
000270  aa00000b          BGE      |L1.676|
000274  ea000001          B        |L1.640|
                  |L1.632|
000278  e2844001          ADD      r4,r4,#1
00027c  eafffffa          B        |L1.620|
;;;113        {
;;;114    	Led_Display(0x0);
                  |L1.640|
000280  e3a00000          MOV      r0,#0
000284  ebfffffe          BL       Led_Display
;;;115    	Delay(1000);
000288  e3a00ffa          MOV      r0,#0x3e8
00028c  ebfffffe          BL       Delay
;;;116    	Led_Display(0xf);
000290  e3a0000f          MOV      r0,#0xf
000294  ebfffffe          BL       Led_Display
;;;117    	Delay(1000);
000298  e3a00ffa          MOV      r0,#0x3e8
00029c  ebfffffe          BL       Delay
;;;118        }
0002a0  eafffff4          B        |L1.632|
;;;119    
;;;120        rCLKSRC=(0<<8)|(0<<7)|(1<<5)|(1<<4)|(0); // OnOSC_EN disable,U_PLL on,M_PLL off,External clk,Divider=0
                  |L1.676|
0002a4  e3a00030          MOV      r0,#0x30
0002a8  e3a01440          MOV      r1,#0x40000000
0002ac  e5810024          STR      r0,[r1,#0x24]
;;;121    
;;;122        rSDRAM_REFRESH=7.8*(FIN/1000000); // Period= 7.8us
0002b0  e3a0005d          MOV      r0,#0x5d
0002b4  e28118c4          ADD      r1,r1,#0xc40000
0002b8  e5810008          STR      r0,[r1,#8]
;;;123        //The other memory control register should be optimized for SLOW mode.
;;;124    
;;;125        rLCDCON1&=0xffffffe; // Disable Video output and control signal
0002bc  e3a0044a          MOV      r0,#0x4a000000
0002c0  e5900000          LDR      r0,[r0,#0]
0002c4  e3c0037c          BIC      r0,r0,#0xf0000001
0002c8  e3a0144a          MOV      r1,#0x4a000000
0002cc  e5810000          STR      r0,[r1,#0]
;;;126        rLCDCON1=(rLCDCON1 & ~(0x3ff<<8) ) |(1<<0); //Change CLKVAL & Enable ENVID bit
0002d0  e3a0044a          MOV      r0,#0x4a000000
0002d4  e5900000          LDR      r0,[r0,#0]
0002d8  e3c00bc0          BIC      r0,r0,#0x30000
0002dc  e3c00cff          BIC      r0,r0,#0xff00
0002e0  e3800001          ORR      r0,r0,#1
0002e4  e3a0144a          MOV      r1,#0x4a000000
0002e8  e5810000          STR      r0,[r1,#0]
;;;127    
;;;128        while(!slowExit)
0002ec  e1a00000          NOP      
                  |L1.752|
0002f0  e59f0070          LDR      r0,|L1.872|
0002f4  e5900000          LDR      r0,[r0,#0]  ; slowExit
0002f8  e3500000          CMP      r0,#0
0002fc  1a000008          BNE      |L1.804|
;;;129        {
;;;130    	Led_Display(0x0);
000300  e3a00000          MOV      r0,#0
000304  ebfffffe          BL       Led_Display
;;;131    	Delay(1000);
000308  e3a00ffa          MOV      r0,#0x3e8
00030c  ebfffffe          BL       Delay
;;;132    	Led_Display(0xf);
000310  e3a0000f          MOV      r0,#0xf
000314  ebfffffe          BL       Led_Display
;;;133    	Delay(1000);
000318  e3a00ffa          MOV      r0,#0x3e8
00031c  ebfffffe          BL       Delay
;;;134        }
000320  eafffff2          B        |L1.752|
;;;135    	
;;;136        rCLKSRC=(0<<8)|(0<<7)|(0<<5)|(1<<4)|(0); // OnOSC_EN disable,U_PLL on,M_PLL on,External clk,Divider=0
                  |L1.804|
000324  e3a00010          MOV      r0,#0x10
000328  e3a01440          MOV      r1,#0x40000000
00032c  e5810024          STR      r0,[r1,#0x24]
;;;137        for(i=0;i<2048;i++); //S/W MPLL lock-time
000330  e3a04000          MOV      r4,#0
                  |L1.820|
000334  e3540e80          CMP      r4,#0x800
000338  aa000001          BGE      |L1.836|
00033c  e2844001          ADD      r4,r4,#1

⌨️ 快捷键说明

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