亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? cpuspeed.c

?? S3C2410_TEST.rar
?? C
字號:
/************************************************ 
  NAME    : CPUSPEED.C
  DESC	  : Analyze where the speed bottleneck is.
  	    1) the code runs only on the cache.
  Revision: 2001.5.17: purnnamu: draft
  Revision: 2003.3.xx: DonGo: modified for 5410.
 ************************************************/
#include <string.h>
#if 0	//5410
#include "5410addr.h"
#include "5410lib.h"
#else	//2410
#include "2410addr.h"
#include "2410lib.h"
#endif
#include "def.h"
#include "option.h"

#include "mmu.h"
#include "cpuspeed.h"

void CpuSpeedFunc1(void);
void CpuSpeedFunc2(void);

#define	LED_DISPLAY(data)	    (rGPFDAT = (rGPFDAT & ~(0xf<<4)) | ((~data & 0xf)<<4))


#define	WHICH_CPU	2410	// or 2410.

#if WHICH_CPU==5410
#define	TEST_STADDR		(0x60f00000)
#else	//2410
#define	TEST_STADDR		(0x30f00000)
#endif
#define	TEST_ENDADDR	(TEST_STADDR+0xff)	//256 bytes



void Test_CpuSpeed(void)
{
    int i,base;
    U32 uLockPt,bypass;

	// added for testing 2410.
    Uart_Printf("[CPU Core Speed Test]\n");

	// Set MMU enable and on/off I/D-cache.
	Uart_Printf("[MMU enable]\n");
	MMU_EnableMMU();
    Uart_Printf("[ICache enable]\n");
	MMU_EnableICache();
    Uart_Printf("[DCache enable]\n");
	MMU_EnableDCache(); //DCache should be turned on after MMU is turned on.

    Uart_Printf("[FCLK:HCLK:PCLK] = [%d:%d:%d]MHz\n", FCLK/1000000, HCLK/1000000, PCLK/1000000);
    Uart_Printf("DCache locked area: %xH~%xH\n", TEST_STADDR, TEST_ENDADDR);
    Uart_Printf("ICache locked area: %x~%x(256B boundary)\n",
    	(U32)CpuSpeedFunc1,(U32)CpuSpeedFunc2);
    Uart_Printf("LCD is disabled.\n");
    //LCD_DisplayControl(0);
    rLCDCON1&=~1; // ENVID=OFF
    LED_DISPLAY(0x1);	// LED 1

    //Uart_Printf("Press any key.\n");
    //Uart_Getch();

 	Uart_Printf("Cache lock-down.\n");
	
	
    //========== ICache lock-down ==========
    MMU_SetICacheLockdownBase(10<<26);  	// The following code will be filled between cache line 10~63.
    base=10;
    bypass=1;
    uLockPt=(U32)CpuSpeedFunc1&0xffffffe0;

    for(;uLockPt<(U32)CpuSpeedFunc2;uLockPt+=0x20)
    {
        if(((uLockPt%0x100)==0)&&(uLockPt>(U32)CpuSpeedFunc1)) base++;
        #if WHICH_CPU==5410
			MMU_InvalidateICacheVA(uLockPt);
		#else	// 2410
			MMU_InvalidateICacheMVA(uLockPt);
		#endif
        if(bypass==1) MMU_SetICacheLockdownBase(base<<26);  
		#if WHICH_CPU==5410
	    	MMU_PrefetchICacheVA(uLockPt);
		#else	//2410
			MMU_PrefetchICacheMVA(uLockPt);
		#endif
    	if(bypass==1) //to put the current code outside base 9
    	{
    	    bypass=0;
    	    base=0;
            uLockPt-=0x20; //restore uLockPt
    	}
    }
    base++;
    MMU_SetICacheLockdownBase(base<<26);  // 256

    if(base>10)
    	Uart_Printf("ERROR:ICache lockdown base overflow\n");
    
    Uart_Printf("lockdown ICache line=0~%d\n",base-1);


    //========== DCache lock-down ==========
    base=0;
    uLockPt=(U32)CpuSpeedFunc1&0xffffffe0;

    //Function should be cached in DCache because of the literal pool(LDR Rn,=0xxxxx). ??
    for(;uLockPt<(U32)CpuSpeedFunc2;uLockPt+=0x20)
    {
    	if(((uLockPt%0x100)==0)&&(uLockPt>(U32)CpuSpeedFunc1))
    	    base++;
		#if WHICH_CPU==5410
    	MMU_CleanInvalidateDCacheVA(uLockPt);
		#else	//2410
    	MMU_CleanInvalidateDCacheMVA(uLockPt);
		#endif

        MMU_SetDCacheLockdownBase(base<<26);  
	    *((volatile U32 *)(uLockPt));
    }
    base++;
    MMU_SetDCacheLockdownBase(base<<26);  


    for(i=TEST_STADDR;i<TEST_ENDADDR;i+=4)*((U32 *)i)=0x55555555;
    
    for(i=0;i<0x100;i+=0x20)
    {
		#if WHICH_CPU==5410
      	MMU_CleanInvalidateDCacheVA(TEST_STADDR+i);
		#else	//2410
      	MMU_CleanInvalidateDCacheMVA(TEST_STADDR+i);
		#endif

        MMU_SetDCacheLockdownBase(base<<26);  
        *((volatile U32 *)(TEST_STADDR+i));
    }

    base++;
    MMU_SetDCacheLockdownBase(base<<26);  


   	
    Uart_Printf("lockdown DCache line=0~%d\n",base-1);


    //========== Check the line is really cache-filled ==========
#if 1
    for(uLockPt=(U32)CpuSpeedFunc1;uLockPt<(U32)CpuSpeedFunc2-4*8;uLockPt+=4)
    {
	//*((U32 *)uLockPt)=0xffffffff; //*((U32 *)uLockPt);
	*((U32 *)uLockPt)=*((U32 *)uLockPt);
    }
#endif    	
// SDRAM Self refresh
	
	LED_DISPLAY(0x2);

	//rPWRSAV |= 1<<2;	// SDRAM1 self refresh.
    CpuSpeedFunc1();

}    



void CpuSpeedFunc1(void)
{
    int i;
    i=0;
	
	LED_DISPLAY(0x3);

	//The following code should not use the stack memory.
    // because the stack memory is not DCache-locked.
    // It's should be checked using disassembly code.

	// chage refresh count.
    rREFRESH = (rREFRESH & ~0x3ff)  | 200;
    // Set clock frequency.
	ChangeClockDivider(1,1);		// 1:2:4
	//ChangeMPllValue(0xa1,0x3,0x1);	// FCLK=202.8MHz, refersh:473
	//ChangeMPllValue(0x66,0x1,0x1);	// FCLK=220MHz   
//	ChangeMPllValue(0x69,0x1,0x1);	// FCLK=226MHz       
	ChangeMPllValue(0x96,0x2,0x1);	// FCLK=237MHz, refresh:200


	// Set clock out pad.
	#if WHICH_CPU==5410
	//rGPDCON = (rGPDCON & ~(3<<30)) | (2<<30);	// GPD15  = CLKOUT.
	//rMISCCR = (rMISCCR & ~(7<<8)) | (2<<8);		// CLKOUT = FCLK
	#else	//2410
	rGPHCON = (rGPHCON & ~(3<<20)) | (2<<20);	// GPH10  = CLKOUT1.
	rMISCCR = (rMISCCR & ~(7<<8)) | (2<<8);		// CLKOUT1 = FCLK
	#endif
	
	// Start signal, Just for notification.
	#if 0
	rPWRSAV |= 1<<2;	// SDRAM1 self refresh.
	#endif
	
	LED_DISPLAY(0x4);
    for(i=0;i<9000000;i++);
    for(i=0;i<9000000;i++);

    while(1)
    {
        for(i=0;i<0x100;i+=4)
            *(volatile U32 *)(TEST_STADDR+i)=0x12345678*i+i;	// Write data.

        for(i=0;i<0x100;i+=4)
        {
            if(*(volatile U32 *)(TEST_STADDR+i)!=0x12345678*i+i)	// Error
            {
			// Display LED x101 and stop.
	        //rGPDDAT=rGPDDAT&~(0xf<<8)|(0x0<<8);
	        //rGPDDAT=rGPDDAT&~(0xf<<8)|(0x2<<8);
	        LED_DISPLAY(0x5);
	        

	        while(1);
            }
            *(volatile U32 *)(TEST_STADDR+i)=0x0;	// Clear memory.
        }

    //rGPDDAT=rGPDDAT&~(0xf<<8)|(0xf<<8);
    LED_DISPLAY(0xf);
	

        i=0;
        i++;
        i=i*0x12345678;	// i=1.
	if(i==0x12345678)
	    //rGPDDAT=rGPDDAT&~(0xf<<8)|(0x0<<8);	
		LED_DISPLAY(0x0);
	else
	    //rGPDDAT=rGPDDAT&~(0xf<<8)|(0x9<<8);
		LED_DISPLAY(0x3);
       
    }    
}

void CpuSpeedFunc2(void){}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99视频精品免费视频| 精品理论电影在线观看| 欧美视频你懂的| 精品国产乱码久久久久久老虎| 国产精品视频九色porn| 日韩电影在线观看网站| 成人激情视频网站| 日韩久久精品一区| 亚洲尤物在线视频观看| 国产精品亚洲一区二区三区妖精 | 日本韩国欧美国产| 精品福利一二区| 五月综合激情网| 色悠悠亚洲一区二区| 中文字幕精品—区二区四季| 蜜桃久久久久久| 欧美最猛黑人xxxxx猛交| 国产网红主播福利一区二区| 日韩在线一区二区三区| 色乱码一区二区三区88| 国产精品免费久久| 国产馆精品极品| 欧美大度的电影原声| 国产宾馆实践打屁股91| 欧美成人在线直播| 日韩一区精品字幕| 欧美精品亚洲二区| 一区二区成人在线| 色综合久久中文字幕| 国产精品视频一二三| 国产suv精品一区二区三区| 精品国内二区三区| 久久精品国产一区二区| 日韩欧美国产麻豆| 久久福利资源站| 日韩视频免费观看高清在线视频| 亚洲不卡av一区二区三区| 色av一区二区| 一区二区三区日本| 91国偷自产一区二区三区成为亚洲经典| 国产精品美女久久福利网站 | 欧美日韩日日骚| 亚洲成人中文在线| 欧美精品久久久久久久久老牛影院| 一区二区三区精品视频| 欧美日韩中文字幕精品| 天堂久久久久va久久久久| 欧美另类变人与禽xxxxx| 亚洲电影视频在线| 日韩一区二区免费高清| 精品一区二区三区日韩| 久久久久久久久久电影| 成人午夜在线播放| 亚洲欧美另类图片小说| 欧美性一级生活| 欧美aaa在线| 久久久精品日韩欧美| 成人av午夜影院| 一区二区三区毛片| 日韩一区二区电影网| 国产揄拍国内精品对白| 国产精品久久二区二区| 欧美影院午夜播放| 精品在线一区二区| 国产精品国产三级国产a| 欧美日韩一区中文字幕| 狠狠色丁香久久婷婷综合_中| 国产亚洲欧美激情| 色综合 综合色| 日韩成人dvd| 国产精品美女一区二区三区| 色欧美片视频在线观看在线视频| 性感美女极品91精品| 久久综合久久鬼色中文字| 成人动漫av在线| 日韩成人精品在线| 国产精品麻豆一区二区| 4438亚洲最大| 成人午夜视频网站| 日本aⅴ亚洲精品中文乱码| 中文字幕免费一区| 在线不卡欧美精品一区二区三区| 国产一区二区福利| 亚洲电影在线免费观看| 国产欧美综合在线观看第十页| 色视频欧美一区二区三区| 国模套图日韩精品一区二区 | 亚洲综合无码一区二区| 精品久久久久久无| 欧美三级蜜桃2在线观看| 粉嫩13p一区二区三区| 青青青爽久久午夜综合久久午夜| 国产精品毛片久久久久久久| 日韩美一区二区三区| 日本一区二区三区在线不卡 | 亚洲日本在线看| 精品久久久久久久久久久久久久久| 色8久久精品久久久久久蜜| 精品一区二区三区免费视频| 亚洲成精国产精品女| 成人免费在线播放视频| 日本一二三四高清不卡| 欧美成人bangbros| 91精品在线免费| 欧美在线免费观看亚洲| 99国内精品久久| 成人性生交大片免费| 国产精品亚洲午夜一区二区三区| 日韩av一二三| 天天操天天干天天综合网| 亚洲男人电影天堂| 1024成人网| 国产精品久久久久久妇女6080| 精品99一区二区三区| 精品毛片乱码1区2区3区| 911国产精品| 5566中文字幕一区二区电影| 欧美日韩久久不卡| 欧美三级欧美一级| 欧美日韩国产精品自在自线| 欧美日韩一区在线观看| 欧美日韩中文另类| 欧美久久一二区| 欧美群妇大交群中文字幕| 3d成人h动漫网站入口| 6080yy午夜一二三区久久| 日韩三级免费观看| 精品国产伦一区二区三区观看体验 | 一区二区日韩av| 激情都市一区二区| 极品尤物av久久免费看| 国产在线视频一区二区三区| 激情图片小说一区| 国产盗摄一区二区三区| 成人综合婷婷国产精品久久蜜臀| 粉嫩av一区二区三区粉嫩 | 精品国产sm最大网站| www激情久久| 日本一区二区三区高清不卡| 日韩毛片视频在线看| 亚洲妇熟xx妇色黄| 久久国产精品区| 成人性生交大合| 色94色欧美sute亚洲线路二| 91精品国模一区二区三区| 26uuu另类欧美亚洲曰本| 中文字幕免费不卡在线| 一区二区三区日韩| 奇米888四色在线精品| 丰满亚洲少妇av| 色狠狠一区二区三区香蕉| 欧美一区二区三区精品| 国产亚洲精品aa午夜观看| 综合电影一区二区三区| 日韩不卡在线观看日韩不卡视频| 蜜桃视频一区二区三区在线观看 | 国产福利一区二区三区视频在线| 不卡一区在线观看| 777色狠狠一区二区三区| 国产欧美日韩三级| 亚洲国产成人va在线观看天堂| 蜜臀91精品一区二区三区| 成人高清在线视频| 欧美一区二区三区视频在线| 国产精品女人毛片| 美女视频免费一区| 96av麻豆蜜桃一区二区| 日韩美女视频一区二区在线观看| 亚洲欧洲美洲综合色网| 久久99蜜桃精品| 在线视频一区二区三| 欧美激情综合网| 奇米精品一区二区三区在线观看一| 成人国产亚洲欧美成人综合网| 欧美一区二区三区四区高清| 亚洲精品乱码久久久久久久久 | 狠狠狠色丁香婷婷综合激情| 一本高清dvd不卡在线观看| 欧美精品一区二区三区很污很色的| 一区二区三区视频在线看| 国产99久久久国产精品潘金网站| 欧美日韩第一区日日骚| 亚洲欧美综合在线精品| 国产乱码一区二区三区| 欧美高清dvd| 曰韩精品一区二区| 99久久综合国产精品| 国产亚洲精品7777| 久久精品国产一区二区三| 欧美性猛交xxxx乱大交退制版| 中文字幕第一区综合| 国内精品伊人久久久久av一坑| 欧美精品在线观看播放| 亚洲影视资源网| 在线中文字幕一区| 亚洲视频中文字幕| 91视频一区二区三区| 国产精品三级在线观看| 丰满少妇在线播放bd日韩电影| 亚洲精品在线免费观看视频|