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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? main.c.svn-base

?? 這是三星的2443的wince的bootloader
?? SVN-BASE
?? 第 1 頁 / 共 5 頁
字號:
	Write_LDI_LTV350(0x13,0x1f0f);
	Write_LDI_LTV350(0x14,0x0707);
	Write_LDI_LTV350(0x15,0x0307);
	Write_LDI_LTV350(0x16,0x0707);
	Write_LDI_LTV350(0x17,0x0000);
	Write_LDI_LTV350(0x18,0x0004);
	Write_LDI_LTV350(0x19,0x0000);
#endif
	
	
	// delay about 2 frames
	delayLoop(LCD_DELAY_1MS*50);
	

	///////////////////////////////////////////////////////////////////
	// Display On Sequence
	///////////////////////////////////////////////////////////////////
#if LTV350
	Write_LDI_LTV350(0x09,0x4a55);
	Write_LDI_LTV350(0x0a,0x2000);	
#else
	Write_LDI_LTV350(0x09,0x4a55);
	Write_LDI_LTV350(0x05,0x5003);	

#endif
 
}

static void InitDisplay(void)
{
	UINT8 pagewidth_in_byte=0,offsize_in_byte=0;	
	volatile S3C2443_IOPORT_REG *s2443IOP = (S3C2443_IOPORT_REG *)OALPAtoVA(S3C2443_BASE_REG_PA_IOPORT, FALSE);
	volatile S3C2443_LCD_REG    *s2443LCD = (S3C2443_LCD_REG *)OALPAtoVA(S3C2443_BASE_REG_PA_LCD, FALSE);
	UINT8 clkval=0;
	UINT16 hcync_cnt,vclk_cnt;
	UINT16 lcd_horizon_value,lcd_line_value;
	UINT8 lcd_vbpd,lcd_vfpd,lcd_vspw,lcd_hbpd,lcd_hfpd,lcd_hspw;
	UINT8 lcd_frame_rate;	
	UINT16 * pFB = NULL;
//	int i,j;
	
	
	// Set up the LCD controller registers to display a power-on bitmap image.
	//
	s2443IOP->MISCCR |= (1<<28);  // select LCD controller for TFT lcd controller
	
	
	//s2443IOP->GPCUDP     = 0xFFFFFFFF;
	s2443IOP->GPCCON    = 0xAAAAAAAA;
	                            
	//s2443IOP->GPDUDP     = 0xFFFFFFFF;
	s2443IOP->GPDCON    = 0xAAAAAAAA; 
	
	
	#if 1 // tempory
	s2443IOP->GPBCON = (s2443IOP->GPBCON & ~(3<<8)) | (1<<8); // Backlight Pwm control
	s2443IOP->GPBDAT  |= (1<<8);
	#else // control the backlight using pwm timer output
	s2443IOP->GPBCON = (s2443IOP->GPBCON & ~(3<<8)) | (2<<8); // set Timer out
	#endif
	
	// LCD _nRESET control
	s2443IOP->GPBCON = (s2443IOP->GPBCON & ~(3<<2)) |(1<<2);
	s2443IOP->GPBDAT |= (1<<1);	
	
	switch(LCD_MODULE_TYPE)
	{
		/*
		case LCD_MODULE_LTS222:
			lcd_horizon_value = LTS222_HOZVAL;
			lcd_line_value = LTS222_LINEVAL;
			lcd_vbpd = LTS222_VBPD;
			lcd_vfpd = LTS222_VFPD;
			lcd_vspw = LTS222_VSPW;
			lcd_hbpd = LTS222_HBPD;
			lcd_hfpd = LTS222_HFPD;
			lcd_hspw = LTS222_HSPW;
			lcd_frame_rate = LTS222_FRAME_RATE;
			InitLDI_LTS222();
			break;
		*/		
		case LCD_MODULE_LTV350:
			lcd_horizon_value = LTV350_HOZVAL;
			lcd_line_value = LTV350_LINEVAL;
			lcd_vbpd = LTV350_VBPD;
			lcd_vfpd = LTV350_VFPD;
			lcd_vspw = LTV350_VSPW;
			lcd_hbpd = LTV350_HBPD;
			lcd_hfpd = LTV350_HFPD;
			lcd_hspw = LTV350_HSPW;
			lcd_frame_rate = LTV350_FRAME_RATE;
			InitLDI_LTV350();
			break;
			
		default:
			break;
	}	

	pagewidth_in_byte = lcd_horizon_value/8*16;		
	offsize_in_byte = 0;
	
	//LcdWindowOnOff(LCD_WIN_ALL,LCD_OFF);	
	s2443LCD->WINCON0 &= ~0x01;
	s2443LCD->WINCON1 &= ~0x01;
	
	//LcdEnvidOnOff(LCD_OFF);
	s2443LCD->VIDCON0 &= (~3); // ENVID Off using Per Frame method

	//Basic_Display_Setting(window,WINCONx_16BPP_565,lcd_horizon_value,0);
	
	s2443LCD->VIDCON0 = VIDCON0_S_RGB_IF|VIDCON0_S_RGB_PAR|VIDCON0_S_VCLK_GATING_OFF|VIDCON0_S_CLKDIR_DIVIDED|VIDCON0_S_CLKSEL_HCLK;
	
	hcync_cnt = (lcd_vbpd+lcd_vfpd+lcd_vspw+lcd_line_value);
	vclk_cnt = (lcd_hbpd+lcd_hfpd+lcd_hspw+lcd_horizon_value);
	clkval = (UINT8)(((float)S3C2443_HCLK/(float)(hcync_cnt*vclk_cnt*lcd_frame_rate*2))+0.5)-1;	
	
	s2443LCD->VIDCON0 |= (clkval <<VIDCON0_CLKVAL_F_SHIFT);

	//check point
	s2443LCD->VIDCON1 = VIDCON1_S_VCLK_RISE_EDGE_FETCH|VIDCON1_S_HSYNC_INVERTED|VIDCON1_S_VSYNC_INVERTED|VIDCON1_S_VDEN_INVERTED;
	
	s2443LCD->VIDTCON0=((lcd_vbpd-1)<<VIDTCON0_BPD_S)|((lcd_vfpd-1)<<VIDTCON0_FPD_S)|(lcd_vspw-1);
	s2443LCD->VIDTCON1=((lcd_hbpd-1)<<VIDTCON0_BPD_S)|((lcd_hfpd-1)<<VIDTCON0_FPD_S)|(lcd_hspw-1);
	s2443LCD->VIDTCON2 = ((lcd_line_value-1)<<VIDTCON2_LINEVAL_S)|(lcd_horizon_value-1);
	
	s2443LCD->WINCON0 = (0<<WINCON_SWAP_S)|(WINCONx_4WORD_BURST<<WINCON_BURSTLEN_S)|(WINCONx_16BPP_565<<WINCON_BPP_S); // 4word burst, 16bpp, 
	s2443LCD->VIDOSD0A = (0<<VIDOSDxAB_HORIZON_X_S)|(0);
	s2443LCD->VIDOSD0B = ((lcd_horizon_value-1)<<VIDOSDxAB_HORIZON_X_S)|(lcd_line_value-1);	

	s2443LCD->VIDW00ADD0B0 = (UINT32)IMAGE_FRAMEBUFFER_DMA_BASE;		
			// buffer end address
	s2443LCD->VIDW00ADD1B0 = (UINT32)IMAGE_FRAMEBUFFER_DMA_BASE + (LCD_XSIZE_TFT*LCD_YSIZE_TFT*2);
			// buffer size 
	s2443LCD->VIDW00ADD2B0 = (offsize_in_byte<<VIDWxADD2_OFFSET_SIZE_S)|(LCD_XSIZE_TFT*2);
	
	
	s2443LCD->WIN0MAP = 0;
	
	s2443LCD->WINCON0 |= (1<<WINCON_SWAP_S);
		
	s2443LCD->WINCON0 |= 0x1;
	s2443LCD->VIDCON0 |= 0x3;  

   
        memcpy((void *)IMAGE_FRAMEBUFFER_UA_BASE, prayer16bpp, LCD_ARRAY_SIZE_TFT_16BIT);
 
      
        
}

#endif

/*
    @func   void | SetIP | Accepts IP address from user input.
    @rdesc  N/A.
    @comm    
    @xref   
*/

static void SetIP(PBOOT_CFG pBootCfg)
{
    CHAR   szDottedD[16];   // The string used to collect the dotted decimal IP address.
    USHORT cwNumChars = 0;
    USHORT InChar = 0;

    EdbgOutputDebugString("\r\nEnter new IP address: ");

    while(!((InChar == 0x0d) || (InChar == 0x0a)))
    {
        InChar = OEMReadDebugByte();
        if (InChar != OEM_DEBUG_COM_ERROR && InChar != OEM_DEBUG_READ_NODATA) 
        {
            // If it's a number or a period, add it to the string.
            //
            if (InChar == '.' || (InChar >= '0' && InChar <= '9')) 
            {
                if (cwNumChars < 16) 
                {
                    szDottedD[cwNumChars++] = (char)InChar;
                    OEMWriteDebugByte((BYTE)InChar);
                }
            }
            // If it's a backspace, back up.
            //
            else if (InChar == 8) 
            {
                if (cwNumChars > 0) 
                {
                    cwNumChars--;
                    OEMWriteDebugByte((BYTE)InChar);
                }
            }
        }
    }

    // If it's a carriage return with an empty string, don't change anything.
    //
    if (cwNumChars) 
    {
        szDottedD[cwNumChars] = '\0';
        pBootCfg->EdbgAddr.dwIP = inet_addr(szDottedD);
    }
}


/*
    @func   void | SetMask | Accepts subnet mask from user input.
    @rdesc  N/A.
    @comm    
    @xref   
*/
static void SetMask(PBOOT_CFG pBootCfg)
{
    CHAR szDottedD[16]; // The string used to collect the dotted masks.
    USHORT cwNumChars = 0;
    USHORT InChar = 0;

    EdbgOutputDebugString("\r\nEnter new subnet mask: ");

    while(!((InChar == 0x0d) || (InChar == 0x0a)))
    {
        InChar = OEMReadDebugByte();
        if (InChar != OEM_DEBUG_COM_ERROR && InChar != OEM_DEBUG_READ_NODATA) 
        {
            // If it's a number or a period, add it to the string.
            //
            if (InChar == '.' || (InChar >= '0' && InChar <= '9')) 
            {
                if (cwNumChars < 16) 
                {
                    szDottedD[cwNumChars++] = (char)InChar;
                    OEMWriteDebugByte((BYTE)InChar);
                }
            }
            // If it's a backspace, back up.
            //
            else if (InChar == 8) 
            {
                if (cwNumChars > 0) 
                {
                    cwNumChars--;
                    OEMWriteDebugByte((BYTE)InChar);
                }
            }
        }
    }

    // If it's a carriage return with an empty string, don't change anything.
    //
    if (cwNumChars) 
    {
        szDottedD[cwNumChars] = '\0';
        pBootCfg->SubnetMask = inet_addr(szDottedD);
    }
}


/*
    @func   void | SetDelay | Accepts an autoboot delay value from user input.
    @rdesc  N/A.
    @comm    
    @xref   
*/
static void SetDelay(PBOOT_CFG pBootCfg)
{
    CHAR szCount[16];
    USHORT cwNumChars = 0;
    USHORT InChar = 0;

    EdbgOutputDebugString("\r\nEnter maximum number of seconds to delay [1-255]: ");

    while(!((InChar == 0x0d) || (InChar == 0x0a)))
    {
        InChar = OEMReadDebugByte();
        if (InChar != OEM_DEBUG_COM_ERROR && InChar != OEM_DEBUG_READ_NODATA) 
        {
            // If it's a number or a period, add it to the string.
            //
            if ((InChar >= '0' && InChar <= '9')) 
            {
                if (cwNumChars < 16) 
                {
                    szCount[cwNumChars++] = (char)InChar;
                    OEMWriteDebugByte((BYTE)InChar);
                }
            }
            // If it's a backspace, back up.
            //
            else if (InChar == 8) 
            {
                if (cwNumChars > 0) 
                {
                    cwNumChars--;
                    OEMWriteDebugByte((BYTE)InChar);
                }
            }
        }
    }

    // If it's a carriage return with an empty string, don't change anything.
    //
    if (cwNumChars) 
    {
        szCount[cwNumChars] = '\0';
        pBootCfg->BootDelay = atoi(szCount);
        if (pBootCfg->BootDelay > 255)
        {
            pBootCfg->BootDelay = 255;
        } 
        else if (pBootCfg->BootDelay < 1)
        {
            pBootCfg->BootDelay = 1;
        }
    }
}


static ULONG mystrtoul(PUCHAR pStr, UCHAR nBase)
{
    UCHAR nPos=0;
    BYTE c;
    ULONG nVal = 0;
    UCHAR nCnt=0;
    ULONG n=0;

    // fulllibc doesn't implement isctype or iswctype, which are needed by
    // strtoul, rather than including coredll code, here's our own simple strtoul.

    if (pStr == NULL)
        return(0);

    for (nPos=0 ; nPos < strlen(pStr) ; nPos++)
    {
        c = tolower(*(pStr + strlen(pStr) - 1 - nPos));
        if (c >= '0' && c <= '9')
            c -= '0';
        else if (c >= 'a' && c <= 'f')
        {
            c -= 'a';
            c  = (0xa + c);
        }

        for (nCnt = 0, n = 1 ; nCnt < nPos ; nCnt++)
        {
            n *= nBase;
        }
        nVal += (n * c);
    }

    return(nVal);
}


static void CvtMAC(USHORT MacAddr[3], char *pszDottedD ) 
{
    DWORD cBytes;
    char *pszLastNum;
    int atoi (const char *s);
    int i=0;    
    BYTE *p = (BYTE *)MacAddr;

    // Replace the dots with NULL terminators
    pszLastNum = pszDottedD;
    for(cBytes = 0 ; cBytes < 6 ; cBytes++)
    {
        while(*pszDottedD != '.' && *pszDottedD != '\0')
        {
            pszDottedD++;
        }
        if (pszDottedD == '\0' && cBytes != 5)
        {
            // zero out the rest of MAC address
            while(i++ < 6)
            {
                *p++ = 0;
            }
            break;
        }
        *pszDottedD = '\0';
        *p++ = (BYTE)(mystrtoul(pszLastNum, 16) & 0xFF);
        i++;
        pszLastNum = ++pszDottedD;
    }
}


static void SetCS8900MACAddress(PBOOT_CFG pBootCfg)
{
    CHAR szDottedD[24];
    USHORT cwNumChars = 0;
    USHORT InChar = 0;

    memset(szDottedD, '0', 24);

    EdbgOutputDebugString ( "\r\nEnter new MAC address in hexadecimal (hh.hh.hh.hh.hh.hh): ");

    while(!((InChar == 0x0d) || (InChar == 0x0a)))
    {
        InChar = OEMReadDebugByte();
        InChar = tolower(InChar);
        if (InChar != OEM_DEBUG_COM_ERROR && InChar != OEM_DEBUG_READ_NODATA) 
        {
            // If it's a hex number or a period, add it to the string.
            //
            if (InChar == '.' || (InChar >= '0' && InChar <= '9') || (InChar >= 'a' && InChar <= 'f')) 
            {
                if (cwNumChars < 17) 
                {
                    szDottedD[cwNumChars++] = (char)InChar;
                    OEMWriteDebugByte((BYTE)InChar);
                }
            }
            else if (InChar == 8)       // If it's a backspace, back up.
            {
                if (cwNumChars > 0) 

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
卡一卡二国产精品| 成人永久aaa| 久久精品亚洲精品国产欧美kt∨ | 在线观看av一区二区| 奇米综合一区二区三区精品视频| 国产精品蜜臀在线观看| 4438x成人网最大色成网站| 国产电影精品久久禁18| 日本欧美加勒比视频| 中文字幕日韩精品一区| 26uuu国产在线精品一区二区| 欧洲一区二区三区在线| 99视频国产精品| 国产在线视频一区二区三区| 午夜精品免费在线观看| 亚洲欧美另类图片小说| 国产清纯在线一区二区www| 欧美一二三区精品| 欧美日韩一级视频| 99久久久精品| 国产激情91久久精品导航| 日本欧美一区二区三区乱码| 亚洲成人7777| 亚洲精品伦理在线| 国产精品久久久久久久久免费桃花| 69成人精品免费视频| 色94色欧美sute亚洲线路一ni| 风间由美一区二区av101| 国内精品在线播放| 久久99热狠狠色一区二区| 石原莉奈在线亚洲三区| 亚洲精品视频免费看| 最新高清无码专区| 亚洲国产精华液网站w| 久久久久久久久久久久久女国产乱| 欧美一区二区三区四区高清 | 91精品国产综合久久精品app| 欧美在线视频不卡| 在线视频一区二区免费| 91一区一区三区| 99re热这里只有精品视频| 国产69精品一区二区亚洲孕妇| 国产乱一区二区| 国产在线乱码一区二区三区| 国产综合久久久久久久久久久久| 久久精品噜噜噜成人av农村| 久久精品国产一区二区| 裸体一区二区三区| 麻豆国产一区二区| 精品一区二区免费看| 免费成人av在线| 蜜乳av一区二区三区| 麻豆高清免费国产一区| 久久精工是国产品牌吗| 美脚の诱脚舐め脚责91| 国产资源精品在线观看| 国产精品一区二区黑丝| 成人a区在线观看| 91色porny蝌蚪| 在线观看一区二区精品视频| 欧美日韩精品电影| 精品少妇一区二区三区日产乱码 | 国产aⅴ精品一区二区三区色成熟| 国产成人免费视频精品含羞草妖精| 国产成人精品影院| 成人av免费网站| 91啪亚洲精品| 欧美日韩精品福利| 欧美成人aa大片| 中文字幕欧美激情| 亚洲午夜久久久久久久久电影网 | 亚洲蜜桃精久久久久久久| 亚洲精选免费视频| 亚洲伊人伊色伊影伊综合网| 亚欧色一区w666天堂| 精品一区二区精品| 丁香六月综合激情| 91久久线看在观草草青青| 欧美一区二区黄色| 国产视频一区在线观看| 亚洲靠逼com| 看电视剧不卡顿的网站| 99久久久久免费精品国产| 欧美福利视频一区| 国产婷婷色一区二区三区在线| 夜夜精品视频一区二区| 日本视频一区二区| 成人综合婷婷国产精品久久蜜臀 | 亚洲女同ⅹxx女同tv| 五月天久久比比资源色| 国模冰冰炮一区二区| 91麻豆成人久久精品二区三区| 在线91免费看| 国产精品超碰97尤物18| 日本不卡视频在线| 97se亚洲国产综合自在线观| 日韩免费观看高清完整版| 成人欧美一区二区三区黑人麻豆 | 日本一区二区成人| 亚洲国产一区二区视频| 国产精品88888| 欧美肥大bbwbbw高潮| 亚洲三级理论片| 久久99精品国产91久久来源| 一本一本大道香蕉久在线精品| 精品国产乱码91久久久久久网站| 亚洲视频免费在线观看| 久久国产综合精品| 在线观看视频欧美| 欧美激情一区二区三区不卡 | 大白屁股一区二区视频| 欧美精品三级日韩久久| 亚洲男人的天堂av| 高清久久久久久| 日韩一区二区在线播放| 一区二区三区四区高清精品免费观看 | 午夜电影久久久| 色先锋aa成人| 中文子幕无线码一区tr| 久久国产免费看| 欧美久久久一区| 一区二区国产盗摄色噜噜| 不卡在线观看av| 日本一区二区三区四区 | 国产成人免费在线观看不卡| 精品久久久网站| 日本中文在线一区| 欧美视频自拍偷拍| 夜夜嗨av一区二区三区网页| www.亚洲人| 国产精品色哟哟网站| 国产精品99精品久久免费| 日韩女优制服丝袜电影| 免费观看在线综合色| 777亚洲妇女| 五月婷婷欧美视频| 在线成人免费观看| 亚洲风情在线资源站| 欧美色手机在线观看| 亚洲一区二区三区四区在线观看 | 欧美一区二区三区在线观看视频 | 国产一区二区视频在线| 精品国产三级电影在线观看| 久久超碰97人人做人人爱| 日韩区在线观看| 麻豆精品一区二区综合av| 日韩免费视频一区| 国内外成人在线| 国产亚洲自拍一区| 成人性视频免费网站| 国产精品视频九色porn| 色综合久久99| 亚洲gay无套男同| 在线成人午夜影院| 久久精品72免费观看| 国产午夜精品一区二区| 99久久综合99久久综合网站| 一区二区三区视频在线观看| 在线精品视频小说1| 亚洲成av人综合在线观看| 3d成人动漫网站| 激情av综合网| 国产精品福利电影一区二区三区四区| 91啦中文在线观看| 亚洲va中文字幕| 精品盗摄一区二区三区| 成人福利视频网站| 亚洲最色的网站| 欧美一卡2卡3卡4卡| 国产精品中文字幕欧美| 亚洲三级久久久| 欧美一区二区在线视频| 国产一区二区剧情av在线| 国产精品超碰97尤物18| 欧美美女一区二区三区| 国产精品自拍av| 亚洲精品亚洲人成人网在线播放| 日韩视频在线你懂得| 成人动漫一区二区在线| 亚洲成a天堂v人片| 久久久久国产精品麻豆ai换脸| 99久免费精品视频在线观看| 日本亚洲免费观看| 国产欧美日韩视频在线观看| 欧洲色大大久久| 国产在线精品一区二区不卡了| 综合电影一区二区三区 | 亚洲乱码日产精品bd| 日韩三级在线观看| 成年人网站91| 蜜桃视频免费观看一区| 亚洲精品国产精华液| 久久久久久久久久久久电影| 欧美午夜精品理论片a级按摩| 国产一区二区三区久久久| 自拍偷拍亚洲欧美日韩| 精品精品国产高清一毛片一天堂| 色婷婷久久久久swag精品| 紧缚捆绑精品一区二区| 亚洲一区二区三区中文字幕在线|