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

📄 cpuspeed.txt

📁 SMDK2442所有设备的驱动测试程序。运行monitor程序
💻 TXT
📖 第 1 页 / 共 2 页
字号:
0002f4  00000000          DCB      "\0\0\0\0"
                  |L1.760|
0002f8  30f000ff          DCD      0x30f000ff
                  |L1.764|
0002fc  63614344          DCB      "DCac"
000300  6c206568          DCB      "he l"
000304  656b636f          DCB      "ocke"
000308  72612064          DCB      "d ar"
00030c  203a6165          DCB      "ea: "
000310  7e487825          DCB      "%xH~"
000314  0a487825          DCB      "%xH\n"
000318  00000000          DCB      "\0\0\0\0"
                  |L1.796|
00031c  00000000          DCD      CpuSpeedFunc2
                  |L1.800|
000320  00000000          DCD      CpuSpeedFunc1
                  |L1.804|
000324  63614349          DCB      "ICac"
000328  6c206568          DCB      "he l"
00032c  656b636f          DCB      "ocke"
000330  72612064          DCB      "d ar"
000334  203a6165          DCB      "ea: "
000338  257e7825          DCB      "%x~%"
00033c  35322878          DCB      "x(25"
000340  62204236          DCB      "6B b"
000344  646e756f          DCB      "ound"
000348  29797261          DCB      "ary)"
00034c  0000000a          DCB      "\n\0\0\0"
                  |L1.848|
000350  2044434c          DCB      "LCD "
000354  64207369          DCB      "is d"
000358  62617369          DCB      "isab"
00035c  2e64656c          DCB      "led."
000360  0000000a          DCB      "\n\0\0\0"
                  |L1.868|
000364  454c3c3c          DCB      "<<LE"
000368  74732044          DCB      "D st"
00036c  73757461          DCB      "atus"
000370  000a3e3e          DCB      ">>\n\0"
                  |L1.884|
000374  20293128          DCB      "(1) "
000378  3444454c          DCB      "LED4"
00037c  696c6220          DCB      " bli"
000380  203a6b6e          DCB      "nk: "
000384  20572f52          DCB      "R/W "
000388  0a2e4b4f          DCB      "OK.\n"
00038c  00000000          DCB      "\0\0\0\0"
                  |L1.912|
000390  20293228          DCB      "(2) "
000394  3444454c          DCB      "LED4"
000398  46464f20          DCB      " OFF"
00039c  754d203a          DCB      ": Mu"
0003a0  7069746c          DCB      "ltip"
0003a4  6520796c          DCB      "ly e"
0003a8  726f7272          DCB      "rror"
0003ac  572f5228          DCB      "(R/W"
0003b0  294b4f20          DCB      " OK)"
0003b4  00000a2e          DCB      ".\n\0\0"
                  |L1.952|
0003b8  20293328          DCB      "(3) "
0003bc  3444454c          DCB      "LED4"
0003c0  4f20372f          DCB      "/7 O"
0003c4  52203a4e          DCB      "N: R"
0003c8  4520572f          DCB      "/W E"
0003cc  726f7272          DCB      "rror"
0003d0  00000a2e          DCB      ".\n\0\0"
                  |L1.980|
0003d4  68636143          DCB      "Cach"
0003d8  6f6c2065          DCB      "e lo"
0003dc  642d6b63          DCB      "ck-d"
0003e0  2e6e776f          DCB      "own."
0003e4  0000000a          DCB      "\n\0\0\0"
                  |L1.1000|
0003e8  e2844020          ADD      r4,r4,#0x20
0003ec  eaffffa7          B        |L1.656|
;;;72         {
;;;73             if(((uLockPt%0x100)==0)&&(uLockPt>(U32)CpuSpeedFunc1)) base++;
                  |L1.1008|
0003f0  e31400ff          TST      r4,#0xff
0003f4  1a000003          BNE      |L1.1032|
0003f8  e51f00e0          LDR      r0,|L1.800|
0003fc  e1540000          CMP      r4,r0
000400  9a000000          BLS      |L1.1032|
000404  e2855001          ADD      r5,r5,#1
;;;74            
;;;75     		MMU_InvalidateICacheMVA(uLockPt);
                  |L1.1032|
000408  e1a00004          MOV      r0,r4
00040c  ebfffffe          BL       MMU_InvalidateICacheMVA
;;;76     
;;;77             if(bypass==1) MMU_SetICacheLockdownBase(base<<26);  
000410  e3570001          CMP      r7,#1
000414  1a000001          BNE      |L1.1056|
000418  e1a00d05          MOV      r0,r5,LSL #26
00041c  ebfffffe          BL       MMU_SetICacheLockdownBase
;;;78     	
;;;79     		MMU_PrefetchICacheMVA(uLockPt);
                  |L1.1056|
000420  e1a00004          MOV      r0,r4
000424  ebfffffe          BL       MMU_PrefetchICacheMVA
;;;80     
;;;81         	if(bypass==1) //to put the current code outside base 9
000428  e3570001          CMP      r7,#1
00042c  1a000002          BNE      |L1.1084|
;;;82         	{
;;;83         	    bypass=0;
000430  e3a07000          MOV      r7,#0
;;;84         	    base=0;
000434  e3a05000          MOV      r5,#0
;;;85                 uLockPt-=0x20; //restore uLockPt
000438  e2444020          SUB      r4,r4,#0x20
;;;86         	}
;;;87         }
                  |L1.1084|
00043c  eaffffe9          B        |L1.1000|
;;;88         base++;
                  |L1.1088|
000440  e2855001          ADD      r5,r5,#1
;;;89         MMU_SetICacheLockdownBase(base<<26);  // 256
000444  e1a00d05          MOV      r0,r5,LSL #26
000448  ebfffffe          BL       MMU_SetICacheLockdownBase
;;;90     
;;;91         if(base>10)
00044c  e355000a          CMP      r5,#0xa
000450  da000001          BLE      |L1.1116|
;;;92         	Uart_Printf("ERROR:ICache lockdown base overflow\n");
000454  e28f0f59          ADR      r0,|L1.1472|
000458  ebfffffe          BL       Uart_Printf
;;;93         
;;;94         Uart_Printf("lockdown ICache line=0~%d\n",base-1);
                  |L1.1116|
00045c  e2451001          SUB      r1,r5,#1
000460  e28f0f60          ADR      r0,|L1.1512|
000464  ebfffffe          BL       Uart_Printf
;;;95     
;;;96     
;;;97         //========== DCache lock-down ==========
;;;98         base=0;
000468  e3a05000          MOV      r5,#0
;;;99         uLockPt=(U32)CpuSpeedFunc1&0xffffffe0;
00046c  e51f0154          LDR      r0,|L1.800|
000470  e3c0401f          BIC      r4,r0,#0x1f
;;;100    
;;;101        //Function should be cached in DCache because of the literal pool(LDR Rn,=0xxxxx). ??
;;;102        for(;uLockPt<(U32)CpuSpeedFunc2;uLockPt+=0x20)
000474  e1a00000          NOP      
                  |L1.1144|
000478  e51f0164          LDR      r0,|L1.796|
00047c  e1540000          CMP      r4,r0
000480  2a00000e          BCS      |L1.1216|
000484  ea000001          B        |L1.1168|
                  |L1.1160|
000488  e2844020          ADD      r4,r4,#0x20
00048c  eafffff9          B        |L1.1144|
;;;103        {
;;;104        	if(((uLockPt%0x100)==0)&&(uLockPt>(U32)CpuSpeedFunc1))
                  |L1.1168|
000490  e31400ff          TST      r4,#0xff
000494  1a000003          BNE      |L1.1192|
000498  e51f0180          LDR      r0,|L1.800|
00049c  e1540000          CMP      r4,r0
0004a0  9a000000          BLS      |L1.1192|
;;;105        	    base++;
0004a4  e2855001          ADD      r5,r5,#1
;;;106    		
;;;107        	MMU_CleanInvalidateDCacheMVA(uLockPt);
                  |L1.1192|
0004a8  e1a00004          MOV      r0,r4
0004ac  ebfffffe          BL       MMU_CleanInvalidateDCacheMVA
;;;108    
;;;109            MMU_SetDCacheLockdownBase(base<<26);  
0004b0  e1a00d05          MOV      r0,r5,LSL #26
0004b4  ebfffffe          BL       MMU_SetDCacheLockdownBase
;;;110    	    *((volatile U32 *)(uLockPt));
0004b8  e5940000          LDR      r0,[r4,#0]
;;;111        }
0004bc  eafffff1          B        |L1.1160|
;;;112        base++;
                  |L1.1216|
0004c0  e2855001          ADD      r5,r5,#1
;;;113        MMU_SetDCacheLockdownBase(base<<26);  
0004c4  e1a00d05          MOV      r0,r5,LSL #26
0004c8  ebfffffe          BL       MMU_SetDCacheLockdownBase
;;;114    
;;;115    
;;;116        for(i=TEST_STADDR;i<TEST_ENDADDR;i+=4)*((U32 *)i)=0x55555555;
0004cc  e59f6130          LDR      r6,|L1.1540|
                  |L1.1232|
0004d0  e51f01e0          LDR      r0,|L1.760|
0004d4  e1560000          CMP      r6,r0
0004d8  aa000005          BGE      |L1.1268|
0004dc  ea000001          B        |L1.1256|
                  |L1.1248|
0004e0  e2866004          ADD      r6,r6,#4
0004e4  eafffff9          B        |L1.1232|
                  |L1.1256|
0004e8  e59f0118          LDR      r0,|L1.1544|
0004ec  e5860000          STR      r0,[r6,#0]
0004f0  eafffffa          B        |L1.1248|
;;;117        
;;;118        for(i=0;i<0x100;i+=0x20)
                  |L1.1268|
0004f4  e3a06000          MOV      r6,#0
                  |L1.1272|
0004f8  e3560f40          CMP      r6,#0x100
0004fc  aa00000b          BGE      |L1.1328|
000500  ea000001          B        |L1.1292|
                  |L1.1284|
000504  e2866020          ADD      r6,r6,#0x20
000508  eafffffa          B        |L1.1272|
;;;119        {
;;;120          	MMU_CleanInvalidateDCacheMVA(TEST_STADDR+i);
                  |L1.1292|
00050c  e28605c0          ADD      r0,r6,#0x30000000
000510  e28008f0          ADD      r0,r0,#0xf00000
000514  ebfffffe          BL       MMU_CleanInvalidateDCacheMVA
;;;121    
;;;122            MMU_SetDCacheLockdownBase(base<<26);  
000518  e1a00d05          MOV      r0,r5,LSL #26
00051c  ebfffffe          BL       MMU_SetDCacheLockdownBase
;;;123            *((volatile U32 *)(TEST_STADDR+i));
000520  e28605c0          ADD      r0,r6,#0x30000000
000524  e28008f0          ADD      r0,r0,#0xf00000
000528  e5900000          LDR      r0,[r0,#0]
;;;124        }
00052c  eafffff4          B        |L1.1284|
;;;125    
;;;126        base++;
                  |L1.1328|
000530  e2855001          ADD      r5,r5,#1
;;;127        MMU_SetDCacheLockdownBase(base<<26);  
000534  e1a00d05          MOV      r0,r5,LSL #26
000538  ebfffffe          BL       MMU_SetDCacheLockdownBase
;;;128    
;;;129    
;;;130       	
;;;131        Uart_Printf("lockdown DCache line=0~%d\n",base-1);
00053c  e2451001          SUB      r1,r5,#1
000540  e28f00c4          ADR      r0,|L1.1548|
000544  ebfffffe          BL       Uart_Printf
;;;132    
;;;133    
;;;134        //========== Check the line is really cache-filled ==========
;;;135    #if 1
;;;136        for(uLockPt=(U32)CpuSpeedFunc1;uLockPt<(U32)CpuSpeedFunc2-4*8;uLockPt+=4)
000548  e51f4230          LDR      r4,|L1.800|
                  |L1.1356|
00054c  e59f00d4          LDR      r0,|L1.1576|
000550  e1540000          CMP      r4,r0
000554  2a000005          BCS      |L1.1392|
000558  ea000001          B        |L1.1380|
                  |L1.1372|
00055c  e2844004          ADD      r4,r4,#4
000560  eafffff9          B        |L1.1356|
;;;137        {
;;;138    	//*((U32 *)uLockPt)=0xffffffff; //*((U32 *)uLockPt);
;;;139    	*((U32 *)uLockPt)=*((U32 *)uLockPt);
                  |L1.1380|
000564  e5940000          LDR      r0,[r4,#0]
000568  e5840000          STR      r0,[r4,#0]
;;;140        }
00056c  eafffffa          B        |L1.1372|
;;;141    #endif    	
;;;142    // SDRAM Self refresh
;;;143    	
;;;144    	LED_DISPLAY(0x2);
                  |L1.1392|
000570  e3a00456          MOV      r0,#0x56000000
000574  e5900054          LDR      r0,[r0,#0x54]
000578  e3c000f0          BIC      r0,r0,#0xf0
00057c  e38000d0          ORR      r0,r0,#0xd0
000580  e3a01456          MOV      r1,#0x56000000
000584  e5810054          STR      r0,[r1,#0x54]
;;;145    
;;;146    	//Uart_Getch();
;;;147    		// Set clock out pad.
;;;148    	rGPHCON = (rGPHCON & ~(3<<20)) | (2<<20);	// GPH10  = CLKOUT1.
000588  e3a00456          MOV      r0,#0x56000000
00058c  e5900070          LDR      r0,[r0,#0x70]
000590  e3c009c0          BIC      r0,r0,#0x300000
000594  e3800980          ORR      r0,r0,#0x200000
000598  e3a01456          MOV      r1,#0x56000000
00059c  e5810070          STR      r0,[r1,#0x70]
;;;149    	rMISCCR = (rMISCCR & ~(7<<8)) | (2<<8);		// CLKOUT1 = FCLK
0005a0  e3a00456          MOV      r0,#0x56000000
0005a4  e5900080          LDR      r0,[r0,#0x80]
0005a8  e3c00e70          BIC      r0,r0,#0x700
0005ac  e3800f80          ORR      r0,r0,#0x200
0005b0  e3a01456          MOV      r1,#0x56000000
0005b4  e5810080          STR      r0,[r1,#0x80]
;;;150        CpuSpeedFunc1();
0005b8  ebfffffe          BL       CpuSpeedFunc1
;;;151    
;;;152    }    
0005bc  e8bd80f8          LDMFD    sp!,{r3-r7,pc}
                  |L1.1472|
0005c0  4f525245          DCB      "ERRO"
0005c4  43493a52          DCB      "R:IC"
0005c8  65686361          DCB      "ache"
0005cc  636f6c20          DCB      " loc"
0005d0  776f646b          DCB      "kdow"
0005d4  6162206e          DCB      "n ba"
0005d8  6f206573          DCB      "se o"
0005dc  66726576          DCB      "verf"
0005e0  0a776f6c          DCB      "low\n"
0005e4  00000000          DCB      "\0\0\0\0"
                  |L1.1512|
0005e8  6b636f6c          DCB      "lock"
0005ec  6e776f64          DCB      "down"
0005f0  61434920          DCB      " ICa"
0005f4  20656863          DCB      "che "
0005f8  656e696c          DCB      "line"
0005fc  257e303d          DCB      "=0~%"
000600  00000a64          DCB      "d\n\0\0"
                  |L1.1540|
000604  30f00000          DCD      0x30f00000
                  |L1.1544|
000608  55555555          DCD      0x55555555
                  |L1.1548|
00060c  6b636f6c          DCB      "lock"
000610  6e776f64          DCB      "down"
000614  61434420          DCB      " DCa"
000618  20656863          DCB      "che "
00061c  656e696c          DCB      "line"
000620  257e303d          DCB      "=0~%"
000624  00000a64          DCB      "d\n\0\0"
                  |L1.1576|
000628  ffffffe0          DCD      CpuSpeedFunc2 + -32
                          ENDP



        END

⌨️ 快捷键说明

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