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

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

?? power_test.c

?? 三星 s3c6400測試代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
/**************************************************************************************
* 
*	Project Name : S3C6400 Validation
*
*	Copyright 2006 by Samsung Electronics, Inc.
*	All rights reserved.
*
*	Project Description :
*		This software is only for validating functions of the S3C6400.
*		Anybody can use this software without our permission.
*  
*--------------------------------------------------------------------------------------
* 
*	File Name : power_test.c
*  
*	File Description : This file implements the test functons for the Power Mode
*
*	Author : Wonjoon Jang
*	Dept. : AP Development Team
*	Created Date : 2007/01/10
*	Version : 0.1 
* 
*	History
*	- Created(Wonjoon.jang  2007/01/10)
*  
**************************************************************************************/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <ctype.h>

#include "option.h"
#include "library.h"
#include "sfr6400.h"
#include "system.h"
#include "gpio.h"
#include "intc.h"

#include "dmc.h"
#include "rtc.h"
//#include "adcts.h"
//#include "lcd.h"
#include "sysc.h"
#include "power_test.h"
#include "timer.h"
#include "keypad.h"
#include "adcts.h"
#include "dma.h"
//#include "hsi.h"
#include "uart.h"

#define	DBG_PRINT			FALSE

u32  g_OnTest ;//= 1;
u32 g_OnTest_DSTOP; //=1;//=1;
u32 g_OnTest_ESLP;//=1;

u32 g_TestCount, g_AlmInt;
u32 g_Inform0;

extern u32 g_DmaDone;
extern u32 g_uIntCounter0 ;   
extern u32 g_uIntCounter1 ;   
extern u32 g_uIntCounter2 ;  
extern u32 g_uIntCounter3 ;  
static DMAC oDmac0_T;
extern u32 g_iSeed;
extern void  Insert_Seed(void);



//////////
// Function Name : InitData_SDRAM
// Function Description : This function initializes data in the DRAM
//					 
// Input : 	check_start - start address, check_size- data size
// Output : 	
//			
// Version : v0.1
void InitData_SDRAM(int check_start, int check_size)
{
    int i;
#if DBG_PRINT
    printf("[SDRAM Initialization]\n");
    printf("Fill SDRAM for self-refresh test.\n");
#endif
    for(i=check_start;i<(check_start+check_size);i+=4)
    	*((unsigned int *)i)=i^0x55555555;
    	//*((unsigned int *)i)=0x55555555;
#if DBG_PRINT    
    printf("Filling SDRAM is completed.\n");
#endif
    
}

//////////
// Function Name : CheckData_SDRAM
// Function Description : This function check data in the DRAM 
//					  
// Input : 	check_start - start address, check_size- data size
// Output : 	
//			
// Version : v0.1
void CheckData_SDRAM(int check_start, int check_size)
{
    int i;
    int error=0;
   #if DBG_PRINT 
    printf("Check SDRAM for self-refresh test\n");
   #endif
    for(i=check_start;i<(check_start+check_size);i+=4)
    {
    	if(*((unsigned int *)i)!=(i^0x55555555))
    //	if(*((unsigned int *)i)!=(0x55555555))
    	{
    	    printf("Mem Error:%x=%x(%x)\n",i,*((unsigned int *)i),i^0x55555555);
    	    error++;
    	}
    	if(error>20)
	    break;
    }
    if(error)
    	{
      	printf("SDRAM self-refresh test:FAILED\n"); 
      	}
    else
    	{
    	 #if DBG_PRINT  
    	printf("SDRAM self-refresh test:O.K.\n");	
    	 #endif
    	}

}

//////////
// Function Name : Check_AliveSFR
// Function Description : 
//					  
// Input : 	uWorR = 0: Write Alive SFR
//                 uWorR = 1:  Read Alive SFR
// Output : 	
//			
// Version : v0.1
void Check_AliveSFR(u32 uWorR)
{

	if(uWorR == 0)
	{
	
		Outp32SYSC(0x804, 0x80);   		//PWR_CFG		-> 康氫絕瀾.
		Outp32SYSC(0x808, 0x10000);		//EINT_MASK
		//Outp32SYSC(0x810,0xFFFFFD00);	//NORMAL_CFG
		Outp32SYSC(0x814,0x20120000);	//STOP_CFG
		Outp32SYSC(0x818,0x1);			//SLEEP_CFG
	
		Outp32SYSC(0x820, 0x2);			//OSC_FREQ
		Outp32SYSC(0x824, 0x2);			//OSC_STABLE
		Outp32SYSC(0x828, 0x2);			//PWR_STABLE
		Outp32SYSC(0x82C, 0x2);			//FPC_STABLE
		Outp32SYSC(0x830, 0xF7777777);	//MTC_STABLE
	
		//Outp32Inform(0, 0x1);			// Information Register
		Outp32Inform(1, 0x2);			// Information Register
		Outp32Inform(2, 0x3);			// Information Register
		Outp32Inform(3, 0x4);			
		Outp32Inform(4, 0x5);
		Outp32Inform(5, 0x6);
		Outp32Inform(6, 0x7);
		//Outp32Inform(7, 0x8);

	}
	else
	{
		
		printf("	rPWR_CFG = 0x%x \n", Inp32SYSC(0x804));   		//PWR_CFG
		printf("	rEINT_MASK = 0x%x \n", Inp32SYSC(0x808)); 
		printf("	rNORMAL_CFG = 0x%x \n", Inp32SYSC(0x810)); 
		printf("	rSTOP_CFG = 0x%x \n", Inp32SYSC(0x814)); 
		printf("	rSLEEP_CFG = 0x%x \n", Inp32SYSC(0x818)); 
		printf("	rOSC_FREQ = 0x%x \n", Inp32SYSC(0x820)); 
		printf("	rOSC_STABLE = 0x%x \n", Inp32SYSC(0x824)); 
		printf("	rPWR_STABLE = 0x%x \n", Inp32SYSC(0x828)); 
		printf("	rFPC_STABLE = 0x%x \n", Inp32SYSC(0x82C)); 
		printf("	rMTC_STABLE = 0x%x \n", Inp32SYSC(0x830)); 
		printf("	rInform0	 = 0x%x \n", Inp32SYSC(0xA00)); 
		printf("	rInform1	 = 0x%x \n", Inp32SYSC(0xA04));  
		printf("	rInform2	 = 0x%x \n", Inp32SYSC(0xA08)); 
		printf("	rInform3	 = 0x%x \n", Inp32SYSC(0xA0c)); 
		printf("	rInform4	 = 0x%x \n", Inp32SYSC(0xA10)); 
		printf("	rInform5	 = 0x%x \n", Inp32SYSC(0xA14)); 
		printf("	rInform6	 = 0x%x \n", Inp32SYSC(0xA18)); 
		printf("	rInform7	 = 0x%x \n", Inp32SYSC(0xA1c)); 

	}

   
}


//////////
// Function Name : Isr_TIMER0
// Function Description : This function is Interrupt Service Routine of PWM Timer0
// Input : NONE
// Output : NONE (increment of g_uIntCounter0 value)
// Version : v0.1

void __irq Isr_TIMER0_Idle(void)
{
	u32 uTmp;
	
	uTmp = Inp32(0x7F006044);
	uTmp = (uTmp & 0x1f)| (1<<5);
	Outp32(0x7F006044,uTmp);       //  Timer0 Interrupt Clear register
//	printf(".");
    //printf("Timer0\n");
	g_uIntCounter0++;

    INTC_ClearVectAddr();

}

//////////
// Function Name : Isr_TIMER1
// Function Description : This function is Interrupt Service Routine of PWM Timer0
// Input : NONE
// Output : NONE (increment of g_uIntCounter0 value)
// Version : v0.1
void __irq Isr_TIMER1_Idle(void)
{
 	u32 uTmp;
	
	uTmp = Inp32(0x7F006044);
	uTmp = (uTmp & 0x1f) | (1<<6);
	Outp32(0x7F006044,uTmp);      //  Timer1 Interrupt Clear register
//	printf("+");
    //printf("Timer1\n");
    g_uIntCounter1++;
	
    INTC_ClearVectAddr();    

}

//////////
// Function Name : Isr_TIMER2
// Function Description : This function is Interrupt Service Routine of PWM Timer0
// Input : NONE
// Output : NONE (increment of g_uIntCounter0 value)
// Version : v0.1
void __irq Isr_TIMER2_Idle(void)
{
	u32 uTmp;
	
	uTmp = Inp32(0x7F006044);
	uTmp = (uTmp & 0x1f) |(1<<7);
	Outp32(0x7F006044,uTmp);       //  Timer2 Interrupt Clear register
//	printf("-");
	//printf("Timer2\n");
	 g_uIntCounter2++;

	INTC_ClearVectAddr();    

}

//////////
// Function Name : Isr_TIMER3
// Function Description : This function is Interrupt Service Routine of PWM Timer0
// Input : NONE
// Output : NONE (increment of g_uIntCounter0 value)
// Version : v0.1
void __irq Isr_TIMER3_Idle(void)
{
	u32 uTmp;
	
	uTmp = Inp32(0x7F006044);
	uTmp = (uTmp & 0x1f) | (1<<8);
	Outp32(0x7F006044,uTmp);       //  Timer3 Interrupt Clear register
 //   printf("&");
    //printf("Timer3\n");
    g_uIntCounter3++;
	
    INTC_ClearVectAddr();    
}

void __irq Dma0Done_T(void)
{
    
  	DMACH_ClearIntPending(&oDmac0_T);
 	//rDMAC0IntTCClear = 0xff;
	printf ("DMA ISR %d\n", g_DmaDone);
	g_DmaDone=1;
	g_DmaDone++;
	INTC_ClearVectAddr();
       //Write_VECTADDR(0x0);
}

void __irq Isr_RTC_AlmWu(void)
{

	RTC_ClearIntP(1);
	//uCntAlarm=1;
#if DBG_PRINT
	printf(" [Wu]RTC alarm test OK\n");
#endif

	INTC_ClearVectAddr();
}


//////////
// Function Name : SetAlarmWakeup
// Function Description : Setting RTC Alarm Int. - after 10sec.
// Input : 	None
// Output :	None 
// Version : v0.1
void SetAlarmWakeup (void)
{

	RTC_ClearIntP(1);	
	INTC_SetVectAddr(NUM_RTC_ALARM,Isr_RTC_AlmWu);
	
	RTC_SetCON(0,0,0,0,0,1);
	RTC_SetTime(InitYEAR,InitMONTH,InitDATE,InitDAY,InitHOUR,InitMIN,InitSEC);
	RTC_SetAlmTime(AlmYear,AlmMon,AlmDate,AlmHour,AlmMin,AlmSec+3);
	RTC_SetAlmEn(1,0,0,0,0,0,1);
	RTC_SetCON(0,0,0,0,0,0);

#if DBG_PRINT
	printf("	RTC Alarm is set for wake-up source\n");
#endif
	INTC_Enable(NUM_RTC_ALARM);
	
}

void __irq Isr_RTC_Tick_Wu(void)
{
	
	//GPIO_SetFunctionEach(eGPIO_F, eGPIO_14,3); 	//GPF14[] = 3 : CLKOUT[0]
	RTC_ClearIntP(0);
	
		printf("[WU] RTC Tick interrupt is occurred .\n");

	INTC_ClearVectAddr();

}


//////////
// Function Name : SetAlarmTick
// Function Description : Setting RTC Alarm Int. - after 10sec.
// Input : 	None
// Output :	None 
// Version : v0.1
void SetAlarmTick (void)
{

	INTC_SetVectAddr(NUM_RTC_TIC, Isr_RTC_Tick_Wu);
	
	// RTC Init.
	RTC_SetCON(0,0,0,0,0,1);
	RTC_SetTime(InitYEAR,InitMONTH,InitDATE,InitDAY,InitHOUR,InitMIN,InitSEC);
#if 0   // 5sec, Tick Clock =128Hz	
	//RTC_SetTickCNT(640);	
	//RTC_SetCON(0,8,0,0,0,0);							// Tick Clock = 128Hz?
       						// 1/128*1280 = 10Sec?
#endif 
	RTC_SetTickCNT(65500);
	RTC_SetCON(0,0,0,0,0,0);	       						

	RTC_ClearIntP(0);								// Clear Int. Pending
#if 0	
	//RTC_SetCON(1,8,0,0,0,1);
#endif
	RTC_SetCON(1,0,0,0,0,1);

	printf("	RTC Tick is set for wake-up source\n");

	INTC_Enable(NUM_RTC_TIC);

	
}


//////////
// Function Name : SetEintWakeup
// Function Description : Setting EINT9,10,11 Int. - Falling Edge
// Input : 	None
// Output :	None 
// Version : v0.1
void SetEintWakeup (void)
{
	GPIO_Init();
	
	INTC_SetVectAddr(NUM_EINT1, Isr_WUEint9);

	GPIO_SetPullUpDownEach(eGPIO_N, eGPIO_9, 0x0);  // Pull Down Disable
	GPIO_SetPullUpDownEach(eGPIO_N, eGPIO_11, 0x0);  // Pull Down Disable
	GPIO_SetPullUpDownEach(eGPIO_N, eGPIO_10, 0x0); // Pull Down Disable

	Delay(100);
	//GPIO_SetEint0(9, Low_Level, eDLYFLT, 0);
	GPIO_SetEint0(9, Falling_Edge, eDLYFLT, 0);  			// EVT1 OK

	GPIO_EINT0ClrPend(9);
	GPIO_EINT0ClrPend(10);
	GPIO_EINT0ClrPend(11);

	GPIO_EINT0DisMask(9);
#if DBG_PRINT
	printf("	EINT9  is set for wake-up source\n");
#endif
	INTC_Enable(NUM_EINT1);
	
}





void __irq	Isr_ADCTS_Wu(void)
{
	printf("[WU] Touch interrupt is occurred .\n");

	ADCTS_SetADCClearWKInt();
	INTC_ClearVectAddr();
}


//////////
// Function Name : SetADCTSWakeup
// Function Description : 
// Input : 	None
// Output :	None 
// Version : v0.1
void SetADCTSWakeup (void)
{
	u32 uTemp;
	ADCTS_Init();
	ADC_InitADCCON();

	Outp32(0x7E00B000, (Inp32(0x7E00B000)|(1<<2)));
	ADCTS_SetDelay(20);

	uTemp = Inp32(0x7E00B008)|(1<<16);    // RTC Clock
	Outp32(0x7E00B008, uTemp);
	printf("	Touch Screen  is set for wake-up source\n");

	Outp32(0x7E00B004, 0x90);
	
	ADCTS_SetMeasureMode(eADCTS_MEASURE_FOR_STYLUS);
	Outp32(0x7E00B004, 0xd3);
#if 0	
	printf("	rADCCON: 0x%x\n", Inp32(0x7E00B000));
	printf("	rADCTS: 0x%x\n", Inp32(0x7E00B004));
	printf("	rADCDLY: 0x%x\n", Inp32(0x7E00B008));

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美一区二区三区在| 成人午夜在线免费| 在线成人av影院| 日韩成人免费看| 欧美肥妇free| 日韩精品一级中文字幕精品视频免费观看| 成人av在线播放网址| 久久久久久久久久美女| 国产精品一区二区视频| 久久免费电影网| 国产乱子伦一区二区三区国色天香| 精品国产乱码久久久久久1区2区| 日日夜夜免费精品视频| 欧美日韩免费在线视频| 亚洲国产精品一区二区www| 91蝌蚪国产九色| 亚洲综合一区在线| 欧美午夜电影在线播放| 天天av天天翘天天综合网| 欧美精品久久天天躁| 麻豆91在线观看| 国产午夜久久久久| 成人不卡免费av| 亚洲影视资源网| 日韩欧美卡一卡二| 国产精品一区二区你懂的| 国产欧美1区2区3区| 91网上在线视频| 五月婷婷久久丁香| 精品剧情在线观看| 高清不卡在线观看| 一区二区三区在线影院| 91精品国产综合久久国产大片 | 色综合中文字幕| 一区二区三区四区视频精品免费| 欧美吞精做爰啪啪高潮| 一区二区免费在线播放| 91黄色免费版| 亚洲成人精品一区二区| 欧洲精品在线观看| 人人爽香蕉精品| 久久婷婷国产综合精品青草| 成人av网址在线观看| 亚洲图片你懂的| 欧美在线制服丝袜| 亚洲gay无套男同| 日韩精品一区在线观看| 国产成人在线网站| 亚洲综合激情另类小说区| 欧美一二三四区在线| 国产成人免费在线视频| 亚洲国产乱码最新视频| 日韩西西人体444www| 96av麻豆蜜桃一区二区| 免费在线一区观看| 亚洲另类一区二区| 国产亚洲女人久久久久毛片| 欧美日韩一区二区在线视频| 国产精品18久久久久久久网站| 亚洲品质自拍视频网站| 久久网这里都是精品| 91精品国产美女浴室洗澡无遮挡| 成人app在线观看| 久久精品国产免费| 亚洲成人免费在线观看| 国产精品久久久久久久久免费相片 | 久久99精品久久久久久| 一区二区三区视频在线看| 国产调教视频一区| 日韩欧美在线网站| 在线欧美日韩国产| 成人aaaa免费全部观看| 久久99国产精品免费网站| 亚洲国产欧美另类丝袜| 自拍视频在线观看一区二区| 久久综合精品国产一区二区三区| 91精品中文字幕一区二区三区| 97国产一区二区| eeuss影院一区二区三区| 蜜桃视频在线观看一区| 亚洲国产综合91精品麻豆| 国产精品理论在线观看| 久久久综合视频| 亚洲精品一区二区三区在线观看| 91国产丝袜在线播放| 91成人在线观看喷潮| 色综合天天综合网天天狠天天| 国产成人自拍网| 国产一区二区三区免费观看| 精品亚洲国内自在自线福利| 日韩在线a电影| 日日夜夜免费精品| 亚洲国产欧美另类丝袜| 亚洲综合激情网| 亚洲电影欧美电影有声小说| 夜夜爽夜夜爽精品视频| 夜夜嗨av一区二区三区网页| 亚洲免费av高清| 成人免费在线观看入口| 国产精品久久久久久户外露出 | 色综合天天综合网天天看片| 9l国产精品久久久久麻豆| 国产在线麻豆精品观看| 韩国精品主播一区二区在线观看| 国内精品免费在线观看| 国产成人免费视频网站| 91在线云播放| 色婷婷国产精品综合在线观看| 91免费看视频| 欧美日韩在线播放三区四区| 91精品福利在线一区二区三区| 日韩一区二区三免费高清| 欧美日韩激情一区二区三区| 欧美一区二区在线不卡| 久久久国产精华| 亚洲日本电影在线| 亚洲成av人片www| 日本欧美在线看| 国产一级精品在线| 成人免费视频播放| 色诱视频网站一区| 欧美高清精品3d| 久久久激情视频| 一区二区在线免费观看| 日韩av二区在线播放| 国产精品综合一区二区三区| 99视频国产精品| 欧美放荡的少妇| 国产欧美日韩一区二区三区在线观看| 国产精品久久久久久久岛一牛影视 | 日韩成人午夜精品| 国产一区高清在线| 色婷婷久久久久swag精品| 3atv一区二区三区| 精品国产亚洲在线| 国产亚洲人成网站| 最新久久zyz资源站| 亚洲一区影音先锋| 午夜电影一区二区三区| 国产麻豆精品在线| 91蜜桃免费观看视频| 久久久久久久久伊人| 国产精品美日韩| 亚洲国产综合91精品麻豆| 久久99久久久久久久久久久| 激情综合色播激情啊| 本田岬高潮一区二区三区| 欧美日韩一区二区三区四区| 久久精品视频网| 亚洲免费在线看| 日本午夜精品视频在线观看| 不卡一区二区在线| 日韩免费视频一区| 亚洲精品网站在线观看| 国产.欧美.日韩| 日韩欧美一级精品久久| 一区二区三区丝袜| 成人激情小说乱人伦| 制服丝袜亚洲网站| 亚洲免费视频成人| 成人一道本在线| 精品国产一区二区三区久久久蜜月 | 欧美视频自拍偷拍| 国产欧美日韩不卡| 久久国产夜色精品鲁鲁99| 在线视频亚洲一区| 国产精品久久三| 国产黄色成人av| 777a∨成人精品桃花网| 一区二区中文视频| 九一久久久久久| 欧美精品视频www在线观看| 国产精品白丝在线| 看电影不卡的网站| 欧美精品1区2区| 亚瑟在线精品视频| 欧美自拍偷拍午夜视频| 国产精品欧美极品| 久久成人麻豆午夜电影| 欧美日韩高清不卡| 日本伊人色综合网| 欧美日韩高清一区二区不卡| 一级女性全黄久久生活片免费| 91女厕偷拍女厕偷拍高清| 久久免费视频一区| 国产一区二区看久久| 精品日韩99亚洲| 免费观看91视频大全| 欧美另类z0zxhd电影| 午夜欧美大尺度福利影院在线看| 在线看日韩精品电影| 亚洲美女在线一区| 91成人在线免费观看| 亚洲一区在线观看免费| 欧美日韩综合色| 日本亚洲电影天堂| 精品伦理精品一区| 国产精品综合视频| 国产精品三级久久久久三级| 国产激情偷乱视频一区二区三区|