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

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

?? power_test.c

?? 三星 s3c6400測試代碼
?? C
?? 第 1 頁 / 共 5 頁
字號:
#endif	

	INTC_SetVectAddr(NUM_PENDN, Isr_ADCTS_Wu);
	INTC_Enable(NUM_PENDN);

}



//////////
// Function Name : SetKeypadWakeup
// Function Description : 
// Input : 	None
// Output :	None 
// Version : v0.1
void SetKeypadWakeup (void)
{	
	u32 uGPACONSLP, uGPAPUDSLP;

	//EVT0
	uGPACONSLP = Inp32(0x7F00800C);
	uGPAPUDSLP = Inp32(0x7F008010);

	
	Outp32(0x7E00A004, 0xFF);	
	KEYPAD_Init();

	KEYPAD_SelectINT(1);		//Falling Edge
	//KEYPAD_EnableWakeup(3);	// 0x7E00_A000
	KEYPAD_COL(0,0);

	INTC_SetVectAddr(NUM_KEYPAD,Isr_KEYPAD);

	printf("	Keypad  is set for wake-up source\n");
	INTC_Enable(NUM_KEYPAD);

	// EVT0 
	Outp32(0x7F00800C, uGPACONSLP);
	Outp32(0x7F008010, uGPAPUDSLP);

}



#if 0
//////////
// Function Name : SetHSIWakeup
// Function Description : 
// Input : 	None
// Output :	None 
// Version : v0.1
void SetHSIWakeup (void)
{	
	HSI_SetPort();

	//prepare data
	PrepareTxData();
	PrepareRxData();

	//ISR mapping and interrupt enabling	
	INTC_SetVectAddr(NUM_HSIrx, HSI_Rx_ISR);
	INTC_Enable(NUM_HSIrx);

	HSI_SetForRx(HSI_INT_MODE, HSI_FRAME_MODE, HSI_SINGLE_CHID_MODE, HSI_CHID_3BIT);
	HSI_UnmaskRxInt(0xfb);	// unmask all interrupts except rx-done
	printf("	HSI  is set for wake-up source\n");
}
#endif

//////////
// Function Name : BatteryFaultEvent
// Function Description : Isr 
// Input : 	None
// Output :	None 
// Version : v0.1
void __irq Isr_WUBATF(void)
{
	SYSC_ClrBATFINT();
	printf("[WU]Battery Fault is occurred!\n");
	INTC_ClearVectAddr();
}

//////////
// Function Name : BatteryFaultEvent
// Function Description : Isr 
// Input : 	None
// Output :	None 
// Version : v0.1
void __irq Isr_WUBATF1(void)
{
	SYSC_ClrBATFINT();

	Outp32Inform(7, Inp32SYSC(0x90c));
	SYSC_SetCFGWFI(eSLEEP, 0);
	Stop_WFI_Test();
	
	INTC_ClearVectAddr();
}


//////////
// Function Name : Isr_Eintx
// Function Description : EINT ISR Routine
// Input : 	None
// Output :	None 
// Version : v0.1
void __irq Isr_WUEint9(void)
{
          
	GPIO_EINT0ClrPend(9);
	
	//printf("[WU] EINT9 interrupt is occurred .\n");
      // printf("0x7f008924= 0x%x\n", Inp32(0x7F008924));
	INTC_ClearVectAddr();  
    
}

void __irq Isr_WUEint10(void)
{
          
	GPIO_EINT0ClrPend(10);
	printf("[WU]EINT10 interrupt is occurred .\n");

	INTC_ClearVectAddr();
    
}

void __irq Isr_WUEint11(void)
{
          
	GPIO_EINT0ClrPend(11);
	printf("[WU]EINT11 interrupt is occurred .\n");

	INTC_ClearVectAddr();
    
}


//////////
// Function Name : SetBatteryFaultEvent
// Function Description : Setting Battery Falult Event
// Input : 	None
// Output :	None 
// Version : v0.1
void SetBatteryFaultEvent(BATFLT_eMODE eBATFLT)
{



	if(eBATFLT==eFLT_INT)
	{
		//Outp32SYSC(0x804,0x80); // BATFn_MASK_??
		
		INTC_SetVectAddr(NUM_BATF, Isr_WUBATF);
		SYSC_SetBATF(eFLT_INT, 0);
		INTC_Enable(NUM_BATF);
	}
	if(eBATFLT==eFLT_SLEEP)
	{
		printf("Inform register is set!\n");
		Outp32Inform(0,0xABCD6400);	
		SYSC_SetBATF(eFLT_SLEEP, 1);	
	}
}

//////////
// Function Name : CheckHCLK_ForPM
// Function Description : Checking & Enable HCLK_GATE[22,21,0]
// Input : 	None
// Output :	None 
// Version : v0.1
void CheckHCLK_ForPM(void)
{
	u32 uRegValue;

	uRegValue = Inp32SYSC(0x30);
	uRegValue = (uRegValue & ~((0x3<<21)|(0x1<<0))) | ((0x3<<21)|(0x1<<0));
	Outp32SYSC(0x30, uRegValue);

	

}

//////////
// Function Name : CheckBLKPWR_ForPM
// Function Description : Checking & Enable NORMAL_CFG
// Input : 	None
// Output :	None 
// Version : v0.1
void CheckBLKPWR_ForPM(void)
{
	u32 uRegValue;

	uRegValue = Inp32SYSC(0x90c) & 0x7F;
	if(uRegValue != 0x7F)
	{
		Outp32SYSC(0x810, 0xFFFFFF00);	// All Sub block Power Enable			
		while(!(Inp32SYSC(0x90C) == 0x7F));
	}
}

//////////
// Function Name : CheckWAKESTAT_ForPM
// Function Description : Checking & Clear Wakeup Status
// Input : 	None
// Output :	None 
// Version : v0.1
void CheckWAKESTAT_ForPM(u32 uPrint)
{
	u32 uRegValue;

	uRegValue =Inp32SYSC(0x908);
	if (uPrint==1)
	{
	printf("Wake-up Status Register:	0x%x\n",  uRegValue);
	}
	Outp32SYSC(0x908, uRegValue);
}



//////////
// Function Name : IDLET_Baisc
// Function Description : Idle Mode Test - Baisc Test ( 1 Int. Source Enable, Not adapted DVS Scheme)
// Input : 	None
// Output :	None 
// Version : v0.1

void IDLET_Basic (void)
{
	u32 uRegValue;
	
	printf("[IDLE Mode Baisc Test]\n");
	printf("After 10 seconds, S3C6400 will wake up by RTC alarm interrupt.\n");
	printf("S3C6400 will also wake up by EINT9, ADCTS, or BATT_FLT.\n");
	
	
	////////////////////////////////
	// Wake-up Source Setting
	////////////////////////////////
	printf("Wake-up sourceis set! \n");
	SetEintWakeup();
	SetADCTSWakeup();
	SetAlarmWakeup();
	SetBatteryFaultEvent(eFLT_INT);

	////////////////////////////////
	// Enter Idle Mode
	// 		1. Setting "CFG_STANDBYWFI" to "2'b01"  ( PWR_CFG(0x7E00_F804)
	//          2.  Enter to the STANDBYWFI Command
	////////////////////////////////
	
	printf("CPU will goes to IDLE Mode \n");
	UART_TxEmpty();

	SYSC_SetCFGWFI(eIDLE,0);		// IDLE,  Clock Disable
	MMU_WaitForInterrupt();


	printf("Return to Normal Mode \n\n");
	printf("rWAKEUP_STAT=0x%x\n", Inp32SYSC(0x908));
	uRegValue=Inp32SYSC(0x908);
	Outp32SYSC(0x908,uRegValue);
	printf("rWAKEUP_STAT=0x%x\n Wake-up Status Clear\n", Inp32SYSC(0x908));

	// Int. Disable
	INTC_Disable(NUM_EINT1);
	INTC_Disable(NUM_RTC_ALARM);
	INTC_Disable(NUM_BATF);
	INTC_Disable(NUM_PENDN);

}


//////////
// Function Name : STOPT_Basic 
// Function Description : Stop Mode Test - Baisc Test 
// Input : 	None
// Output :	None 
// Version : v0.1

void STOPT_Basic (void)
{
	u32 uRegValue;
	
	printf("\n[STOP Mode Basic Test]\n");
	printf("After 10 seconds, S3C6400 will wake up by RTC alarm interrupt.\n");
	printf("S3C6400 will also wake up by EINT9, ADCTS, or BATT_FLT.\n");


	////////////////////////////////
	//  Save I/O Ports 
	////////////////////////////////
	// Save the port configurations
	//printf("I/O Port is stored!\n");
	//for(i=0;i<36;i++) {
	//	portStatus[i]=*( (volatile U32 *)0x56000000 + i);	// 0x5600_0000:GPACON addr.
	//	}
	//printf("I/O Port is set for Stop Mode!\n");
	//ConfigStopGPIO();
	//ConfigMiscIO_stop();
	Outp32Inform(5, 0x0);

	printf("Wake-up source is set!\n");
	////////////////////////////////
	// Wake-up Source Setting
	//      Wake-up Source Interrupts are must enabled at Stop Mode
	////////////////////////////////
   	SetAlarmWakeup();
	SetEintWakeup();
	Outp32SYSC(0x804, 0x1<<7);			// nBATF Wake-up Mask disable
	SetBatteryFaultEvent(eFLT_INT);
	SetADCTSWakeup();

       /////////////////////////////////
       // 1) Check&Enable HCLK_GATE[22,21,0]
       // 2) Check BLK_PWR_STAT 
       // 3) Check&Clear WAKEUP_STAT
       //////////////////////////////
	CheckHCLK_ForPM();
       CheckBLKPWR_ForPM();
	CheckWAKESTAT_ForPM(1);
	
	printf("\nCPU will goes to Stop Mode!\n\n");
	UART_TxEmpty();				// 

	////////////////////////////////
	// Enter the Stop Mode
	// 		1. Setting "CFG_STANDBYWFI" to "2'b10"  ( PWR_CFG(0x7E00_F804)
	//          2. Setting "STOP_CFG"(0x7E00_F814) -> ARM_LOGIC/MEM, TOP_LOGIC/MEM ON, OSC_EN ="0"
	//          2.  Enter to the STANDBYWFI Command
	////////////////////////////////
	SYSC_OSCSTAB(1);			
	SYSC_SetSTOPCFG(1, 1, 1, 1);		// Set ARM_LOGIC/MEM, TOP_LOGIC/MEM to "1"
	SYSC_SetCFGWFI(eSTOP, 0);		// 
	MMU_WaitForInterrupt();


	
	////////////////////////////////
	//  Restore  I/O Ports 
	////////////////////////////////
	
/*
	//Restore the port configurations
	printf("\nI/O Port is restored!\n");
	for(i=0;i<36;i++){
		*( (volatile U32 *)0x56000000 + i)=portStatus[i];
	}
*/
	DisplayLED(0x3);
	printf("Return to Normal Mode.\n");
	printf("rWAKEUP_STAT=0x%x\n", Inp32SYSC(0x908));
	uRegValue=Inp32SYSC(0x908);
	Outp32SYSC(0x908,uRegValue);
	printf("rWAKEUP_STAT=0x%x\n Wake-up Status Clear\n", Inp32SYSC(0x908));
	
	SYSC_RdBLKPWR();

	// Int. Disable
	INTC_Disable(NUM_EINT1);
	INTC_Disable(NUM_RTC_ALARM);
	INTC_Disable(NUM_BATF);
	INTC_Disable(NUM_PENDN);

}

//////////
// Function Name : DeepStopStatus
// Function Description : This function  define Deepstop wake-up
// Input :   NONE			
// Output : true , false
// Version : 
bool DeepStopStatus(void)
{
	u32 uRead0, uRead1;
	
	uRead0=Inp32SYSC(0x804);			// Read PWR_CFG
	uRead1=Inp32SYSC(0x814);			// Read STOP_CFG

       uRead0 = (uRead0 >>5)& 0x3;			// Read CFG_STANDBYWFI
       uRead1 = (uRead1 >>17)&0x1;			// Read ARM_LOGIC

       if ((uRead0==0x2)&&(uRead1 == 0x0))
      	{
      	#if DBG_PRINT
      		printf("Wake-up from Deep Stop Mode \n");
      	#endif
		return true;
      	}
      	else
		return false;
}


//////////
// Function Name : DSTOPT_Basic 
// Function Description : Stop Mode Test - Baisc Test 
// Input : 	None
// Output :	None 
// Version : v0.1

void DSTOPT_Basic (void)
{
	//u32 uRegValue;
	u32	uDSTOP;

	uDSTOP= DeepStopStatus();
	SYSC_RdRSTSTAT(1);

	if( uDSTOP && !(g_OnTest_DSTOP) )									// must be changed
	{
		
		CheckData_SDRAM(_DRAM_BaseAddress+0x1000000, 0x10000);

		//Check & Clear Wake-up Source 
		SYSC_ClrWKUPSTAT();

		//Read RawInterrupt Status
		printf("VIC0RawStatus: 0x%x \n", Inp32(0x71200008));
		printf("VIC1RawStatus: 0x%x \n", Inp32(0x71300008));

		printf("Deep Stop mode test is done\n");
		g_OnTest_DSTOP = 1;
	}

else			// Entering into Deep Stop Mode
	{
		g_OnTest_DSTOP=0;
	
	printf("\n[Deep STOP Mode Basic Test]\n");
	printf("After 10 seconds, S3C6400 will wake up by RTC alarm interrupt.\n");
	printf("S3C6400 will also wake up by EINT9, ADCTS, or BATT_FLT.\n");


	printf("Test pattern for SDRAM Self-Refresh is filled!\n");
	InitData_SDRAM(_DRAM_BaseAddress+0x1000000, 0x10000);
	Outp32Inform(5, 0x0);
	////////////////////////////////
	//  Save I/O Ports 
	////////////////////////////////
	// Save the port configurations
	//printf("I/O Port is stored!\n");
	//for(i=0;i<36;i++) {
	//	portStatus[i]=*( (volatile U32 *)0x56000000 + i);	// 0x5600_0000:GPACON addr.
	//	}
	//printf("I/O Port is set for Stop Mode!\n");
	//ConfigStopGPIO();
	//ConfigMiscIO_stop();


	printf("Wake-up source is set!\n");
	////////////////////////////////
	// Wake-up Source Setting
	//      Wake-up Source Interrupts are must enabled at Stop Mode

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区成人在线观看| 欧美一个色资源| 久久先锋资源网| 免费一区二区视频| 色久综合一二码| 国产精品免费免费| 国产在线精品一区二区不卡了 | 亚洲欧洲一区二区三区| 久久99久久久欧美国产| 欧美日韩国产在线播放网站| 亚洲欧美日韩国产中文在线| 91麻豆精品秘密| 亚洲视频一区二区在线观看| 91福利在线观看| 成人一区二区三区在线观看| 欧美激情一区二区| 亚洲精品一区二区三区在线观看| 亚洲另类中文字| 在线播放一区二区三区| 日本女人一区二区三区| 日韩精品影音先锋| 懂色av噜噜一区二区三区av| 综合电影一区二区三区 | 色狠狠一区二区三区香蕉| 国产在线精品一区二区三区不卡| 日韩综合在线视频| 精品免费99久久| 成人深夜视频在线观看| 亚洲第一精品在线| 日韩精品福利网| 日韩美女天天操| 99re成人精品视频| 777xxx欧美| 亚洲色大成网站www久久九九| 欧美性淫爽ww久久久久无| 91久久国产最好的精华液| 性做久久久久久免费观看| 久久午夜色播影院免费高清| 91成人看片片| 国产精品18久久久久久久网站| 欧美日韩国产影片| 日韩成人免费电影| 五月天欧美精品| 久久99最新地址| 国产婷婷一区二区| 国产精品久久久久久久久晋中 | 在线中文字幕一区| 日韩午夜激情免费电影| 国产精品综合一区二区三区| 日韩欧美国产一二三区| 日韩一区二区在线看| 精品国产乱码久久久久久久| 欧美精品一区男女天堂| 久久久久9999亚洲精品| 一本到不卡精品视频在线观看| 午夜精品福利视频网站| 午夜激情一区二区三区| 国产精品一区二区三区99| 极品少妇xxxx精品少妇| 中文字幕一区在线观看视频| 国产精品女主播在线观看| 国产精品免费视频观看| 亚洲精品高清视频在线观看| 天天av天天翘天天综合网 | 色综合久久久久| 精品污污网站免费看| 国产传媒久久文化传媒| 精品一区二区综合| 国产大陆a不卡| 在线观看一区不卡| 久久精品人人做人人综合| 欧美一区二视频| 欧美视频中文一区二区三区在线观看| 欧美日韩aaaaa| 精品国产a毛片| 17c精品麻豆一区二区免费| 婷婷丁香久久五月婷婷| 国产麻豆日韩欧美久久| 日本精品一级二级| 日韩一区和二区| 国产精品激情偷乱一区二区∴| 亚洲成人午夜电影| 国产成人午夜片在线观看高清观看| 91麻豆.com| 精品美女在线播放| 亚洲最新视频在线观看| 精久久久久久久久久久| 色播五月激情综合网| 久久精品一区二区三区av| 亚洲午夜精品网| 亚洲第一会所有码转帖| 国产一区二区调教| 欧美午夜视频网站| 欧美国产精品久久| 日韩精品亚洲一区二区三区免费| 国产大陆亚洲精品国产| 欧美一三区三区四区免费在线看| 国产精品久久午夜| 蜜臀精品一区二区三区在线观看| 日本人妖一区二区| 精品国产91亚洲一区二区三区婷婷| 欧美视频一区二区三区在线观看| 欧美一卡2卡3卡4卡| 亚洲日本韩国一区| 精品亚洲成a人| 欧美三级电影一区| 国产精品麻豆99久久久久久| 另类的小说在线视频另类成人小视频在线| 99精品黄色片免费大全| 久久精品亚洲一区二区三区浴池 | 亚洲人亚洲人成电影网站色| 麻豆91在线观看| 欧美综合视频在线观看| 日本一区二区三区久久久久久久久不| 久久色中文字幕| 日本不卡的三区四区五区| 色婷婷一区二区三区四区| 国产精品污www在线观看| 美国毛片一区二区三区| 欧美日韩一二三| 亚洲乱码中文字幕| 色婷婷综合中文久久一本| 亚洲欧洲在线观看av| 91福利国产精品| 亚洲欧美日韩在线不卡| 狠狠色丁香久久婷婷综| 日韩av成人高清| 欧美一区午夜精品| 狠狠狠色丁香婷婷综合激情| 日韩精品中文字幕一区二区三区| 久久99久久久久久久久久久| 精品精品国产高清一毛片一天堂| 久久99精品久久只有精品| 2020国产精品自拍| 精品一区二区三区在线观看| 2021中文字幕一区亚洲| 9人人澡人人爽人人精品| 粉嫩av一区二区三区在线播放| 亚洲视频一二三区| 日韩精品一区二区三区三区免费| 国产精品456| 亚洲色图丝袜美腿| 欧美日韩国产高清一区二区三区 | 国产一区二区美女诱惑| 国产三级久久久| 欧美人与性动xxxx| 久久久久久久久久久久久久久99 | 亚洲欧美综合另类在线卡通| 国产**成人网毛片九色| 国产精品毛片a∨一区二区三区| va亚洲va日韩不卡在线观看| 亚洲色图欧洲色图婷婷| 欧美在线观看你懂的| 午夜精品久久久久影视| 欧美一区二区人人喊爽| 国产伦精品一区二区三区在线观看 | 无码av中文一区二区三区桃花岛| 久久久久久久久久电影| 久久久欧美精品sm网站| 成人精品视频一区| 国产乱码精品一区二区三区忘忧草| 亚洲一区二区视频| 亚洲专区一二三| 久久精品视频一区二区| 亚洲欧洲av一区二区三区久久| 免费看欧美女人艹b| 色菇凉天天综合网| 91精品国产91综合久久蜜臀| 精品一区二区三区在线观看| 国产免费久久精品| 91成人免费电影| 理论电影国产精品| 亚洲欧洲精品一区二区精品久久久 | 午夜精品影院在线观看| 欧美一级二级三级乱码| 成人午夜av影视| 婷婷中文字幕综合| 国产日韩在线不卡| 欧美日韩午夜影院| 国产麻豆精品久久一二三| 亚洲欧美日本韩国| 欧美成人a在线| 在线中文字幕不卡| 国产福利精品一区二区| 亚洲自拍欧美精品| 中文字幕欧美激情| 欧美日韩成人综合天天影院 | 欧美国产日韩一二三区| 欧美午夜寂寞影院| 成人一区二区三区视频| 免费成人在线视频观看| 亚洲天堂免费看| 久久嫩草精品久久久精品| 欧美日韩国产美| 成人av午夜影院| 国产亚洲精久久久久久| 欧美性生活久久| 丁香啪啪综合成人亚洲小说 | 在线观看亚洲精品视频| 国产福利电影一区二区三区|