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

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

?? pwr_c.c

?? S3C2410_TEST.rar
?? C
?? 第 1 頁 / 共 2 頁
字號:
/**********************************************
  NAME: pwr_c.c
  DESC: 2410 power consumption measurement code
  HISTORY:
  04.09.2002:purnnamu: first release for 2410
  08.14.2002:On-Pil Shin : Added test Condition Setting Table
  10.29.2002:On-Pil Shin
 **********************************************/
 
#include <stdlib.h>
#include <string.h>
#include "def.h"
#include "option.h"
#include "2410addr.h"
#include "2410lib.h"
#include "2410slib.h"

#include "mmu.h"

#include "lcdlib.h"

// Test condition Setting
//            CPU_WORK    DMA2_ON    UNUSED_BLOCK_ON
//======================================================
// Max_Q    QUICK_SORT       1              1
// Typ_Q    QUICK_SORT       0              1
// Min_Q    QUICK_SORT       0              0
//------------------------------------------------------
// Max_D    DHRYSTONE21      1              1
// Typ_D    DHRYSTONE21      0              1
// Min_D    DHRYSTONE21      0              0
//

//Options for current measurement
#define QUICK_SORT		(1)
#define DHRYSTONE21   	(2)
#define CPU_WORK		QUICK_SORT  //DHRYSTONE21 , QUICK_SORT
//#define CPU_WORK		DHRYSTONE21 //DHRYSTONE21 , QUICK_SORT

#define DMA2_ON			    (0)
//#define DMA2_ON			    (1)
//#define UNUSED_BLCOK_ON		(0)
#define UNUSED_BLCOK_ON		(1)

void PWR_Lcd_Tft_16Bit_240320_On(void);
static void Lcd_Port_Init(void);
void dhrystone21(void);
void PWR_StartTimer(void);
void StartDmaMem2Mem(void);
void PWR_StartIIS(void);
int compare1(const void *a,const void *b);
int compare2(const void *a,const void *b);

static int dim[0x4000];  //64KB,which is bigger than D-Cache(16KB)

#define NUM_SORT_DATA	0x10000
static int dim2[NUM_SORT_DATA];  //128KB,which is bigger than D-Cache(16KB)

#define TMP_FCLK	(266000000)
//#define TMP_FCLK	(237000000)
//#define TMP_FCLK	(226000000)
//#define TMP_FCLK	(214500000)
//#define TMP_FCLK	(202800000)
//#define TMP_FCLK	(180000000)
//#define TMP_FCLK	(152000000)
//#define TMP_FCLK	(135000000)
//#define TMP_FCLK	(101250000)
//#define TMP_FCLK	( 50700000)

void MeasurePowerConsumption(void)
{
    int i,j;
    volatile int a,b,c;

    Uart_Printf("[ Measure the power consumption of S3C2410 ]\n");
    Uart_Printf("FCLK is changed to %5.1lfMhz.\n",TMP_FCLK/1000000.);
    
    MMU_Init();
    ChangeClockDivider(1,1);	    // 1:2:4 
//    ChangeClockDivider(0,1);	    // 1:1:2    
#if TMP_FCLK==266000000
    ChangeMPllValue(125,4,0); // TMP_FCLK=237000000Hz    
    Uart_Init(266000000/4,115200);
#endif       
#if TMP_FCLK==237000000
    ChangeMPllValue(150,2,1); // TMP_FCLK=237000000Hz    
    Uart_Init(237000000/4,115200);
#endif
#if TMP_FCLK==226000000
    ChangeMPllValue(105,1,1); // TMP_FCLK=226000000Hz    
    Uart_Init(226000000/4,115200);
#endif
#if TMP_FCLK==214500000
    ChangeMPllValue(135,2,1); // TMP_FCLK=214500000Hz    
    Uart_Init(214500000/4,115200);
#endif
#if TMP_FCLK==202800000   
    ChangeMPllValue(161,3,1); // TMP_FCLK=202800000Hz    
    Uart_Init(202800000/4,115200);
#endif    
#if TMP_FCLK==180000000   
    ChangeMPllValue(82,1,1);    // TMP_FCLK=180000000Hz    
    Uart_Init(180000000/4,115200);
#endif    
#if TMP_FCLK==152000000
    ChangeMPllValue(68,1,1); // TMP_FCLK=152000000Hz    
    Uart_Init(152000000/4,115200);
#endif
#if TMP_FCLK==135000000
    ChangeMPllValue(82,2,1);  // FCLK=135000000Hz 
    Uart_Init(135000000/4,115200);
#endif
#if TMP_FCLK==101250000
    ChangeMPllValue(127,2,2); // TMP_FCLK=101250000Hz    
    Uart_Init(101250000/2,115200);
#endif
#if TMP_FCLK==50700000
    ChangeMPllValue(161,3,3); // TMP_FCLK=50700000Hz    
    Uart_Init(50700000/4,115200);
#endif
    
    rGPHCON = rGPHCON&~(3<<18|3<<20)|(1<<18|1<<20);  //GPH9:CLKOUT0->OUT,GPH10:CLKOUT1->OUT

    #if 0
    rGPHCON = rGPHCON&~(3<<18)|(2<<18); //CLKOUT0
    rMISCCR = rMISCCR&~(7<<4)|(4<<4);  //PCLK=45Mhz @FCLK=180Mhz
    #endif

    #if UNUSED_BLCOK_ON==0
    rCLKCON=rCLKCON&~(1<<18|1<<16|1<<12|1<<11|1<<9|1<<4); //SPI,IIC,UART1,2,SDI,NFC
    #endif

    #if DMA2_ON==1
    StartDmaMem2Mem();
    #endif 
        
    
    PWR_StartTimer();

    Uart_Printf("TFT-LCD 240x320 16bit is running.\n");
    Lcd_PowerEnable(0,1);
    PWR_Lcd_Tft_16Bit_240320_On();
    
    PWR_StartIIS();
    
#if CPU_WORK==QUICK_SORT
    Uart_Printf("CPU JOB : quick sort of 65536 intteger data.\n");
    //qsort;
    for(i=0;i<NUM_SORT_DATA;i++)dim2[i]=i;
    i=0;    
    while(1)
    {
    	qsort(dim2,NUM_SORT_DATA,sizeof(int),compare1);
    	qsort(dim2,NUM_SORT_DATA,sizeof(int),compare2);
    	Uart_Printf(",");
    }
#else
    Uart_Printf("CPU JOB : Dhrystone 2.1 code.\n");
    while(1)
    {
    	dhrystone21();
    	Uart_Printf(".");
    }

#endif
    Uart_Printf("End of the Measurement\n");	
}


int compare1(const void *a,const void *b)
{
    
    if(*(int *)a>*(int *)b)
    	return 1;
    else if(*(int *)a==*(int *)b)
    	return 0;
    else 
    	return -1;
}

int compare2(const void *a,const void *b)
{
    
    if(*(int *)a>*(int *)b)
    	return -1;
    else if(*(int *)a==*(int *)b)
    	return 0;
    else 
    	return 1;
}

void DoQsort(void) //function for SLOW mode current current consumption
{
    	qsort(dim2,NUM_SORT_DATA,sizeof(int),compare1);
    	qsort(dim2,NUM_SORT_DATA,sizeof(int),compare2);
}

static unsigned save_rGPCUP,save_rGPCDAT,save_rGPCCON;
static unsigned save_rGPDUP,save_rGPDDAT,save_rGPDCON; 


static void Lcd_Port_Init(void)
{
    save_rGPCCON=rGPCCON;
    save_rGPCDAT=rGPCDAT;
    save_rGPCUP=rGPCUP;
    save_rGPDCON=rGPDCON;
    save_rGPDDAT=rGPDDAT;
    save_rGPDUP=rGPDUP;
    
    rGPCUP=0xffffffff; // Disable Pull-up register
    rGPCCON=0xaaaaaaaa; //Initialize VD[7:0],LCDVF[2:0],VM,VFRAME,VLINE,VCLK,LEND 
    rGPDUP=0xffffffff; // Disable Pull-up register
    rGPDCON=0xaaaaaaaa; //Initialize VD[23:8]
}


void PWR_Lcd_Tft_16Bit_240320_On(void)
{
    int i,j,k;
    Lcd_Port_Init();
    //Lcd_Lpc3600Enable(); // Enable LPC3600
    Lcd_Init(MODE_TFT_16BIT_240320);
    Glib_Init(MODE_TFT_16BIT_240320);
    Lcd_EnvidOnOff(1);

    Glib_ClearScr(0, MODE_TFT_16BIT_240320);
    Glib_Rectangle(0,0,239,319,0x07e0);   
    Glib_FilledRectangle(0,0,20,20,65535);   
    Glib_Rectangle(220,300,239,319,65535);   
    Glib_Line(0,0,239,319,0x1f);        
    Glib_Line(239,0,0,319,0xf800);
    Uart_Printf("TFT 64K color mode test 2!\n");
}

void PWR_StartTimer(void)
{
    Uart_Printf("All 5 timers are running.\n");
    
    rTCFG0=0x8080;   //Prescaler=128; 
    rTCFG1=0x11111;  //Devider=1/4;
    rTCNTB0=0x8000;
    rTCMPB0=0x4000;
    rTCNTB1=0x8000;
    rTCMPB1=0x4000;
    rTCNTB2=0x8000;
    rTCMPB2=0x4000;
    rTCNTB3=0x8000;
    rTCMPB3=0x4000;
    rTCNTB4=0x8000;
    rTCON=0x6aaa0a; //manual update
    rTCON=0x599909; //run
}



static int buf1[1024],buf2[1024];

void __irq PWR_IsrDma0(void)
{
    ClearPending(BIT_DMA0);
    rDMASKTRIG0=0x3; 	
    //Uart_Printf("$");
}


void StartDmaMem2Mem(void)
{
    Uart_Printf("Seamless DMA0 SDRAM -> SDRAM transfer is running.\n");
    
    pISR_DMA0=(unsigned int)PWR_IsrDma0;	
    rINTMSK=rINTMSK&~(BIT_DMA0);
 
    rDISRC0=(U32)buf1;
    rDISRCC0=(0<<1)|(0<<0); //src=AHB,increment
    rDIDST0=(U32)buf2;
    rDIDSTC0=(0<<1)|(0<<0); //dst=AHB,increment
    rDCON0=(1<<31)|(1<<29)|(1<<27)|(2<<20)|(1024);
    	//handshake,done int. enable,whole mode,DSZ=word,TC=1024
    rDMASKTRIG0=0x3; 	    	
}	

static U16 buf3[4096];

void __irq PWR_IsrDma2(void)
{
    ClearPending(BIT_DMA2);
    //Uart_Printf("#");
}

void PWR_StartIIS(void)
{
    Uart_Printf("IIS(DMA2) is running(CDCLK=16.9Mhz,LRCK=44.1Khz).\n");

    pISR_DMA2=(unsigned int)PWR_IsrDma2;	
    rINTMSK=rINTMSK&~(BIT_DMA2);

    rGPECON=rGPECON&~(3<<8|3<<4|3<<2|3<<0)|(2<<8|2<<4|2<<2|2<<0); //I2SSDO,CDCLK,I2SSCLK,I2SLRCK
        
    rDISRC2=(U32)buf3; 
    rDISRCC2=(0<<1)+(0<<0);//src=AHB,increment
    rDIDST2=((U32) IISFIFO );
    rDIDSTC2=(1<<1)+(1<<0); //APB,fix
    rDCON2=(1<<31)|(0<<30)|(1<<29)|(0<<28)|(0<<27)|(0<<24)|(1<<23)|(0<<22)|(1<<20)|(4096);
    //handshake, sync PCLK, TC int, single tx, single service, I2SSDO, I2S request, 
    //auto-reload, half-word,
    rDMASKTRIG2=(1<<1)+0;    //DMA2 channel on, no-sw trigger 

    rIISPSR=(2<<5)|(2<<0); //IIS_LRCK=44.1Khz @384fs,PCLK=50Mhz.
    
    rIISCON=(1<<5)+(1<<2)+(1<<1);
    //Tx DMA enable,Rx idle,prescaler enable
    rIISMOD=(2<<6)|(1<<3)|(1<<2)|(1<<0);
    //Master,Tx,L-ch=low,iis,16bit ch.,CDCLK=384fs,IISCLK=32fs

    rIISFCON=(1<<15)+(1<<13);	//Tx DMA,Tx FIFO enable

    rIISCON |=0x1;
}
/*
 ****************************************************************************
 *
 *                   "DHRYSTONE" Benchmark Program
 *                   -----------------------------
 *                                                                            
 *  Version:    C, Version 2.1
 *                                                                            
 *  File:       dhry.h (part 1 of 3)
 *
 *  Date:       May 25, 1988
 *
 *  Author:     Reinhold P. Weicker
 *                      Siemens AG, E STE 35
 *                      Postfach 3240
 *                      8520 Erlangen
 *                      Germany (West)
 *                              Phone:  [xxx-49]-9131-7-20330
 *                                      (8-17 Central European Time)
 *                              Usenet: ..!mcvax!unido!estevax!weicker
 *
 *              Original Version (in Ada) published in
 *              "Communications of the ACM" vol. 27., no. 10 (Oct. 1984),
 *              pp. 1013 - 1030, together with the statistics
 *              on which the distribution of statements etc. is based.
 *
 *              In this C version, the following C library functions are used:
 *              - strcpy, strcmp (inside the measurement loop)
 *              - printf, scanf (outside the measurement loop)
 *              In addition, Berkeley UNIX system calls "times ()" or "time ()"
 *              are used for execution time measurement. For measurements
 *              on other systems, these calls have to be changed.
 *
 *  Collection of Results:
 *              Reinhold Weicker (address see above) and
 *              
 *              Rick Richardson
 *              PC Research. Inc.
 *              94 Apple Orchard Drive
 *              Tinton Falls, NJ 07724
 *                      Phone:  (201) 389-8963 (9-17 EST)               
 *                      Usenet: ...!uunet!pcrat!rick
 *
 *      Please send results to Rick Richardson and/or Reinhold Weicker.
 *      Complete information should be given on hardware and software used.
 *      Hardware information includes: Machine type, CPU, type and size
 *      of caches; for microprocessors: clock frequency, memory speed
 *      (number of wait states).
 *      Software information includes: Compiler (and runtime library)
 *      manufacturer and version, compilation switches, OS version.
 *      The Operating System version may give an indication about the
 *      compiler; Dhrystone itself performs no OS calls in the measurement loop.
 *
 *      The complete output generated by the program should be mailed
 *      such that at least some checks for correctness can be made.
 *
 ***************************************************************************
 */

/* Compiler and system dependent definitions: */

#define Mic_secs_Per_Second     1000000.0
                /* Berkeley UNIX C returns process times in seconds/HZ */

#ifdef  NOSTRUCTASSIGN
#define structassign(d, s)      memcpy(&(d), &(s), sizeof(d))
#else
#define structassign(d, s)      d = s
#endif

#ifdef  NOENUM
#define Ident_1 0
#define Ident_2 1
#define Ident_3 2
#define Ident_4 3
#define Ident_5 4
  typedef int   Enumeration;
#else
  typedef       enum    {Ident_1, Ident_2, Ident_3, Ident_4, Ident_5}
                Enumeration;
#endif
        /* for boolean and enumeration types in Ada, Pascal */

/* General definitions: */

#include <stdio.h>
                /* for strcpy, strcmp */

#define Null 0 
                /* Value of a Null pointer */
#define true  1
#define false 0

typedef int     One_Thirty;
typedef int     One_Fifty;
typedef char    Capital_Letter;
typedef int     Boolean;
typedef char    Str_30 [31];
typedef int     Arr_1_Dim [50];
typedef int     Arr_2_Dim [50] [50];

typedef struct record 
    {
    struct record *Ptr_Comp;
    Enumeration    Discr;
    union {
          struct {
                  Enumeration Enum_Comp;
                  int         Int_Comp;
                  char        Str_Comp [31];
                  } var_1;
          struct {
                  Enumeration E_Comp_2;
                  char        Str_2_Comp [31];
                  } var_2;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日本不卡的三区四区五区| 精品久久国产97色综合| 成人黄页毛片网站| 国产精品乡下勾搭老头1| 麻豆成人av在线| 精品一区二区在线看| 久久精品国产精品亚洲精品| 蜜桃视频一区二区三区| 久久99国产精品久久99| 美女精品自拍一二三四| 国内久久精品视频| 国产·精品毛片| 91在线精品秘密一区二区| 色婷婷亚洲一区二区三区| 色av一区二区| 在线成人免费观看| 欧美变态tickle挠乳网站| 精品国产一区a| 国产精品系列在线| 亚洲精品视频在线看| 亚洲一级片在线观看| 青青草97国产精品免费观看| 国产一区中文字幕| 99国产精品国产精品毛片| 欧美性一区二区| 欧美成人vps| 国产精品久久久久久久久免费丝袜| 亚洲欧洲99久久| 日本强好片久久久久久aaa| 韩国精品久久久| 91在线一区二区三区| 7777精品伊人久久久大香线蕉超级流畅 | 色天使色偷偷av一区二区| 欧美日韩成人激情| 精品久久久久一区| 亚洲人123区| 麻豆精品在线播放| 9l国产精品久久久久麻豆| 这里只有精品电影| 国产精品久久久一本精品| 五月激情六月综合| 国产成人自拍在线| 91麻豆精品国产91久久久使用方法| 久久精品一二三| 亚洲成人在线观看视频| 成人毛片视频在线观看| 7777精品伊人久久久大香线蕉超级流畅 | 亚洲国产精品久久不卡毛片 | 国产欧美一区二区精品忘忧草| 亚洲丝袜精品丝袜在线| 老司机一区二区| 欧美在线制服丝袜| 国产精品沙发午睡系列990531| 亚洲妇熟xx妇色黄| jiyouzz国产精品久久| 制服.丝袜.亚洲.另类.中文| 亚洲欧美另类久久久精品2019| 国内精品在线播放| 欧美一级日韩免费不卡| 亚洲一级片在线观看| 色综合久久99| 中文字幕一区在线观看视频| 国产一区激情在线| 欧美一区二区视频在线观看| 一区二区三区免费在线观看| 成人精品电影在线观看| 国产三级三级三级精品8ⅰ区| 日韩黄色在线观看| 在线观看91精品国产麻豆| 亚洲va欧美va人人爽| 91福利区一区二区三区| 亚洲另类在线一区| 日本高清无吗v一区| 一区二区三区不卡视频| 一本一道综合狠狠老| 亚洲欧美日韩国产综合| 色婷婷综合久久| 亚洲一区二区三区精品在线| 欧美伊人久久久久久久久影院| 亚洲欧美自拍偷拍色图| 91蜜桃免费观看视频| 亚洲欧美日韩中文字幕一区二区三区 | 日日夜夜免费精品视频| 91精品国产综合久久精品性色| 天堂一区二区在线| 日韩一级大片在线观看| 国产一区二区在线视频| 国产喂奶挤奶一区二区三区| av午夜一区麻豆| 亚洲三级久久久| 97久久超碰国产精品电影| 亚洲自拍偷拍图区| 欧美精品粉嫩高潮一区二区| 久久国产欧美日韩精品| 日本一二三四高清不卡| 一本到一区二区三区| 日韩在线a电影| 久久综合色天天久久综合图片| 国产精品一二三四区| 亚洲丝袜自拍清纯另类| 91精品国产丝袜白色高跟鞋| 紧缚奴在线一区二区三区| 国产精品久久久久影院| 欧美午夜电影一区| 国产裸体歌舞团一区二区| 中文字幕在线一区二区三区| 欧美日高清视频| 国产电影一区在线| 一区二区三区欧美久久| 久久久综合精品| 一本久久综合亚洲鲁鲁五月天| 麻豆成人久久精品二区三区小说| 国产三级精品视频| 91精品国产综合久久久蜜臀粉嫩 | 欧美日韩一本到| 国产真实精品久久二三区| 自拍偷拍亚洲综合| 欧美mv日韩mv国产| 日本精品免费观看高清观看| 精品一区二区精品| 亚洲高清免费观看高清完整版在线观看| 欧美电视剧免费全集观看| 91麻豆福利精品推荐| 国产主播一区二区| 免费av成人在线| 伊人一区二区三区| 国产精品入口麻豆九色| 日韩免费观看2025年上映的电影 | 久久99精品国产.久久久久| 亚洲免费观看视频| 国产欧美精品一区二区色综合| 欧美乱熟臀69xxxxxx| 91麻豆国产香蕉久久精品| 粉嫩欧美一区二区三区高清影视| 日韩高清国产一区在线| 一区二区三区四区亚洲| 专区另类欧美日韩| 国产精品免费免费| 国产日韩精品一区二区三区 | 国产精品超碰97尤物18| 国产三级久久久| 久久亚洲综合色| 日韩午夜电影av| 欧美一区二区网站| 91精品在线观看入口| 欧美区一区二区三区| 在线精品视频免费播放| 99热在这里有精品免费| 本田岬高潮一区二区三区| 成人小视频免费观看| 福利视频网站一区二区三区| 国产成人丝袜美腿| 国产91精品精华液一区二区三区| 国产老女人精品毛片久久| 国产一区视频网站| 成人手机在线视频| 成人黄色电影在线| 91在线视频播放| 欧美视频一区二区三区四区| 欧美中文字幕一区二区三区亚洲| 在线视频一区二区三| 欧美高清激情brazzers| 91精品国产综合久久久蜜臀粉嫩| 日韩欧美国产系列| 久久综合99re88久久爱| 亚洲国产成人自拍| 亚洲精品视频在线| 视频一区国产视频| 久久不见久久见免费视频7| 国产一区二区三区| 91免费看`日韩一区二区| 欧美亚洲高清一区二区三区不卡| 在线播放91灌醉迷j高跟美女| 日韩女优视频免费观看| 中日韩免费视频中文字幕| 亚洲综合一区二区三区| 麻豆成人免费电影| 成人综合婷婷国产精品久久免费| 一本大道av一区二区在线播放| 欧美私模裸体表演在线观看| 欧美一区二区在线播放| 亚洲国产精品ⅴa在线观看| 亚洲国产一区二区三区青草影视| 免费视频最近日韩| 不卡电影免费在线播放一区| 欧美三级日韩三级国产三级| 精品国产乱子伦一区| 亚洲美女偷拍久久| 久久97超碰色| 在线观看av一区二区| 久久先锋影音av鲁色资源网| 一卡二卡欧美日韩| 国产成人在线色| 在线播放中文一区| ...xxx性欧美| 久久电影国产免费久久电影| 色婷婷激情一区二区三区| 国产亚洲1区2区3区| 亚洲成人www| av在线综合网|