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

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

?? power.c

?? windows ce 50 drive program
?? C
?? 第 1 頁 / 共 2 頁
字號:
    //Setting: IN      IN      IN   IN    IN    IN   OUT  RXD0 TXD0 OUT   IN
    //Binary : 00,     00      00,  00    00,   00   01,  10   10,  01    00
    //PU_OFF :  0       0       0,   1-ext 1-ext 1-ext 1, 1-ext 1    1     1-ext

#if 1
    s2440IOP->rGPHDAT = 0x0|(1<<6)|(1<<1)|(1<<4);    
    s2440IOP->rGPHCON = 0x0001a4; 		   //0x0011a4->0x0001a4 reduces 12uA why -> MAX3232C may sink 12uA.
#else
    //rGPHDAT = 0x0|(1<<6)|(1<<1)|(1<<4);  
    //rGPHCON = 0x0011a4; 
    s2440IOP->rGPHDAT = 0x0|(0<<6)|(1<<1)|(1<<4);  //(1<<6)->(0<<6) reduces 12uA (MAX3232C may sink 12uA.)
    s2440IOP->rGPHCON = 0x0011a4; 
#endif    
    s2440IOP->rGPHUP  = 0x0ff;    // The pull up function is disabled GPH[10:0]


	//PORT J GROUP
	//Ports	:  GPJ12    GPJ11     GPJ10	  GPJ9  GPJ8      GPJ7	GPJ6  GPJ5	GPJ4  GPJ3  GPJ2  GPJ1  GPJ0
	//Signal : CAMRESET CAMCLKOUT CAMHREF CAMVS CAMPCLKIN CAMD7 CAMD6 CAMD5 CAMD4 CAMD3 CAMD2 CAMD1 CAMD0
	//Setting: Out      Out       Out     Out   Out       Out   Out   Out   Out   Out   Out   Out   Out
	//Binary : 01	    01        01      01    01        01    01    01    01    01    01    01    01
	//PU_OFF : 0	    0 		  1	      1     1         1     1     1		1	  1     1     1     1
	//---------------------------------------------------------------------------------------
	
	s2440IOP->rGPJCON = 0x02aaaaaa;
	s2440IOP->rGPJUP  = 0x1fff;    // The pull up function is disabled GPH[10:0]
    
    //External interrupt will be falling edge triggered. 
//    s2440IOP->rEXTINT0 = 0x22222222;    // EINT[7:0]
    s2440IOP->rEXTINT0 = 0x22222224;    // EINT[7:0]			// charlie. button glich
    s2440IOP->rEXTINT1 = 0x22222222;    // EINT[15:8]
    s2440IOP->rEXTINT2 = 0x22222022;    // EINT[23:16]
}

void ConfigMiscReg(void)
{
    volatile IOPreg *s2440IOP = (IOPreg *)IOP_BASE;
	volatile ADCreg *s2440ADC = (ADCreg *)ADC_BASE;
	volatile RTCreg *s2440RTC = (RTCreg *)RTC_BASE;

    s2440RTC->rRTCCON=0x0;   // R/W disable, 1/32768, Normal(merge), No reset
    s2440ADC->rADCCON|=(1<<2);		// ADC StanbyMode

    s2440IOP->rMISCCR|=(1<<12); //USB port0 = suspend
    s2440IOP->rMISCCR|=(1<<13); //USB port1 = suspend

    s2440IOP->rMISCCR|=(1<<2); //Previous state at STOP(?) mode (???)
    
    //D[31:0] pull-up off. The data bus will not be float by the external bus holder.
    //If the pull-up resitsers are turned on,
    //there will be the leakage current through the pull-up resister
    s2440IOP->rMISCCR=s2440IOP->rMISCCR|(3<<0); 

	// In the evaluation board, Even though in sleep mode, the devices are all supplied the power.
	s2440IOP->rMSLCON = (0<<11)|(0<<10)|(0<<9)|(0<<8)|(0<<7)|(0<<6)|(0<<5)|(0<<4)|(0<<3)|(0<<2)|(0<<1)|(0<<0);
	s2440IOP->rDSC0 = (1<<31)|(3<<8)|(3<<0);
	s2440IOP->rDSC1 = (3<<28)|(3<<26)|(3<24)|(3<<22)|(3<<20)|(3<<18);
}

PRIVATE void 
CPULCDOff(void)
{
    volatile IOPreg *s2440IOP = (IOPreg *)IOP_BASE;
    volatile LCDreg *s2440LCD = (LCDreg *)LCD_BASE;    

    s2440IOP->rGPGDAT &= ~(1 << 4);

    s2440LCD->rLCDCON1   = 0;
    s2440LCD->rLCDCON2   = 0;
    s2440LCD->rLCDCON3   = 0;
    s2440LCD->rLCDCON4   = 0;
    s2440LCD->rLCDCON5   = 0;	
    s2440LCD->rLCDSADDR1 = 0;
    s2440LCD->rLCDSADDR2 = 0;
    s2440LCD->rLCDSADDR3 = 0;
    s2440LCD->rTCONSEL   = 0;
    s2440LCD->rTPAL      = 0;
}

PRIVATE void 
CPUClearCS8900(void)
{
    USHORT temp;

//	RETAILMSG(1,(TEXT("CPUClearCS8900 Enter\r\n")));        

    do 
    {
        temp = *((volatile USHORT *)(CS8900DBG_IOBASE + 8));
    } while (temp != 0);

//	RETAILMSG(1,(TEXT("CPUClearCS8900 Out\r\n")));        
}

void NANDInit(void)
{
	#define NFCONF_INIT                 0xF850
	// HCLK=133Mhz
	#define TACLS		0
	#define TWRPH0		6
	#define TWRPH1		0

	volatile NANDreg *s2440NAND = (NANDreg *)NAND_BASE;
	volatile CLKPWRreg *s2440CLK = (CLKPWRreg *)CLKPWR_BASE;

	//  Enable the clock to NAND controller
	s2440CLK->rCLKCON |= (1<<4);

	//  Now we need enable the NAND Flash controller
//	s2440NAND->rNFCONF = NFCONF_INIT;
    s2440NAND->rNFCONF = (TACLS<<12)|(TWRPH0<<8)|(TWRPH1<<4)|(0<<0);
    s2440NAND->rNFCONT = (0<<13)|(0<<12)|(0<<10)|(0<<9)|(0<<8)|(0<<6)|(0<<5)|(1<<4)|(1<<1)|(1<<0);
    s2440NAND->rNFSTAT = 0;

}

VOID OEMPowerOff(void)
{
	volatile IOPreg *s2440IOP = (IOPreg *)IOP_BASE;
 	volatile INTreg *s2440INT = (INTreg *)INT_BASE;
	volatile LCDreg *s2440LCD = (LCDreg *)LCD_BASE;    
	volatile CLKPWRreg * s2440CLKPW = (CLKPWRreg *)CLKPWR_BASE;

//	RETAILMSG(1,(TEXT("++ Enter  OEMPOWER.\r\n")));        

    //  Allow KITL to save its state
//	if(gpfnKitlPowerHandler) {
//		gpfnKitlPowerHandler(TRUE);
//	}

    /* Save Current Important CPU Regs...   */
    CPUSaveRegs(CPUBackupRegs);


    /* LCD Controller Disable               */
    CPULCDOff();

	/* Stop all GPIO */
	ConfigStopGPIO();

	/* Set misc register for power off */
	ConfigMiscReg();

//	s2440CLKPW->rCLKCON = 0xFFFF0;

    /* Actual Power-Off Mode Entry          */
	CPUPowerOff();

//	while(1); // for batt_flt debugging

    /* Recover Process, Load CPU Regs       */
    CPULoadRegs(CPUBackupRegs);

    /* Interrupt Clear                      */
    s2440IOP->rEINTPEND  = s2440IOP->rEINTPEND;
    s2440LCD->rLCDSRCPND = s2440LCD->rLCDSRCPND;
    s2440LCD->rLCDINTPND = s2440LCD->rLCDINTPND;
    s2440INT->rSUBSRCPND = s2440INT->rSUBSRCPND;
//    s2440INT->rSRCPND    = s2440INT->rSRCPND;
//    s2440INT->rINTPND    = s2440INT->rINTPND;

	NANDInit();

    OEMInitDebugSerial();
    CPUClearCS8900();	
	RETAILMSG(1,(TEXT("-- Exit  OEMPOWER.\r\n")));
	RETAILMSG(1,(TEXT("s2440INT->rSRCPND = 0x%x \r\n"), s2440INT->rSRCPND));
	RETAILMSG(1,(TEXT("s2440INT->rINTPND = 0x%x \r\n"), s2440INT->rINTPND));
	RETAILMSG(1,(TEXT("s2440INT->rINTMOD = 0x%x \r\n"), s2440INT->rINTMOD));
	RETAILMSG(1,(TEXT("s2440INT->rINTMSK = 0x%x \r\n"), s2440INT->rINTMSK));

	//	while(1); // for batt_flt debugging

    //  Allow KITL to restore its state
//	if(gpfnKitlPowerHandler) {
//		gpfnKitlPowerHandler(FALSE);
//	}
}


PUBLIC void 
OEMEmergencyPowerOff(void)
{
    volatile IOPreg *s2440IOP = (IOPreg *)IOP_BASE;
 	volatile INTreg *s2440INT = (INTreg *)INT_BASE;
    volatile LCDreg *s2440LCD = (LCDreg *)LCD_BASE;    
    volatile CLKPWRreg *s2440CLK = (CLKPWRreg *)CLKPWR_BASE;    
	
    /* Save Current Important CPU Regs...   */
//	CPUSaveRegs(CPUBackupRegs);

	s2440IOP->rGPFDAT = ~(0x1 << 5);   /* LED Off */
    /* LCD Controller Disable               */
    CPULCDOff();

	s2440IOP->rGPFDAT = ~(0x2 << 5);   /* LED Off */
	/* Stop all GPIO */
	ConfigStopGPIO();

	s2440IOP->rGPFDAT = ~(0x3 << 5);   /* LED Off */
	/* Set misc register for power off */
	ConfigMiscReg();

	s2440IOP->rGPFDAT = ~(0x4 << 5);   /* LED Off */
    /* Actual Power-Off Mode Entry          */

	EmergencyCPUPowerOff();
//	CPUPowerOff();
}

VOID OEMCPUPowerReset()
{
#if 0
	volatile WATCHreg *WTimer = (WATCHreg *) WATCH_BASE;

	// Burst refresh with reading all SDRAM area.
	Burst_Refresh();

	// Mask F bit, I bit.
	CLR_IF();
	
	// Set watch dog reset. After this function, watch-dog reset will occure after 500ms.
	Watchdog_Set();

//	WTimer->rWTCON = ((PCLK/1000000-1) << 8) |		/* The prescaler value => 255 + 1	*/
//					 (0x00 << 6) |		/* Reserved							*/
//					 (0x01 << 5) |		/* Timer enable or disable			*/
//					 (0x03 << 3) |		/* The clock division factor => 16	*/
//					 (0x00 << 2) |		/* Disable bit of interrupt			*/
//					 (0x00 << 1) |		/* Reserved							*/
//					 (0x01 << 0);		/* Enable the reset function of timer */
//
//	while(1);
#endif
	// Set memory with self refresh and enable watchdog reset.
	CPUPowerReset();
}

#define	SDRAM_STARTADDRESS		0x30000000
#define	SDRAM_ENDADDRESS		0x33ffffff

void Burst_Refresh(void)
{
//	int i;

//	for(i=SDRAM_STARTADDRESS; i<SDRAM_ENDADDRESS; i+=8192) 	// Row addr is 13 bit.
//		*(U32 *) i;
}

void CLR_IF()
{
}

//================================================
// Watch-dog timer Interrupt Request Test
//================================================
extern volatile int isWdtInt;
#define	WATCHDOG_TIME	(128)	// [usec], Max=65535*128us.

void Watchdog_Set(void)
{
    volatile INTreg *s2440INT = (INTreg *)INT_BASE;
	volatile WATCHreg *WTimer = (WATCHreg *) WATCH_BASE;

	//t_watchdog = 1 / (PCLK / (Prescaler value + 1 ) / Division_factor)
	s2440INT->rINTMSK &= ~(BIT_WDT_AC97);		   //Watch dog Interrupt service is available
		
	WTimer->rWTCON = ((S2440PCLK/1000000-1) << 8) |		/* The prescaler value => 255 + 1	*/
					 (0x00 << 6) |		/* Reserved							*/
					 (0x00 << 5) |		/* Timer enable or disable			*/
					 (0x03 << 3) |		/* The clock division factor => 16	*/
					 (0x00 << 2) |		/* Disable bit of interrupt			*/
					 (0x00 << 1) |		/* Reserved							*/
					 (0x01 << 0);		/* Enable the reset function of timer */
	WTimer->rWTDAT = 0x1;
	WTimer->rWTCNT = 0x1;
	

//	WTimer->rWTCON = ((PCLK/1000000-1)<<8) | (3<<3) | (1);  //Prescaler=0x31(49),Clock division 128,Reset enable
	// 1*128 usec.

//	WTimer->rWTDAT = WATCHDOG_TIME/128;
//	WTimer->rWTCNT = WATCHDOG_TIME/128;		// (xsec/128us)
}

// End of Power Management 
//------------------------------------------------------------------------------





?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一本久久a久久精品亚洲| 91在线小视频| 国产精品夜夜嗨| 久久成人18免费观看| 国产成人av影院| 欧美日韩精品一区视频| 欧美大胆人体bbbb| 日韩西西人体444www| 国产亚洲精品资源在线26u| 一区二区三区精品视频在线| 亚洲成人激情av| 国产成人在线网站| 在线免费观看视频一区| wwwwww.欧美系列| 偷拍与自拍一区| 国产精品一区三区| 欧美伊人久久久久久久久影院| 欧美一区二区三区喷汁尤物| 亚洲一区二区三区自拍| 一本久久综合亚洲鲁鲁五月天 | 91社区在线播放| 久久久亚洲高清| 久久99热99| 日韩情涩欧美日韩视频| 日本不卡1234视频| 欧美乱熟臀69xxxxxx| 亚洲精品成人少妇| 99国产精品99久久久久久| 国产精品污www在线观看| 国产在线不卡一区| www精品美女久久久tv| 精品在线播放午夜| 精品精品国产高清一毛片一天堂| 丝袜诱惑制服诱惑色一区在线观看 | 亚洲女同ⅹxx女同tv| eeuss影院一区二区三区| 久久精品欧美日韩精品| 国产精品一区二区在线观看不卡 | 欧美精品一区二区三区久久久| 日韩激情视频在线观看| 欧美一区二区三区四区久久| 奇米色一区二区| 久久只精品国产| 国产不卡视频一区二区三区| 中文字幕欧美国产| 色综合久久天天综合网| 亚洲.国产.中文慕字在线| 欧美色视频在线观看| 人人超碰91尤物精品国产| 日韩一级大片在线| 国产麻豆成人传媒免费观看| 国产精品美女久久久久久| 色琪琪一区二区三区亚洲区| 亚洲成人动漫一区| 精品成人一区二区三区四区| 盗摄精品av一区二区三区| 亚洲免费观看在线观看| 制服丝袜中文字幕一区| 国产原创一区二区三区| 亚洲天堂成人在线观看| 欧洲国内综合视频| 美日韩一区二区| 中文字幕一区二区5566日韩| 欧美另类videos死尸| 国产麻豆视频一区| 亚洲免费在线电影| 日韩欧美高清在线| 99精品久久只有精品| 日本色综合中文字幕| 国产日韩欧美高清| 欧美日本一区二区三区四区 | 久久久五月婷婷| 在线观看91精品国产入口| 精品一区二区成人精品| 亚洲激情在线激情| 日韩欧美一区二区不卡| 色综合视频一区二区三区高清| 秋霞成人午夜伦在线观看| 成人免费小视频| 精品动漫一区二区三区在线观看| 91在线视频官网| 国产精品一区在线| 五月激情丁香一区二区三区| 中文字幕日韩一区| 91.com视频| 欧美写真视频网站| 99久久夜色精品国产网站| 秋霞午夜av一区二区三区| 一区二区三区四区国产精品| 国产喷白浆一区二区三区| 91精品免费观看| 欧美日韩一卡二卡| 色综合天天综合网天天看片| 国内成人免费视频| 日韩精品视频网| 一区二区高清视频在线观看| 中文字幕乱码日本亚洲一区二区 | 欧美自拍丝袜亚洲| 国产成人综合网站| 久久99精品国产麻豆婷婷洗澡| 一区二区三区在线播| 自拍偷拍欧美精品| 国产精品久久久久久久裸模| 久久精品视频网| 久久久久久亚洲综合| 精品国产制服丝袜高跟| 日韩亚洲欧美在线观看| 欧美日韩aaaaa| 欧美亚洲动漫另类| 欧美三电影在线| 欧美日韩免费一区二区三区| 欧美色成人综合| 欧美日本精品一区二区三区| 欧美色图第一页| 日韩一区二区三区视频| 欧美一级久久久| 日韩欧美亚洲另类制服综合在线| 日韩欧美在线影院| 精品国产乱码久久久久久1区2区| 欧美大黄免费观看| 久久精品视频免费| 国产精品免费视频一区| 中文字幕一区三区| 亚洲午夜私人影院| 免费日本视频一区| 国产麻豆一精品一av一免费 | 欧美日本韩国一区二区三区视频| 在线观看免费视频综合| 欧美放荡的少妇| 精品动漫一区二区三区在线观看| 久久久久久久久蜜桃| 国产精品久久久一本精品| 亚洲特黄一级片| 日本色综合中文字幕| 国产精品自拍毛片| 91香蕉视频黄| 日韩一区二区电影网| 日本一区二区动态图| 亚洲精品乱码久久久久久日本蜜臀| 亚洲一区二区欧美日韩| 日本不卡免费在线视频| 国产1区2区3区精品美女| 色婷婷综合久久久中文字幕| 欧美一级理论片| 国产精品成人一区二区三区夜夜夜| 亚洲一区二区av在线| 国内一区二区在线| 色欧美88888久久久久久影院| 欧美肥大bbwbbw高潮| 国产亚洲短视频| 亚洲一二三专区| 国产精品夜夜嗨| 欧美人牲a欧美精品| 久久久久久影视| 亚洲国产精品一区二区www在线| 久久丁香综合五月国产三级网站 | 国产剧情一区二区| 91国偷自产一区二区三区观看| 日韩欧美国产系列| 亚洲特黄一级片| 国产一区二区三区日韩| 欧美色大人视频| 中文字幕免费观看一区| 免费日本视频一区| 在线欧美小视频| 国产精品久久久久aaaa樱花| 奇米色777欧美一区二区| 91蝌蚪国产九色| 国产欧美一区二区三区网站| 日韩电影在线免费观看| 色丁香久综合在线久综合在线观看| 久久久久青草大香线综合精品| 亚洲bt欧美bt精品777| 99在线精品一区二区三区| 亚洲精品一区二区三区在线观看 | 欧美一区二区三区四区视频| 亚洲欧洲制服丝袜| 丁香婷婷综合激情五月色| 日韩欧美国产一区在线观看| 亚洲福利视频一区| 色婷婷狠狠综合| 中文字幕日韩一区| 成人永久看片免费视频天堂| 久久夜色精品国产噜噜av| 免费看日韩精品| 91精品久久久久久蜜臀| 香蕉成人伊视频在线观看| 91麻豆高清视频| 樱桃国产成人精品视频| 91亚洲精品久久久蜜桃| 国产精品不卡一区二区三区| 成人午夜免费电影| 欧美极品少妇xxxxⅹ高跟鞋| 国产综合成人久久大片91| 欧美电影精品一区二区| 美腿丝袜亚洲色图| 欧美成人女星排行榜| 寂寞少妇一区二区三区| 久久综合九色综合97婷婷女人 | 欧美国产1区2区|