亚洲欧美第一页_禁久久精品乱码_粉嫩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电影一区| 成人一区二区视频| 国产日韩欧美精品在线| 国产成人免费视频精品含羞草妖精| 久久久一区二区三区| 成人黄色电影在线| 一区二区日韩电影| 欧美一级专区免费大片| 国产精品99久久久久久久女警 | 精品国产一区二区三区久久影院 | 亚洲午夜激情av| 91精品欧美综合在线观看最新| 久久激五月天综合精品| 国产精品女人毛片| 欧美日韩午夜在线视频| 久久精品理论片| 中文字幕一区二区三区乱码在线| 欧美视频日韩视频| 国产精品一级在线| 亚洲一区二三区| 亚洲精品在线观看网站| 在线视频一区二区三区| 久久精品国产精品亚洲综合| 欧美高清一级片在线观看| 欧美在线免费观看亚洲| 国产一区二区精品在线观看| 一区二区三区 在线观看视频| 337p粉嫩大胆色噜噜噜噜亚洲| av亚洲产国偷v产偷v自拍| 奇米色777欧美一区二区| 国产精品无圣光一区二区| 91成人免费电影| 国产精品一区二区三区四区| 午夜久久久影院| 国产亚洲va综合人人澡精品| 欧美理论电影在线| 成人黄色一级视频| 韩国女主播成人在线观看| 一区二区三区鲁丝不卡| 国产三级欧美三级日产三级99| 欧美色网一区二区| k8久久久一区二区三区| 激情久久久久久久久久久久久久久久| 亚洲女性喷水在线观看一区| 久久蜜臀中文字幕| 日韩午夜激情免费电影| 欧美视频一区在线| 91亚洲精品久久久蜜桃| 国产成人日日夜夜| 韩国精品在线观看| 男女男精品视频| 性欧美疯狂xxxxbbbb| 亚洲色图一区二区三区| 国产午夜精品久久| 精品福利在线导航| 欧美一级搡bbbb搡bbbb| 欧美日韩一级黄| 在线亚洲精品福利网址导航| av激情亚洲男人天堂| 成人精品小蝌蚪| 国产精品一区二区久久不卡| 久久99精品视频| 久久精品国产久精国产爱| 日韩国产欧美三级| 午夜欧美2019年伦理| 亚洲五码中文字幕| 亚洲成人一区二区在线观看| 亚洲综合视频在线观看| 亚洲午夜日本在线观看| 亚洲一区二区欧美日韩| 一区二区三区不卡视频在线观看 | 日韩专区中文字幕一区二区| 亚洲成在人线在线播放| 亚洲va韩国va欧美va| 亚洲bt欧美bt精品777| 亚洲国产精品久久人人爱| 亚洲国产wwwccc36天堂| 日日夜夜免费精品| 日韩二区在线观看| 美女视频黄 久久| 日本怡春院一区二区| 日韩黄色免费电影| 卡一卡二国产精品| 国产一区二区中文字幕| 国模大尺度一区二区三区| 狠狠色综合日日| 粉嫩高潮美女一区二区三区| av成人老司机| 欧美在线看片a免费观看| 欧美电影在线免费观看| 精品国产成人在线影院 | 18成人在线视频| 亚洲精品高清在线| 亚洲电影在线免费观看| 老司机午夜精品| 国产福利一区在线观看| 日本韩国欧美在线| 制服丝袜亚洲色图| 亚洲精品一区二区三区影院| 一色屋精品亚洲香蕉网站| 亚洲成人www| 国产一区不卡视频| 色婷婷久久综合| 777欧美精品| 国产亚洲欧美在线| 亚洲一区二区四区蜜桃| 黄色小说综合网站| 91福利视频在线| 欧美xxxxx牲另类人与| 国产精品传媒视频| 琪琪久久久久日韩精品| 成人不卡免费av| 在线不卡欧美精品一区二区三区| 久久亚洲私人国产精品va媚药| 亚洲三级在线免费| 九九国产精品视频| 色国产精品一区在线观看| 欧美成人aa大片| 亚洲精品videosex极品| 国产一区二区主播在线| 欧美三级电影一区| 欧美国产日韩a欧美在线观看| 午夜伦理一区二区| www.欧美.com| 精品国产人成亚洲区| 亚洲影院久久精品| 处破女av一区二区| 精品美女一区二区三区| 亚洲国产综合人成综合网站| 国产高清精品久久久久| 91麻豆精品国产91久久久久久久久 | 蜜桃免费网站一区二区三区| 99re这里只有精品6| 精品日韩av一区二区| 亚洲综合激情另类小说区| 国产成人8x视频一区二区| 91精品午夜视频| 亚洲精品高清在线| 99久久国产综合色|国产精品| 久久这里都是精品| 日韩高清欧美激情| 欧美日韩国产免费一区二区| 中文字幕亚洲一区二区av在线| 国产精品一区二区果冻传媒| 日韩欧美色综合| 日韩 欧美一区二区三区| 欧美亚洲高清一区二区三区不卡| 中文一区二区完整视频在线观看| 激情av综合网| 精品国产乱码久久久久久影片| 午夜精品福利一区二区蜜股av| 色婷婷av一区二区三区之一色屋| 国产精品久久久久桃色tv| 国产91清纯白嫩初高中在线观看 | 日本欧美大码aⅴ在线播放| 色噜噜狠狠一区二区三区果冻| 久久―日本道色综合久久| 久久精品国产亚洲一区二区三区| 在线不卡a资源高清| 亚洲va中文字幕| 欧美私模裸体表演在线观看| 亚洲尤物在线视频观看| 欧美视频一区二区三区在线观看 | 精品剧情在线观看| 久久99这里只有精品| 日韩三级在线免费观看| 久久精品国产亚洲aⅴ| 日韩精品一区二区三区视频在线观看| 婷婷夜色潮精品综合在线| 欧美精品日日鲁夜夜添| 天天色综合天天| 日韩免费视频一区二区| 精品一区二区三区在线观看| 久久先锋资源网| 91亚洲国产成人精品一区二三| 亚洲少妇中出一区| 欧美曰成人黄网| 玖玖九九国产精品| 欧美国产精品劲爆| 日本道免费精品一区二区三区| 一区二区三区不卡视频| 7777精品伊人久久久大香线蕉的 | 欧美变态tickling挠脚心| 激情五月婷婷综合| 国产喂奶挤奶一区二区三区| 成人激情av网| 亚洲午夜久久久| 日韩欧美中文字幕一区| 国产乱人伦精品一区二区在线观看| 国产精品人妖ts系列视频| 欧日韩精品视频| 久久精品国产亚洲高清剧情介绍 | 午夜久久久久久久久久一区二区| 日韩视频免费观看高清在线视频| 国产一区二区三区精品视频| 国产精品激情偷乱一区二区∴| 日本福利一区二区| 蜜桃久久久久久| 综合色中文字幕|