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

📄 pwr_c.txt

📁 支持三星原产的S3C24A0开发板
💻 TXT
📖 第 1 页 / 共 5 页
字号:
00030c  2e747365          DCB      "est."
000310  0000000a          DCB      "\n\0\0\0"
                          ENDP

                  PWR_StartTimer PROC
;;;216    void PWR_StartTimer(void)
;;;217    {
000314  e92d4008          STMFD    sp!,{r3,lr}
;;;218        Uart_Printf("All 5 timers are running.\n");
000318  e28f00a0          ADR      r0,|L1.960|
00031c  ebfffffe          BL       _printf
;;;219        
;;;220        rTCFG0=0x8080;   //Prescaler=128; 
000320  e59f00b4          LDR      r0,|L1.988|
000324  e3a01444          MOV      r1,#0x44000000
000328  e5810000          STR      r0,[r1,#0]
;;;221        rTCFG1=0x11111;  //Devider=1/4;
00032c  e59f00ac          LDR      r0,|L1.992|
000330  e3a01444          MOV      r1,#0x44000000
000334  e5810004          STR      r0,[r1,#4]
;;;222        rTCNTB0=0x8000;  //Count buffer=32768
000338  e3a00c80          MOV      r0,#0x8000
00033c  e3a01444          MOV      r1,#0x44000000
000340  e581000c          STR      r0,[r1,#0xc]
;;;223        rTCMPB0=0x4000;  //Compare buffer=16384
000344  e3a00c40          MOV      r0,#0x4000
000348  e3a01444          MOV      r1,#0x44000000
00034c  e5810010          STR      r0,[r1,#0x10]
;;;224        rTCNTB1=0x8000;
000350  e3a00c80          MOV      r0,#0x8000
000354  e3a01444          MOV      r1,#0x44000000
000358  e5810018          STR      r0,[r1,#0x18]
;;;225        rTCMPB1=0x4000;
00035c  e3a00c40          MOV      r0,#0x4000
000360  e3a01444          MOV      r1,#0x44000000
000364  e581001c          STR      r0,[r1,#0x1c]
;;;226        rTCNTB2=0x8000;
000368  e3a00c80          MOV      r0,#0x8000
00036c  e3a01444          MOV      r1,#0x44000000
000370  e5810024          STR      r0,[r1,#0x24]
;;;227        rTCMPB2=0x4000;
000374  e3a00c40          MOV      r0,#0x4000
000378  e3a01444          MOV      r1,#0x44000000
00037c  e5810028          STR      r0,[r1,#0x28]
;;;228        rTCNTB3=0x8000;
000380  e3a00c80          MOV      r0,#0x8000
000384  e3a01444          MOV      r1,#0x44000000
000388  e5810030          STR      r0,[r1,#0x30]
;;;229        rTCMPB3=0x4000;
00038c  e3a00c40          MOV      r0,#0x4000
000390  e3a01444          MOV      r1,#0x44000000
000394  e5810034          STR      r0,[r1,#0x34]
;;;230        rTCNTB4=0x8000;
000398  e3a00c80          MOV      r0,#0x8000
00039c  e3a01444          MOV      r1,#0x44000000
0003a0  e581003c          STR      r0,[r1,#0x3c]
;;;231        rTCON=0x6aaa0a;  //manual update
0003a4  e59f0038          LDR      r0,|L1.996|
0003a8  e3a01444          MOV      r1,#0x44000000
0003ac  e5810008          STR      r0,[r1,#8]
;;;232        rTCON=0x599909;  //run
0003b0  e59f0030          LDR      r0,|L1.1000|
0003b4  e3a01444          MOV      r1,#0x44000000
0003b8  e5810008          STR      r0,[r1,#8]
;;;233    }
0003bc  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.960|
0003c0  206c6c41          DCB      "All "
0003c4  69742035          DCB      "5 ti"
0003c8  7372656d          DCB      "mers"
0003cc  65726120          DCB      " are"
0003d0  6e757220          DCB      " run"
0003d4  676e696e          DCB      "ning"
0003d8  00000a2e          DCB      ".\n\0\0"
                  |L1.988|
0003dc  00008080          DCD      0x00008080
                  |L1.992|
0003e0  00011111          DCD      0x00011111
                  |L1.996|
0003e4  006aaa0a          DCD      0x006aaa0a
                  |L1.1000|
0003e8  00599909          DCD      0x00599909
                          ENDP

                  PWR_IsrDma0 PROC
;;;238    void __irq PWR_IsrDma0(void)
;;;239    {
0003ec  e92d500f          STMFD    sp!,{r0-r3,r12,lr}
;;;240        rINTSUBMSK=rINTSUBMSK|(BIT_SUB_DMA0);
0003f0  e51f02f8          LDR      r0,|L1.256|
0003f4  e590001c          LDR      r0,[r0,#0x1c]
0003f8  e3800780          ORR      r0,r0,#0x2000000
0003fc  e51f1304          LDR      r1,|L1.256|
000400  e581001c          STR      r0,[r1,#0x1c]
;;;241        rINTMSK=rINTMSK|(BIT_DMA);
000404  e1a00001          MOV      r0,r1
000408  e5900008          LDR      r0,[r0,#8]
00040c  e3800940          ORR      r0,r0,#0x100000
000410  e5810008          STR      r0,[r1,#8]
;;;242        ClearPending(BIT_DMA);
000414  e3a00940          MOV      r0,#0x100000
000418  e1c11000          BIC      r1,r1,r0
00041c  e5810000          STR      r0,[r1,#0]
000420  e1c10000          BIC      r0,r1,r0
000424  e5900010          LDR      r0,[r0,#0x10]
000428  e5810010          STR      r0,[r1,#0x10]
00042c  e1a00001          MOV      r0,r1
000430  e5900010          LDR      r0,[r0,#0x10]
;;;243        rSUBSRCPND=BIT_SUB_DMA0;
000434  e3a00780          MOV      r0,#0x2000000
000438  e1c11000          BIC      r1,r1,r0
00043c  e5810018          STR      r0,[r1,#0x18]
;;;244    
;;;245        Uart_Printf("$");
000440  e28f0038          ADR      r0,|L1.1152|
000444  ebfffffe          BL       _printf
;;;246        rDMASKTRIG0=0x3; 	
000448  e3a00003          MOV      r0,#3
00044c  e59f1030          LDR      r1,|L1.1156|
000450  e5810020          STR      r0,[r1,#0x20]
;;;247    
;;;248        rINTMSK=rINTMSK&~(BIT_DMA);
000454  e0210a80          EOR      r0,r1,r0,LSL #21
000458  e5900008          LDR      r0,[r0,#8]
00045c  e3c00940          BIC      r0,r0,#0x100000
000460  e2411980          SUB      r1,r1,#0x200000
000464  e5810008          STR      r0,[r1,#8]
;;;249        rINTSUBMSK=rINTSUBMSK&~(BIT_SUB_DMA0);
000468  e1a00001          MOV      r0,r1
00046c  e590001c          LDR      r0,[r0,#0x1c]
000470  e3c00780          BIC      r0,r0,#0x2000000
000474  e581001c          STR      r0,[r1,#0x1c]
;;;250    }
000478  e8bd500f          LDMFD    sp!,{r0-r3,r12,lr}
00047c  e25ef004          SUBS     pc,lr,#4
                  |L1.1152|
000480  00000024          DCB      "$$\0\0\0"
                  |L1.1156|
000484  40400000          DCD      0x40400000
                          ENDP

                  StartDmaMem2Mem PROC
;;;252    void StartDmaMem2Mem(void)
;;;253    {
000488  e92d4008          STMFD    sp!,{r3,lr}
;;;254        Uart_Printf("seamless DMA0 SDRAM->SDRAM transfer is running.\n");
00048c  e28f00a0          ADR      r0,|L1.1332|
000490  ebfffffe          BL       _printf
;;;255        
;;;256        pISR_DMA=(unsigned)PWR_IsrDma0;	
000494  e59f00cc          LDR      r0,|L1.1384|
000498  e51f1270          LDR      r1,|L1.560|
00049c  e5810f70          STR      r0,[r1,#0xf70]
;;;257        //Clear interrupt pending
;;;258        ClearPending(BIT_DMA);
0004a0  e3a00940          MOV      r0,#0x100000
0004a4  e51f13ac          LDR      r1,|L1.256|
0004a8  e5810000          STR      r0,[r1,#0]
0004ac  e1c10000          BIC      r0,r1,r0
0004b0  e5900010          LDR      r0,[r0,#0x10]
0004b4  e5810010          STR      r0,[r1,#0x10]
0004b8  e1a00001          MOV      r0,r1
0004bc  e5900010          LDR      r0,[r0,#0x10]
;;;259        rSUBSRCPND=BIT_SUB_DMA0;
0004c0  e3a00780          MOV      r0,#0x2000000
0004c4  e1c11000          BIC      r1,r1,r0
0004c8  e5810018          STR      r0,[r1,#0x18]
;;;260        //Unmask interrupt
;;;261        rINTMSK=rINTMSK&~(BIT_DMA);
0004cc  e1c10000          BIC      r0,r1,r0
0004d0  e5900008          LDR      r0,[r0,#8]
0004d4  e3c00940          BIC      r0,r0,#0x100000
0004d8  e5810008          STR      r0,[r1,#8]
;;;262        rINTSUBMSK=rINTSUBMSK&~(BIT_SUB_DMA0);
0004dc  e1a00001          MOV      r0,r1
0004e0  e590001c          LDR      r0,[r0,#0x1c]
0004e4  e3c00780          BIC      r0,r0,#0x2000000
0004e8  e581001c          STR      r0,[r1,#0x1c]
;;;263     
;;;264        rDISRC0=(U32)buf1;
0004ec  e59f0078          LDR      r0,|L1.1388|
0004f0  e2811980          ADD      r1,r1,#0x200000
0004f4  e5810000          STR      r0,[r1,#0]
;;;265        rDISRCC0=(0<<1)|(0<<0); //src=AHB,increment
0004f8  e3a00000          MOV      r0,#0
0004fc  e1c11000          BIC      r1,r1,r0
000500  e5810004          STR      r0,[r1,#4]
;;;266        rDIDST0=(U32)buf2;
000504  e59f0064          LDR      r0,|L1.1392|
000508  e5810008          STR      r0,[r1,#8]
;;;267        rDIDSTC0=(0<<1)|(0<<0); //dst=AHB,increment
00050c  e3a00000          MOV      r0,#0
000510  e1c11000          BIC      r1,r1,r0
000514  e581000c          STR      r0,[r1,#0xc]
;;;268        rDCON0=(1<<31)|(1<<30)|(1<<29)|(1<<27)|(2<<20)|(1024);
000518  e59f0054          LDR      r0,|L1.1396|
00051c  e00112c0          AND      r1,r1,r0,ASR #5
000520  e5810010          STR      r0,[r1,#0x10]
;;;269        	//handshake,AHB sync,done int. enable,whole mode,DSZ=word,TC=1024
;;;270        rDMASKTRIG0=0x3; 	    	
000524  e3a00003          MOV      r0,#3
000528  e1c11000          BIC      r1,r1,r0
00052c  e5810020          STR      r0,[r1,#0x20]
;;;271    }	
000530  e8bd8008          LDMFD    sp!,{r3,pc}
                  |L1.1332|
000534  6d616573          DCB      "seam"
000538  7373656c          DCB      "less"
00053c  414d4420          DCB      " DMA"
000540  44532030          DCB      "0 SD"
000544  2d4d4152          DCB      "RAM-"
000548  5244533e          DCB      ">SDR"
00054c  74204d41          DCB      "AM t"
000550  736e6172          DCB      "rans"
000554  20726566          DCB      "fer "
000558  72207369          DCB      "is r"
00055c  696e6e75          DCB      "unni"
000560  0a2e676e          DCB      "ng.\n"
000564  00000000          DCB      "\0\0\0\0"
                  |L1.1384|
000568  00000000          DCD      PWR_IsrDma0
                  |L1.1388|
00056c  00040004          DCD      ||.bss$2|| + 262148
                  |L1.1392|
000570  00041004          DCD      ||.bss$2|| + 266244
                  |L1.1396|
000574  e8200400          DCD      0xe8200400
                          ENDP

                  MeasurePowerConsumption PROC
;;;51     void MeasurePowerConsumption(void)
;;;52     {
000578  e92d4010          STMFD    sp!,{r4,lr}
;;;53         int i;
;;;54         Uart_Printf("[Measure the power consumption of S3C24A0]\n");
00057c  e28f0f42          ADR      r0,|L1.1676|
000580  ebfffffe          BL       _printf
;;;55         Uart_Printf("FCLK is changed to %5.1lfMhz.\n",TMP_FCLK/1000000.);
000584  e28f0f4b          ADR      r0,|L1.1720|
000588  e8900006          LDMIA    r0,{r1,r2}
00058c  e28f0f4b          ADR      r0,|L1.1728|
000590  ebfffffe          BL       printf
;;;56         MMU_Init();
000594  ebfffffe          BL       MMU_Init
;;;57         PreChangeSdramParameter();
000598  ebfffffe          BL       PreChangeSdramParameter
;;;58         //port => 1:SDRAM Xp Port, 2:SDRAM Xd Port, 3: both ports
;;;59         PreChangeSromParameter(3);
00059c  e3a00003          MOV      r0,#3
0005a0  ebfffffe          BL       PreChangeSromParameter
;;;60         //bank => 0:bank0, 1:bank1, 2:bank2, 3:all banks
;;;61         
;;;62     #if TMP_FCLK==237000000
;;;63         ChangeClockDivider(1,1);	    // 1:2:4    
;;;64         ChangeMPllValue(71,2,0); // TMP_FCLK=237000000Hz    
;;;65         Uart_Init(237000000/4,115200);
;;;66         ChangeSdramParameter(TMP_FCLK/2);
;;;67         ChangeSromParameter((TMP_FCLK/2), 3);
;;;68     #endif
;;;69     #if TMP_FCLK==226000000
;;;70         ChangeClockDivider(1,1);	    // 1:2:4    
;;;71         ChangeMPllValue(105,4,0); // TMP_FCLK=226000000Hz    
;;;72         Uart_Init(226000000/4,115200);
;;;73         ChangeSdramParameter(TMP_FCLK/2);
;;;74         ChangeSromParameter((TMP_FCLK/2), 3);
;;;75     #endif
;;;76     #if TMP_FCLK==214000000
;;;77         ChangeClockDivider(1,1);	    // 1:2:4    
;;;78         ChangeMPllValue(99,4,0); // TMP_FCLK=214000000Hz    
;;;79         Uart_Init(214000000/4,115200);
;;;80         ChangeSdramParameter(TMP_FCLK/2);
;;;81         ChangeSromParameter((TMP_FCLK/2), 3);
;;;82     #endif
;;;83     #if TMP_FCLK==202000000   
;;;84         ChangeClockDivider(1,1);	    // 1:2:4    
;;;85         ChangeMPllValue(93,4,0); // TMP_FCLK=202000000Hz    
;;;86         Uart_Init(202000000/4,115200);
;;;87         ChangeSdramParameter(TMP_FCLK/2);
;;;88         ChangeSromParameter((TMP_FCLK/2), 3);
;;;89     #endif    
;;;90     #if TMP_FCLK==180000000   
;;;91         ChangeClockDivider(1,1);	    // 1:2:4    
;;;92         ChangeMPllValue(82,4,0);    // TMP_FCLK=180000000Hz    
;;;93         Uart_Init(180000000/4,115200);
;;;94         ChangeSdramParameter(TMP_FCLK/2);
;;;95         ChangeSromParameter((TMP_FCLK/2), 3);
;;;96     #endif    
;;;97     #if TMP_FCLK==152000000
;;;98         ChangeClockDivider(1,0);	    // 1:2:2    
;;;99         ChangeMPllValue(68,4,0); // TMP_FCLK=152000000Hz    
;;;100        Uart_Init(152000000/2,115200);
;;;101        ChangeSdramParameter(TMP_FCLK/2);
;;;102        ChangeSromParameter((TMP_FCLK/2), 3);
;;;103    #endif
;;;104    #if TMP_FCLK==135000000
;;;105        ChangeClockDivider(0,1);	    // 1:1:2    
0005a4  e3a01001          MOV      r1,#1
0005a8  e3a00000          MOV      r0,#0
0005ac  ebfffffe          BL       ChangeClockDivider
;;;106        ChangeMPllValue(82,2,1);  // FCLK=135000000Hz 
0005b0  e3a02001          MOV      r2,#1
0005b4  e3a01002          MOV      r1,#2
0005b8  e3a00052          MOV      r0,#0x52
0005bc  ebfffffe          BL       ChangeMPllValue
;;;107        Uart_Init(135000000/2,115200);
0005c0  e59f1118          LDR      r1,|L1.1760|
0005c4  e59f0118          LDR      r0,|L1.1764|

⌨️ 快捷键说明

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