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

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

?? 2410lib.c

?? s3c2410
?? C
?? 第 1 頁 / 共 2 頁
字號:
    char str[30];
    char *pString = str;
    int base     = 10;
    int minus    = 0;
    int nResult   = 0;
    int lastIndex;    
    int i;
    
    uart_getstring(pString);
    
    if(pString[0]=='-')
    {
        minus = 1;
        pString++;
    }
    
    if(pString[0]=='0' && (pString[1]=='x' || pString[1]=='X'))
    {
        base    = 16;
        pString += 2;
    }
    
    lastIndex = strlen(pString) - 1;
    
    if(lastIndex<0)
        return -1;
    
    if(pString[lastIndex]=='h' || pString[lastIndex]=='H' )
    {
        base = 16;
        pString[lastIndex] = 0;
        lastIndex--;
    }

    if(base==10)
    {
        nResult = atoi(pString);
        nResult = minus ? (-1*nResult):nResult;
    }
    else
    {
        for(i=0;i<=lastIndex;i++)
        {
            if(isalpha(pString[i]))
            {
                if(isupper(pString[i]))
                    nResult = (nResult<<4) + pString[i] - 'A' + 10;
                else
                    nResult = (nResult<<4) + pString[i] - 'a' + 10;
            }
            else
                nResult = (nResult<<4) + pString[i] - '0';
        }
        nResult = minus ? (-1*nResult):nResult;
    }
    return nResult;
}

/*********************************************************************************************
* name:		uart_sendbyte
* func:		Send one byte to uart channel
* para:		nData	-- 	input, byte
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void uart_sendbyte(int nData)
{
    if(f_nWhichUart==0)
    {
        if(nData=='\n')
        {
            while(!(rUTRSTAT0 & 0x2));
            delay(10);					//because the slow response of hyper_terminal 
            WrUTXH0('\r');
        }
        while(!(rUTRSTAT0 & 0x2));		//Wait until THR is empty.
        delay(10);
        WrUTXH0(nData);
    }
    else if(f_nWhichUart==1)
    {
        if(nData=='\n')
        {
            while(!(rUTRSTAT1 & 0x2));
            delay(10);					//because the slow response of hyper_terminal 
            rUTXH1 = '\r';
        }
        while(!(rUTRSTAT1 & 0x2));		//Wait until THR is empty.
        delay(10);
        rUTXH1 = nData;
    }   
    else if(f_nWhichUart==2)
    {
        if(nData=='\n')
        {
            while(!(rUTRSTAT2 & 0x2));
            delay(10);					//because the slow response of hyper_terminal 
            rUTXH2 = '\r';
        }
        while(!(rUTRSTAT2 & 0x2));		//Wait until THR is empty.
        delay(10);
        rUTXH2 = nData;
    }       
}               

/*********************************************************************************************
* name:		uart_sendstring
* func:		Send string to uart channel
* para:		pString	-- 	input, string
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void uart_sendstring(char *pString)
{
    while(*pString)
        uart_sendbyte(*pString++);
}

/*********************************************************************************************
* name:		uart_printf
* func:		print format string
* para:		fmt	-- 	input,  
* ret:		none
* modify:
* comment:  If you don't use vsprintf(), the code size is reduced very much.		
*********************************************************************************************/
void uart_printf(char *fmt,...)
{
    va_list ap;
    char pString[256];

    va_start(ap,fmt);
    vsprintf(pString,fmt,ap);
    uart_sendstring(pString);
    va_end(ap);
}

/*********************************************************************************************
* name:		timer_start
* func:		start timer
* para:		nDivider	-- 	input, 0:16us,1:32us 2:64us 3:128us
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void timer_start(int divider)  
{
    rWTCON = ((PCLK/1000000-1)<<8)|(divider<<3); //Watch-dog timer control register
    rWTDAT = 0xffff;							 //Watch-dog timer data register
    rWTCNT = 0xffff;							 //Watch-dog count register

    rWTCON = rWTCON | (1<<5) | ~(1<<2);  		 //May 06, 2002 SOP
}

/*********************************************************************************************
* name:		timer_stop
* func:		stop timer
* para:		none
* ret:			--	int, timer count
* modify:
* comment:		
*********************************************************************************************/
int timer_stop(void)
{
    rWTCON = ((PCLK/1000000-1)<<8);
    return (0xffff - rWTCNT);
}

/*********************************************************************************************
* name:		change_value_MPLL
* func:		change MPLL value
* para:		none
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void change_value_MPLL(int nMdiv,int nPdiv,int nSdiv)
{
    rMPLLCON = (nMdiv<<12) | (nPdiv<<4) | nSdiv;
}

/*********************************************************************************************
* name:		change_clock_divider
* func:		change the clock frequance
* para:		none
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void change_clock_divider(int nHdiv,int nPdiv)
{
     // nHdiv,nPdiv FCLK:HCLK:PCLK
     //     0,0         1:1:1 
     //     0,1         1:1:2 
     //     1,0         1:2:2
     //     1,1         1:2:4
    rCLKDIVN = (nHdiv<<1) | nPdiv;    
    
}

/*********************************************************************************************
* name:		ChangeUPllValue
* func:		change the parameter nMdiv,nPdiv,nSdiv
* para:		none
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void ChangeUPllValue(int nMdiv,int nPdiv,int nSdiv)
{
    rUPLLCON = (nMdiv<<12) | (nPdiv<<4) | nSdiv;
}

/*********************************************************************************************
* name:		delay
* func:		delay time
* para:		nTime -- input, nTime=0: nAdjust the delay function by WatchDog timer.
*						    nTime>0: the number of loop time, 100us resolution.
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void delay(int nTime)
{
      // time=0: adjust the Delay function by WatchDog timer.
      // time>0: the number of loop time
      // resolution of time is 100us.
    int i,adjust=0;
    if(nTime==0)
    {
        nTime   = 200;
        adjust = 1;
        delayLoopCount = 400;
		//PCLK/1M,Watch-dog disable,1/64,interrupt disable,reset disable
        rWTCON = ((PCLK/1000000-1)<<8)|(2<<3); 
        rWTDAT = 0xffff;                             	//for first update
        rWTCNT = 0xffff;                             	//resolution=64us @any PCLK 
        rWTCON = ((PCLK/1000000-1)<<8)|(2<<3)|(1<<5); 	//Watch-dog timer start
    }
    for(;nTime>0;nTime--)
        for(i=0;i<delayLoopCount;i++);
    if(adjust==1)
    {
        rWTCON = ((PCLK/1000000-1)<<8)|(2<<3);   		//Watch-dog timer stop
        i = 0xffff - rWTCNT;                     		//1count->64us, 200*400 cycle runtime = 64*i us
        delayLoopCount = 8000000/(i*64);         		//200*400:64*i=1*x:100 -> x=80000*100/(64*i)   
    }
}

/*********************************************************************************************
* name:		EnableMMU
* func:		Enable the MMU
* para:		none
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void EnableMMU()
{
	unsigned int ctl;

	ctl = ARM_ReadControl();
	ctl |= (1 << 0);
	ARM_WriteControl(ctl);
}

/*********************************************************************************************
* name:		InitMMU
* func:		Initialization the MMU
* para:		pTranslationTable-TranslationTable Address
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void InitMMU(unsigned int *pTranslationTable)
{
	int i;
	// Program the TTB
	ARM_WriteTTB((unsigned int) pTranslationTable);
	// Program the domain access register
	ARM_WriteDomain(0xC0000000); 		// domain 15: access are not checked

	// Reset table entries
	for (i = 0; i < 0x200; ++i)
		pTranslationTable[i] = 0;

	// Program level 1 page table entry
	pTranslationTable[0x0] =
		(0x300 << 20) |  				// Physical Address
		(1 << 10) |      				// Access in supervisor mode
		(15 << 5) |      				// Domain
		1 << 4 |
		0x2;             				// Set as 1 Mbyte section
	pTranslationTable[0x1] =
		(0x301 << 20) |  				// Physical Address
		(1 << 10) |      				// Access in supervisor mode
		(15 << 5) |      				// Domain
		1 << 4 |
		0x2;             				// Set as 1 Mbyte section
	pTranslationTable[0x2] =
		(0x302 << 20) |  				// Physical Address
		(1 << 10) |      				// Access in supervisor mode
		(15 << 5) |      				// Domain
		1 << 4 |
		0x2;             				// Set as 1 Mbyte section
	pTranslationTable[0x3] =
		(0x303 << 20) |  				// Physical Address
		(1 << 10) |      				// Access in supervisor mode
		(15 << 5) |      				// Domain
		1 << 4 |
		0x2;             				// Set as 1 Mbyte section

	for(i = 0x200; i < 0xFFF; ++i)
		pTranslationTable[i] = 
			(i << 20) |  				// Physical Address
			(1 << 10) |      			// Access in supervisor mode
			(15 << 5) |      			// Domain
			1 << 4 |
			0x2;             			// Set as 1 Mbyte section

	EnableMMU();		 				// Enable the MMU
}

/*********************************************************************************************
* name:		__gccmain
* func:		the entry point of gcc library
* para:		none
* ret:		none
* modify:
* comment:		
*********************************************************************************************/
void __gccmain(void)
{
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
一区二区三区中文免费| 成人一区二区三区视频| 天天色综合天天| 成人一级黄色片| 日韩欧美中文字幕制服| ...中文天堂在线一区| 国内精品伊人久久久久av影院| 99久久婷婷国产精品综合| 26uuu亚洲婷婷狠狠天堂| 亚洲一级不卡视频| 91在线看国产| 国产精品色哟哟| 国模套图日韩精品一区二区| 欧美色老头old∨ideo| 中文字幕一区二区三区四区| 免费在线一区观看| 欧美日韩国产高清一区二区三区| 亚洲人吸女人奶水| 波多野结衣一区二区三区 | 国产欧美日韩另类一区| 日韩国产成人精品| 欧美综合天天夜夜久久| 亚洲免费观看视频| 91啪亚洲精品| 亚洲人精品一区| 99re6这里只有精品视频在线观看| 久久一区二区三区国产精品| 久久不见久久见免费视频7| 欧美一区二区三区小说| 热久久国产精品| 日韩一区二区三区视频在线| 青青青爽久久午夜综合久久午夜| 欧美群妇大交群中文字幕| 午夜精品久久久久久久久久久 | 国产一区欧美二区| 日韩久久精品一区| 国产麻豆视频一区| 欧美国产精品劲爆| 91在线看国产| 香蕉加勒比综合久久| 在线观看91精品国产麻豆| 天堂在线亚洲视频| 欧美一区二区三区在线电影| 精品无码三级在线观看视频 | 久久www免费人成看片高清| 日韩一级精品视频在线观看| 久久福利资源站| 国产精品视频一二三区| 99视频一区二区三区| 亚洲综合激情另类小说区| 精品视频一区三区九区| 日韩电影在线观看电影| 久久蜜桃av一区二区天堂| 成人综合在线视频| 亚洲国产中文字幕| 日韩精品专区在线影院观看| 国产精品99久久久| 亚洲精品国产一区二区精华液 | 中文字幕的久久| 色综合久久综合| 免费看精品久久片| 中文字幕第一区二区| 欧美三级欧美一级| 国产在线麻豆精品观看| 亚洲男人的天堂在线观看| 欧美精三区欧美精三区| 国产不卡高清在线观看视频| 亚洲午夜精品17c| 精品对白一区国产伦| av电影在线观看不卡| 免费不卡在线观看| 成人免费在线视频观看| 日韩写真欧美这视频| 99国产精品久| 激情五月播播久久久精品| 亚洲欧美另类小说| 337p粉嫩大胆色噜噜噜噜亚洲| 97精品视频在线观看自产线路二| 日韩国产在线观看一区| 国产精品乱码久久久久久| 91精品国产91久久久久久最新毛片| 国产成人精品综合在线观看| 五月婷婷欧美视频| 综合久久给合久久狠狠狠97色| 欧美一区二区三区四区久久| 97se亚洲国产综合自在线观| 国模大尺度一区二区三区| 午夜一区二区三区视频| 亚洲欧洲三级电影| 久久日一线二线三线suv| 欧美欧美午夜aⅴ在线观看| 91丝袜美女网| 成人一二三区视频| 久久国产精品免费| 美日韩一区二区| 性感美女极品91精品| 亚洲欧洲制服丝袜| 国产精品网站在线| 久久久久久久久久久久电影| 欧美一卡二卡在线观看| 欧美人动与zoxxxx乱| 欧美日韩一区成人| 在线免费观看成人短视频| 成人h精品动漫一区二区三区| 极品少妇一区二区三区精品视频| 首页综合国产亚洲丝袜| 亚洲一区二区偷拍精品| 亚洲精品成人a在线观看| 亚洲欧美区自拍先锋| 亚洲欧美偷拍另类a∨色屁股| 中文字幕av免费专区久久| 国产亚洲一区二区三区在线观看| 日韩精品一区二区三区在线观看| 在线播放亚洲一区| 欧美精品乱码久久久久久按摩| 欧美性生活久久| 欧美日韩精品综合在线| 欧美日韩久久一区二区| 欧美日本在线播放| 欧美一二三区在线观看| 2020国产精品自拍| 久久久久一区二区三区四区| 久久午夜羞羞影院免费观看| 久久久久久久久一| 成人免费在线视频| 亚洲国产日韩在线一区模特| 亚洲成av人片| 精品综合免费视频观看| 国产一区三区三区| www.欧美.com| 精品污污网站免费看| 精品国产91乱码一区二区三区| 久久嫩草精品久久久精品| 欧美国产精品v| 亚洲韩国精品一区| 精品一区二区久久| 成人高清在线视频| 欧美亚洲国产一区二区三区va| 欧美精品xxxxbbbb| 久久婷婷国产综合精品青草 | 色哟哟国产精品| 欧美日韩成人一区| 久久久蜜桃精品| 一区二区三区电影在线播| 日韩电影在线一区二区三区| 国产激情视频一区二区三区欧美| 91首页免费视频| 欧美一级片在线观看| 中文字幕在线播放不卡一区| 午夜精品福利视频网站| 国产一区二区三区综合| 色偷偷一区二区三区| 91精品国产高清一区二区三区| 中文一区一区三区高中清不卡| 亚洲一区中文日韩| 国产福利电影一区二区三区| 在线日韩一区二区| 26uuu色噜噜精品一区二区| 怡红院av一区二区三区| 老司机一区二区| 欧美亚洲国产一卡| 欧美高清在线视频| 免费av成人在线| 91免费观看视频在线| 精品黑人一区二区三区久久| 亚洲美女屁股眼交3| 国产在线精品一区在线观看麻豆| 欧美午夜片在线看| 国产精品久久福利| 国内国产精品久久| 制服丝袜av成人在线看| 国产精品国产成人国产三级| 久久99久久久久| 51精品国自产在线| 亚洲国产一区二区a毛片| av在线不卡电影| 欧美精品一区二区蜜臀亚洲| 亚洲成人自拍网| 日本高清不卡在线观看| 国产精品无遮挡| 国产精品一级片| 日韩欧美激情四射| 日本视频免费一区| 欧美另类一区二区三区| 亚洲欧美另类久久久精品2019| 成人美女在线视频| 国产网站一区二区| 国产乱子轮精品视频| 精品久久久久久久久久久久包黑料| 亚洲国产综合91精品麻豆| 色视频一区二区| 亚洲免费在线看| 色综合天天天天做夜夜夜夜做| 国产精品久久久久久久裸模| 丰满岳乱妇一区二区三区| 国产精品免费av| 成人黄色大片在线观看| 欧美高清在线一区| 91影视在线播放| 亚洲一区自拍偷拍|