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

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

?? cfw.c

?? 增加串口,主要是wince方面的
?? C
?? 第 1 頁 / 共 4 頁
字號:
        curridlelow = currIdle.LowPart;
        curridlehigh = currIdle.HighPart;
        
        return;
    }

    //
    // Since OEMIdle( ) is being called in the middle of a normal reschedule
    // period, CurMSec, dwPartialCurMSec, and CurTicks need to be updated accordingly.
    // Once we reach this point, we must re-program the timer (if we ever did) 
    // because dwPartialCurMSec will be modified in the next function call.
    //
    CPUGetSysTimerCountElapsed(RESCHED_PERIOD, pCurMSec, &dwPartialCurMSec, pCurTicks);

    if ((int) (dwIdleMSec -= *pCurMSec - dwPrevMSec) > 0) {

        dwPrevMSec = *pCurMSec;

        //
        // The system timer may not be capable of arbitrary timeouts. Get the
        // CPU-specific highest possible timeout available.
        //
        dwIdleMSec = CPUGetSysTimerCountMax(dwIdleMSec);
    
        //
        // Set the timer to wake up much later than usual, if needed.
        //
        CPUSetSysTimerCount(dwIdleMSec);
        CPUClearSysTimerIRQ( );
        
        //
        // Enable wakeup on any interrupt, then go to sleep.
        //
//	    DEBUGMSG(1, (TEXT("OEMIDle  \r\n")));
        CPUEnterIdle(dwIdleParam);
        INTERRUPTS_OFF( );
        
        //
        // We're awake! The wake-up ISR (or any other ISR) has already run.
        //
        if (dwPrevMSec != *pCurMSec) {
            //
            // We completed the full period we asked to sleep.  Update the counters.
            //
            *pCurMSec  += (dwIdleMSec - RESCHED_PERIOD); // Subtract resched period, because ISR also incremented.
            CurTicks.QuadPart += (dwIdleMSec - RESCHED_PERIOD) * dwReschedIncrement;

            currIdle.QuadPart += dwIdleMSec;
        } else {
            //
            // Some other interrupt woke us up before the full idle period was
            // complete.  Determine how much time has elapsed.
            //
            currIdle.QuadPart += CPUGetSysTimerCountElapsed(dwIdleMSec, pCurMSec, &dwPartialCurMSec, pCurTicks);
        }
    }

    // Re-arm counters
    CPUSetSysTimerCount(RESCHED_PERIOD);
    CPUClearSysTimerIRQ( );

    // Update global idle time
    curridlelow = currIdle.LowPart;
    curridlehigh = currIdle.HighPart;

    return;
}




//------------------------------------------------------------------------------
//
//  DWORD GetTickCount(VOID)    Return count of time since boot in milliseconds
//
//------------------------------------------------------------------------------
DWORD 
SC_GetTickCount(void) 
{
    DWORD dwInc = 0, dwPartial = dwPartialCurMSec;
	DWORD curReturnMSec;
    ULARGE_INTEGER cdummy = {0, 0};
	curReturnMSec=*pCurMSec;
    CPUGetSysTimerCountElapsed(RESCHED_PERIOD, &dwInc, &dwPartial, &cdummy);
	return (curReturnMSec==*pCurMSec)?curReturnMSec+dwInc:*pCurMSec;
}


volatile BOOL fResumeFlag;
extern void CPUEnterIdleMode(void);



//------------------------------------------------------------------------------
// Initialize SDMMC block.. 
//------------------------------------------------------------------------------
static void InitSDMMC(void) 
{
	volatile IOPreg *s2410IOP = (IOPreg *)IOP_BASE;

	/* Initialize SDMMC and Configure SDMMC Card Detect	*/
	/* ::::::::::::::::::::::::::::::::::: GPIO Configure ::::::::::::::::::::::::::::::::::::: */
	RETAILMSG(1,(TEXT("SDMMC config current rGPGCON: %x\r\n"), s2410IOP->rGPGCON));  
	/* We must need this PULL-UP routines to inialize. */
	//s2410IOP->rGPGUP = 0xF800;   
	s2410IOP->rGPGUP &= ~(1<<10);	
	s2410IOP->rGPGCON &= ~((0x3 << 20));   
	s2410IOP->rGPGCON |=  ((0x2 << 20));		/* External Interrupt #18 Enable				*/
	RETAILMSG(1,(TEXT("SDMMC config set rGPGCON: %x\r\n"), s2410IOP->rGPGCON));   

	s2410IOP->rEXTINT2 &= ~(0x7 << 8);			/* Configure EINT18 as Both Edge Mode		*/
	s2410IOP->rEXTINT2 |=  (0x7 << 8);

	/* Configure SDMMC Write Protect */
	s2410IOP->rGPHUP = 0x0;   
	s2410IOP->rGPHCON &= ~((0x3 << 16));   
	s2410IOP->rGPHCON |=  ((0x0 << 16));		/* GPH8/UCLK Write Protect Pin					*/

	RETAILMSG(1,(TEXT("SDMMC config Init Done.\r\n")));   
}


static void HzhInitPIO(void)
{
	volatile IOPreg *s2410IOP;
	
	s2410IOP = (IOPreg *)IOP_BASE;
	
	s2410IOP->rGPGCON &= ~(3<<18);
	s2410IOP->rGPGCON |= 1<<18;		//GPG9 output 1
	s2410IOP->rGPGDAT |= 1<<9;
}


//------------------------------------------------------------------------------
// Initialize and test the LCD block.. 
//------------------------------------------------------------------------------

/*
// Define some values for TFT 16bpp
#if(LCDTYPE == TFT16BPP)    // TFT 640*480 / 16bpp
#define FR_WIDTH            240
#define FR_HEIGHT           320
#define PhysicalVmemSize    FR_HEIGHT*FR_WIDTH*LCDTYPE


struct FrameBuffer {
   unsigned short pixel[FR_HEIGHT][FR_WIDTH];
};

#else if(LCDTYPE == STN8BPP)// STN 320*240 / 8bpp
#define FR_WIDTH            320
#define FR_HEIGHT           240
#define PhysicalVmemSize    FR_HEIGHT*FR_WIDTH

struct FrameBuffer {
   unsigned char pixel[FR_HEIGHT][FR_WIDTH];
};
#endif
*/

struct FrameBuffer *FBuf;

static void InitDisplay()
{
    //int i, j;
    volatile IOPreg *s2410IOP;
    volatile LCDreg *s2410LCD;    

    s2410IOP = (IOPreg *)IOP_BASE;
    s2410LCD = (LCDreg *)LCD_BASE; 

    // LCD port initialize.
    s2410IOP->rGPCUP  = 0xFFFFFFFF;
    s2410IOP->rGPCCON = 0xAAAAAAAA;

    s2410IOP->rGPCCON = 0xAAAAAAAA;

    s2410IOP->rGPDUP  = 0xFFFFFFFF;
    s2410IOP->rGPDCON = 0xAAAAAAAA;

    s2410IOP->rGPGCON &= ~(3 << 8);                 /* Set LCD_PWREN as output                          */
    s2410IOP->rGPGCON |=  (1 << 8);

    s2410IOP->rGPGDAT |=  (1 << 4);                 /* Backlight ON                                     */



    s2410LCD->rLCDCON1   =  (6           <<  8) |   /* VCLK = HCLK / ((CLKVAL + 1) * 2) -> About 7 Mhz  */
                            (MVAL_USED   <<  7) |   /* 0 : Each Frame                                   */
                            (3           <<  5) |   /* TFT LCD Pannel                                   */
                            (12          <<  1) |   /* 16bpp Mode                                       */
                            (0           <<  0) ;   /* Disable LCD Output                               */

    s2410LCD->rLCDCON2   =  (VBPD        << 24) |   /* VBPD          :   1                              */
                            (LINEVAL_TFT << 14) |   /* Virtical Size : 320 - 1                          */
                            (VFPD        <<  6) |   /* VFPD          :   2                              */
                            (VSPW        <<  0) ;   /* VSPW          :   1                              */

    s2410LCD->rLCDCON3   =  (HBPD        << 19) |   /* HBPD          :   6                              */
                            (HOZVAL_TFT  <<  8) |   /* HOZVAL_TFT    : 240 - 1                          */
                            (HFPD        <<  0) ;   /* HFPD          :   2                              */


    s2410LCD->rLCDCON4   =  (MVAL        <<  8) |   /* MVAL          :  13                              */
                            (HSPW        <<  0) ;   /* HSPW          :   4                              */

    s2410LCD->rLCDCON5   =  (0           << 12) |   /* BPP24BL       : LSB valid                        */
                            (1           << 11) |   /* FRM565 MODE   : 5:6:5 Format                     */
                            (0           << 10) |   /* INVVCLK       : VCLK Falling Edge                */
                            (0           <<  9) |   /* INVVLINE      : Inverted Polarity                */
                            (0           <<  8) |   /* INVVFRAME     : Inverted Polarity                */
                            (0           <<  7) |   /* INVVD         : Normal                           */
                            (0           <<  6) |   /* INVVDEN       : Normal                           */
                            (0           <<  5) |   /* INVPWREN      : Normal                           */
                            (0           <<  4) |   /* INVENDLINE    : Normal                           */
                            (0           <<  3) |   /* PWREN         : Disable PWREN                    */
                            (0           <<  2) |   /* ENLEND        : Disable LEND signal              */
                            (0           <<  1) |   /* BSWP          : Swap Disable                     */
                            (1           <<  0) ;   /* HWSWP         : Swap Enable                      */                            

    s2410LCD->rLCDSADDR1 = ((FRAMEBUF_DMA_BASE >> 22)     << 21) |
                           ((M5D(FRAMEBUF_DMA_BASE >> 1)) <<  0);

    s2410LCD->rLCDSADDR2 = M5D((FRAMEBUF_DMA_BASE + (LCD_XSIZE_TFT * LCD_YSIZE_TFT * 2)) >> 1);

    s2410LCD->rLCDSADDR3 = (((LCD_XSIZE_TFT - LCD_XSIZE_TFT) / 1) << 11) | (LCD_XSIZE_TFT / 1);

#if (BOARD_TYPE == 1)
    s2410LCD->rLPCSEL   = 0;//|= 0x3;
#else
    s2410LCD->rLPCSEL   = 0;//|= 0x2;
#endif

    s2410LCD->rTPAL     = 0x0;
    s2410LCD->rLCDCON1 |= 1;

	memcpy((void *)FRAMEBUF_BASE, ScreenBitmap, ARRAY_SIZE_TFT_16BIT);
//    rle_express(ScreenBitmap, (unsigned short *)FRAMEBUF_BASE, 0x8a8c / 2);

}


static void OEMInitInterrupts(void)
{
	volatile INTreg *s2410INT = (INTreg *)INT_BASE;
	volatile IOPreg *s2410IOP = (IOPreg *)IOP_BASE;

    //RETAILMSG(1, (TEXT("Clear pending interrupts...\r\n")));

	// Configure EINT9 for CS8900 interrupt.
	//
	s2410IOP->rGPGCON  = (s2410IOP->rGPGCON  & ~(0x3 << 0x2)) | (0x2 << 0x2);		// GPG1 == EINT9.
	s2410IOP->rGPGUP   = (s2410IOP->rGPGUP   |  (0x1 << 0x1));						// Disable pull-up.
	s2410IOP->rEXTINT1 = (s2410IOP->rEXTINT1 & ~(0xf << 0x4)) | (0x1 << 0x4);		// Level-high triggered.

	// Configure EINT8 for PD6710 interrupt.
	//
	s2410IOP->rGPGCON  = (s2410IOP->rGPGCON  & ~(0x3 << 0x0)) | (0x2 << 0x0);		// GPG0 == EINT8.
	s2410IOP->rGPGUP   = (s2410IOP->rGPGUP   |  (0x1 << 0x0));						// Disable pull-up.
	s2410IOP->rEXTINT1 = (s2410IOP->rEXTINT1 & ~(0xf << 0x0)) | (0x1 << 0x0);		// Level-high triggered.

	// Mask and clear all peripheral interrupts (these come through a second-level "GPIO" interrupt register).
	//
	s2410IOP->rEINTMASK = BIT_ALLMSK;	// Mask all EINT interrupts.
	s2410IOP->rEINTPEND = BIT_ALLMSK;	// Clear pending EINT interrupts.

	// Mask and clear all interrupts.
	//
    s2410INT->rINTMSK = BIT_ALLMSK;			// Mask all interrupts (reset value).
	s2410INT->rINTMSK &= ~BIT_BAT_FLT;
    s2410INT->rSRCPND = BIT_ALLMSK;			// Clear pending interrupts.
    s2410INT->rINTPND = s2410INT->rINTPND;	// S3C2410X developer notice (page 4) warns against writing a 1 to any
											//  0 bit field in the INTPND register.  Instead we'll write the INTPND value itself.
    
}

/*
static void OEMInitInterrupts(void)
{
	volatile INTreg *s2410INT = (INTreg *)INT_BASE;
	volatile IOPreg *s2410IOP = (IOPreg *)IOP_BASE;

    //RETAILMSG(1, (TEXT("Clear pending interrupts...\r\n")));

	s2410INT->rSUBSRCPND = BIT_SUB_ALLMSK;
	s2410INT->rINTSUBMSK = BIT_SUB_ALLMSK;

	s2410IOP->rEINTMASK = 0xffffff;
	s2410IOP->rEINTPEND = 0xffffff;

    s2410INT->rSRCPND = BIT_ALLMSK;     // Clear pending bit
    s2410INT->rINTPND = BIT_ALLMSK;

    s2410INT->rINTMSK = BIT_ALLMSK;			// Mask all interrupts (reset value).
	s2410INT->rINTMSK &= ~BIT_BAT_FLT;
    s2410INT->rSRCPND = BIT_ALLMSK;			// Clear pending interrupts.
    s2410INT->rINTMSK &= ~(BIT_TIMER4);    
    s2410INT->rINTPND = s2410INT->rINTPND;	
    
}
*/

/*
static void OEMInitInterrupts(void)
{
	volatile INTreg *s2410INT = (INTreg *)INT_BASE;
	volatile IOPreg *s2410IOP = (IOPreg *)IOP_BASE;

	// Configure EINT9 for CS8900 interrupt.
	//
	s2410IOP->rGPGCON  = (s2410IOP->rGPGCON  & ~(0x3 << 0x2)) | (0x2 << 0x2);		// GPG1 == EINT9.
	s2410IOP->rGPGUP   = (s2410IOP->rGPGUP   |  (0x1 << 0x1));						// Disable pull-up.
	s2410IOP->rEXTINT1 = (s2410IOP->rEXTINT1 & ~(0xf << 0x4)) | (0x1 << 0x4);		// Level-high triggered.

	// Configure EINT8 for PD6710 interrupt.
	//
	s2410IOP->rGPGCON  = (s2410IOP->rGPGCON  & ~(0x3 << 0x0)) | (0x2 << 0x0);		// GPG0 == EINT8.
	s2410IOP->rGPGUP   = (s2410IOP->rGPGUP   |  (0x1 << 0x0));						// Disable pull-up.
	s2410IOP->rEXTINT1 = (s2410IOP->rEXTINT1 & ~(0xf << 0x0)) | (0x1 << 0x0);		// Level-high triggered.

	// Mask and clear all peripheral interrupts (these come through a second-level "GPIO" interrupt register).
	//
	s2410IOP->rEINTMASK = BIT_ALLMSK;	// Mask all EINT interrupts.
	s2410IOP->rEINTPEND = BIT_ALLMSK;	// Clear pending EINT interrupts.

	// Mask and clear all interrupts.
	//
    s2410INT->rINTMSK = BIT_ALLMSK;			// Mask all interrupts (reset value).
	s2410INT->rINTMSK &= ~BIT_BAT_FLT;
    s2410INT->rSRCPND = BIT_ALLMSK;			// Clear pending interrupts.
    s2410INT->rINTPND = s2410INT->rINTPND;	// S3C2410X developer notice (page 4) warns against writing a 1 to any
											//  0 bit field in the INTPND register.  Instead we'll write the INTPND value itself.
}
*/

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
777午夜精品免费视频| 亚洲柠檬福利资源导航| 中文字幕免费观看一区| 亚洲国产三级在线| 国产成人亚洲综合色影视| 精品视频1区2区| 中文字幕第一区二区| 肉色丝袜一区二区| 波多野结衣中文一区| 91精品国产综合久久小美女| 亚洲天堂中文字幕| 九色porny丨国产精品| 欧美色男人天堂| 1区2区3区国产精品| 精品亚洲成av人在线观看| 欧美日韩在线观看一区二区| 中文字幕在线一区免费| 国产主播一区二区| 制服.丝袜.亚洲.另类.中文| 一区二区三区四区在线播放| 国产成人免费9x9x人网站视频| 在线不卡中文字幕| 亚洲一区二区三区四区的| 成人动漫一区二区| 欧美精品一区二| 蜜桃视频在线一区| 欧美精品久久久久久久多人混战 | 亚洲乱码中文字幕| 国产白丝精品91爽爽久久| 欧美sm美女调教| 蜜桃一区二区三区在线| 91麻豆精品国产91久久久使用方法 | 国产精品香蕉一区二区三区| 日韩免费电影一区| 三级影片在线观看欧美日韩一区二区| 91香蕉国产在线观看软件| 国产精品理论在线观看| 成人性生交大合| 中文字幕成人网| a级高清视频欧美日韩| 日本一区二区在线不卡| 国产99久久精品| 国产精品久久久久国产精品日日| 成人爽a毛片一区二区免费| 久久久精品免费免费| 成人综合激情网| 亚洲婷婷国产精品电影人久久| 一本久久综合亚洲鲁鲁五月天| 亚洲天天做日日做天天谢日日欢| 色综合久久天天综合网| 亚洲国产毛片aaaaa无费看| 欧美精品在线观看一区二区| 蜜臀av一级做a爰片久久| 欧美大片国产精品| 粉嫩蜜臀av国产精品网站| 亚洲天天做日日做天天谢日日欢 | 欧美一个色资源| 韩国女主播成人在线| 久久精品亚洲国产奇米99| 成人免费视频一区| 一区二区三区鲁丝不卡| 91精品国产91久久久久久一区二区 | 国产a视频精品免费观看| 日韩伦理电影网| 欧美电影在线免费观看| 国产伦精品一区二区三区在线观看 | 蜜臀a∨国产成人精品| 国产欧美精品区一区二区三区| 99久久精品费精品国产一区二区| 亚洲成av人影院在线观看网| 精品粉嫩aⅴ一区二区三区四区| heyzo一本久久综合| 日韩电影免费在线| 国产亚洲精品中文字幕| 在线国产电影不卡| 国产在线不卡一区| 一区二区三区在线影院| 欧美成人激情免费网| 91欧美激情一区二区三区成人| 秋霞影院一区二区| 国产精品成人网| 久久一留热品黄| 777久久久精品| 成人app网站| 久久丁香综合五月国产三级网站| 国产精品乱码人人做人人爱 | 欧美高清在线精品一区| 在线播放91灌醉迷j高跟美女| 国精品**一区二区三区在线蜜桃| 精品一区二区免费| 在线精品视频一区二区三四| **欧美大码日韩| 在线免费观看日本一区| 国产自产高清不卡| 亚洲卡通欧美制服中文| 久久综合久久久久88| 欧美日韩专区在线| 成人av午夜电影| 精品一区二区三区香蕉蜜桃| 亚洲午夜激情网页| 1024精品合集| 久久精品免费在线观看| 欧美一区二区免费| 91亚洲午夜精品久久久久久| 成人一区二区三区在线观看| 琪琪久久久久日韩精品| 亚洲一区二区免费视频| 亚洲精品久久久久久国产精华液| 国产女人aaa级久久久级 | 中文字幕国产精品一区二区| 精品欧美黑人一区二区三区| 欧洲一区二区三区在线| av不卡在线播放| 成人18精品视频| 91一区二区在线观看| 成人福利视频网站| 成人免费高清在线观看| 国产成人8x视频一区二区| 狠狠网亚洲精品| 国产一区二三区| 国产麻豆91精品| 播五月开心婷婷综合| 成人黄色小视频在线观看| 国产成人综合精品三级| 国产91丝袜在线播放0| 国产盗摄一区二区三区| 风间由美一区二区av101| 成人性生交大片| 色偷偷久久人人79超碰人人澡 | 欧美日本国产一区| 91精品国产色综合久久不卡电影| 91精品婷婷国产综合久久性色| 日韩一区二区三| 欧美精品一区二区精品网| 国产欧美一区二区精品性色超碰 | 91在线高清观看| 欧美亚洲尤物久久| 91精品欧美久久久久久动漫| 精品区一区二区| 国产精品久久久久久久久久免费看 | 日本不卡高清视频| 久草热8精品视频在线观看| 久久精品亚洲国产奇米99| 久久久高清一区二区三区| 国产欧美精品一区aⅴ影院| 欧美三级电影一区| 91麻豆精品国产91久久久更新时间| 91精品国产综合久久久久久漫画 | 久久久精品欧美丰满| 成人欧美一区二区三区视频网页| 亚洲天堂2014| 午夜亚洲福利老司机| 美女精品一区二区| 狠狠色丁香婷婷综合| 国产.欧美.日韩| 色婷婷av一区二区| 日韩一区二区三区三四区视频在线观看| 91.xcao| 久久久亚洲精品一区二区三区| 国产肉丝袜一区二区| 亚洲少妇30p| 亚洲成a人片在线观看中文| 麻豆高清免费国产一区| 国产成人99久久亚洲综合精品| 99re在线视频这里只有精品| 欧美日韩在线不卡| 欧美成人性战久久| 亚洲天堂成人网| 日韩电影在线观看一区| 成人午夜大片免费观看| 在线观看一区日韩| 久久久精品tv| 偷拍一区二区三区| 国产成人免费在线视频| 欧美自拍偷拍一区| 久久影视一区二区| 男人操女人的视频在线观看欧美| 国产精品一色哟哟哟| 在线观看成人免费视频| 久久综合色综合88| 日本va欧美va瓶| 97se亚洲国产综合自在线不卡| 日韩免费看网站| 国产精品色一区二区三区| 美日韩一区二区三区| 91亚洲男人天堂| 欧美xxxx老人做受| 国产欧美精品一区aⅴ影院| 国产呦精品一区二区三区网站| 欧美亚洲国产一区二区三区va | 在线欧美一区二区| 国产精品久久午夜| 另类欧美日韩国产在线| 色噜噜狠狠成人网p站| 国产婷婷色一区二区三区四区| 午夜日韩在线电影| 色8久久精品久久久久久蜜| 久久久91精品国产一区二区三区| 成人免费在线播放视频| 99精品视频免费在线观看|