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

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

?? utils.c

?? s3c44b0開發板tftp調試代碼,芯片rtl8019
?? C
字號:
#include "def.h"
#include "44blib.h"
#include "utils.h"

void memcpy(void *s1, const void *s2, int n)
{
	int i;

	for (i = 0; i < n; i++)
		((char *)(s1))[i] = ((const char *)(s2))[i];
}

void memset(void *s, const char ch, int n)
{
	int i;

	for (i = 0; i < n; i++)
		((char *)(s))[i] = ch;
}

unsigned short ntohs(unsigned short s)
{
	return (s >> 8) | (s << 8);
}

unsigned long ntohl(unsigned long l)
{
	return  ((l >> 24) & 0x000000ff) |
		((l >>  8) & 0x0000ff00) |
		((l <<  8) & 0x00ff0000) |
		((l << 24) & 0xff000000);
}

unsigned short htons(unsigned short s)
{
	return (s >> 8) | (s << 8);
}

unsigned long htonl(unsigned long l)
{
	return ntohl(l);
/*	return  ((l >> 24) & 0x000000ff) |
		((l >>  8) & 0x0000ff00) |
		((l <<  8) & 0x00ff0000) |
		((l << 24) & 0xff000000);*/
}

unsigned long strtoul(char *s)
{
	unsigned long ret;
	int i;

	ret = 0;

	while (*s != '\0') {
		if (*s >= '0' && *s <= '9')
			i = *s - '0';
		else if (*s >= 'a' && *s <= 'f')
			i = *s - 'a' + 0xa;
		else if (*s >= 'A' && *s <= 'F')
			i = *s - 'A' + 0xa;
		else
			return -1;
		ret = (ret << 4) + i;
		s++;
	}

	return ret;
}

void ultostr(char *s, unsigned long data)
{
	int i;
	
	s[8] = 0;
	for(i=7; i>=0; i--, data >>=4)
	{
		if((data&0xf)<=9)
			s[i] = (data&0xf)+'0';
		else
			s[i] = (data&0xf)+'a'-0x0a;
	}	
}

unsigned long strtobcd(char *s)
{
	unsigned long ret;
	int i;

	ret = 0;

	while (*s != '\0') {
		if (*s >= '0' && *s <= '9')
			i = *s - '0';
		else
			return -1;
		ret = (ret << 4) + i;
		s++;
	}

	return ret;
}

unsigned long strtodec(char *str, int cnt)
{
	unsigned long i, data = 0;	
	
	for(i=0; i<cnt; i++)
	{
		data *= 10;
		if(str[i]<'0'||str[i]>'9')
			return -1;
		data += str[i]-'0';			
	}	
	return data;
}

int strlen(const char *s)
{
	int i = 0;

	for(; *s; s++)
		i++;
	
	return i;
}

int strncmp(const char *s1, const char *s2, int maxlen)
{
	int i;

	for(i = 0; i < maxlen; i++) {
		if(s1[i] != s2[i])
			return ((int) s1[i]) - ((int) s2[i]);
		if(s1[i] == 0)
			return 0;
	}

	return 0;
}

/*---------------------Uart_Printf and support routines ---------------------*/
/* print c count times */
void PutRepChar(char c, int count)
{
	while (count--) Uart_SendByte(c);
}

/* put string reverse */
void PutStringReverse(char *s, int index)
{
  while ((index--) > 0) Uart_SendByte(s[index]);
}

/*-------------------------------------------------------------------------*/
/* 
   prints value in radix, in a field width width, with fill
   character fill
   if radix is negative, print as signed quantity
   if width is negative, left justify
   if width is 0, use whatever is needed
   if fill is 0, use ' '
 */

/*
static void PutNumber(int value, int radix, int width, char fill)
{
  char buffer[40];
  int bi = 0;
  int unsigned uvalue;
  short int digit;
  short int left = FALSE;
  short int negative = FALSE;

  if (fill == 0) fill = ' ';

  if (width < 0) {
    width = -width;
    left = TRUE;
  }
  if (width < 0 || width > 80) width = 0;
  
  if (radix < 0) {
    radix = -radix;
    if (value < 0) {
      negative = TRUE;
      value = -value;
    }
  }
  uvalue = value;
  do {
    if (radix != 16) {
      digit = uvalue % radix ;
      uvalue = uvalue / radix ;
    }
    else {
      digit = uvalue & 0xf;
      uvalue = uvalue >> 4;
    }
    buffer[bi] = digit + ((digit <= 9) ? '0' : ('A' - 10));
    bi++;

    if (uvalue != 0) {
      if ((radix==10)&&((bi==3)||(bi==7)||(bi==11)|(bi==15))) {
	buffer[bi++]=',';
      }
    }
  } while (uvalue != 0);

  if (negative) {
    buffer[bi] = '-';
    bi += 1;
  }
  if (width <= bi) PutStringReverse(buffer, bi);
  else {
    width -= bi;
    if (!left) PutRepChar(fill, width);
    PutStringReverse(buffer, bi);
    if (left) PutRepChar(fill, width);
  } 
}*/

/*
//-------------------------------------------------------------------------
static char *FormatItem(char *f, int a)
{
  char c;
  int fieldwidth = 0;
  int leftjust = FALSE;
  int radix = 0;
  char fill = ' ';

  if (*f == '0') fill = '0';
  while ((c = *f++)!=0) {
    if (c >= '0' && c <= '9') {
      fieldwidth = (fieldwidth * 10) + (c - '0');
    }
    else switch (c) {
    case '\000': return(--f);
    case '%': Uart_SendByte('%');
      return(f);
    case '-': leftjust = TRUE;
      break;
    case 'c': {
      if (leftjust) Uart_SendByte(a & 0x7f);
      if (fieldwidth > 0) PutRepChar(fill, fieldwidth - 1);
      if (!leftjust) Uart_SendByte(a & 0x7f);
      return(f);
    }
    case 's': {
      if (leftjust) puts((char *) a);
      if (fieldwidth > strlen((char *) a))
	PutRepChar(fill, fieldwidth - strlen((char *)a));
      if (!leftjust) puts((char *) a);
      return(f);
    }
    case 'd': 
    case 'i': radix = -10;break;
    case 'u': radix = 10;break;
    case 'x': radix = 16;break;
    case 'X': radix = 16;break;
    case 'o': radix = 8;break;
    default : radix = 3;break;		//unknown switch!//
    }
    if (radix) break;
  }
  if (leftjust) fieldwidth = -fieldwidth;
  PutNumber(a, radix, fieldwidth, fill);
  return(f);
}*/

#define vaStart(list, param) list = (char*)((int)&param + sizeof(param))
#define vaArg(list, type) ((type *)(list += sizeof(type)))[-1]
#define vaEnd(list)
/*
void Uart_Printf(char *f, ...)       //variable arguments//
{
//	U32 mode ;
	char *argP;
	
	//disable IRQs and FIQs//
//	mode = uHALir_ReadMode() ;
//	uHALir_WriteMode(mode | NoFIQ | NoIRQ) ;

	vaStart(argP,f);		//point at the end of the format string//
	while (*f) {			//this works because args are all ints//
		if (*f == '%')
			f = FormatItem(f + 1, vaArg(argP, int));
		else
			Uart_SendByte(*f++);
	}
	vaEnd(argP);

	// restore the previous mode //
//	uHALir_WriteMode(mode) ;
}*/

int getyorn(void)
{
	char c;
	
	Uart_Printf(" [y/n] ");
	while(1) {		
		c = Uart_Getch();
		if((c=='y')||(c=='Y')||(c=='n')||(c=='N'))
			break;
	}
	Uart_SendByte(c);
	Uart_SendByte('\n');
	return c&1;	//y&Y are odd, n&N are even
}

int GetParameter(char *str, int cnt)
{
	int i, key;	
	
	i = 0;
	while(1)
	{
		key = Uart_Getch();
		if(key)
		{
			if(key == ENTER_KEY)
			{
				str[i] = 0;
				return i;
			}
			else if(key == BACK_KEY && i>0)
			{
				i--;
				Uart_Printf("\b \b");
			}
			else if(key == 0x1b)
			{
				//Uart_Getch();
				//Uart_Getch();
				return -1;
			}
			else if(key>=0x20 && key<=0x7e && i<cnt)
			{
				str[i++] = key;
				Uart_SendByte(key);
			}				
		}
	}	
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
91视频观看免费| 久久久蜜桃精品| 久久婷婷国产综合精品青草| 亚洲欧美日韩在线不卡| 极品少妇xxxx偷拍精品少妇| 91啪在线观看| 国产婷婷一区二区| 久色婷婷小香蕉久久| 色域天天综合网| 国产农村妇女毛片精品久久麻豆| 亚洲综合精品自拍| 国产成人av网站| 欧美成人bangbros| 人禽交欧美网站| 欧美高清视频在线高清观看mv色露露十八 | 国产精品网站在线观看| 亚洲国产日产av| 99久久精品国产毛片| 国产欧美一二三区| 精品一区二区三区免费观看| 欧美日韩三级一区二区| 亚洲在线观看免费| 色8久久精品久久久久久蜜| 亚洲国产电影在线观看| 国产成人精品影院| 久久久久久久电影| 国产精品亚洲综合一区在线观看| 4438x成人网最大色成网站| 亚洲欧美另类小说视频| 99久久99久久免费精品蜜臀| 国产日韩精品一区| 国产成人av网站| 国产免费观看久久| www.亚洲免费av| 国产午夜精品一区二区三区嫩草| 国产中文一区二区三区| 久久久久国产免费免费| 国产成人免费视频网站| 国产精品久久久久久福利一牛影视| 国产精品亚洲午夜一区二区三区 | 久久99国产精品久久| 欧美另类videos死尸| 日韩激情在线观看| 欧美一区二区在线播放| 麻豆91免费观看| 久久久久久久久99精品| 成人av资源在线观看| 亚洲卡通动漫在线| 在线观看欧美日本| 日韩专区在线视频| 久久久久久久电影| 91麻豆精东视频| 日日噜噜夜夜狠狠视频欧美人| 91精品免费在线观看| 国产在线精品视频| 成人免费在线视频| 91精品欧美久久久久久动漫 | 日韩国产欧美视频| 精品国精品国产尤物美女| 国产福利视频一区二区三区| 欧美国产一区在线| 欧美日韩久久久一区| 久久se精品一区精品二区| 欧美激情一区二区三区蜜桃视频| av在线这里只有精品| 香蕉成人伊视频在线观看| 久久久一区二区三区| 91免费视频大全| 免费欧美在线视频| 国产精品美女久久久久av爽李琼| 在线观看日韩毛片| 国产激情91久久精品导航| 一区二区三区四区激情| 欧美sm美女调教| 91免费在线看| 国产精品中文字幕一区二区三区| 一区二区三区精品在线观看| 欧美成人猛片aaaaaaa| 色哦色哦哦色天天综合| 国产在线播放一区三区四| 奇米四色…亚洲| 亚洲三级理论片| ww亚洲ww在线观看国产| 欧美中文字幕一二三区视频| 国产成人免费在线观看不卡| 亚洲国产毛片aaaaa无费看| 久久久五月婷婷| 91精品国模一区二区三区| 99国内精品久久| 国产乱色国产精品免费视频| 婷婷激情综合网| 亚洲黄色av一区| 成人欧美一区二区三区| 久久精品男人天堂av| 日韩一区国产二区欧美三区| 日本久久电影网| 9i看片成人免费高清| 国产精品一区三区| 精品一区二区在线视频| 图片区小说区区亚洲影院| 亚洲激情图片qvod| 中文字幕视频一区二区三区久| 精品国产免费久久 | 国产日韩欧美一区二区三区综合| 欧美日韩成人激情| 欧美三级资源在线| 欧美优质美女网站| 色又黄又爽网站www久久| 成人av在线资源网| www.日韩精品| 成人在线一区二区三区| 国产成人综合在线观看| 国产精品一级黄| 国产超碰在线一区| 成人午夜电影久久影院| 国产成人精品网址| 成人中文字幕在线| 成人av在线电影| 91免费版pro下载短视频| gogo大胆日本视频一区| 国产不卡在线播放| av爱爱亚洲一区| 91丨九色丨蝌蚪富婆spa| 99久久伊人久久99| 日本丰满少妇一区二区三区| 91官网在线观看| 欧美日韩不卡在线| 日韩欧美亚洲另类制服综合在线| 欧美xxxxxxxxx| 久久精品视频在线看| 国产精品久久久久久久久图文区 | 国产视频在线观看一区二区三区| 日韩美女一区二区三区四区| 精品久久一区二区三区| 国产欧美精品一区aⅴ影院| 日韩一区在线免费观看| 亚洲国产精品自拍| 久久精品久久久精品美女| 国产精品99久久久久久久女警| 成人av片在线观看| 在线观看亚洲成人| 日韩一级黄色片| 国产精品乱子久久久久| 亚洲综合小说图片| 久久丁香综合五月国产三级网站| 国产1区2区3区精品美女| 日本高清视频一区二区| 欧美大片一区二区| 中文字幕制服丝袜一区二区三区| 亚洲在线视频网站| 国产精品一卡二卡| 欧美在线免费观看视频| 精品久久99ma| 夜夜嗨av一区二区三区网页| 免费成人在线观看| 色哟哟一区二区| 欧美mv日韩mv国产网站app| 亚洲欧美视频在线观看视频| 免费的国产精品| 91精品福利在线| 久久久久免费观看| 婷婷一区二区三区| 99精品国产99久久久久久白柏 | 免费成人性网站| 一本色道久久综合亚洲精品按摩| 日韩一级片网址| 一区二区三区精品视频| 国产一区二区久久| 欧美精品国产精品| 国产精品初高中害羞小美女文 | 香蕉影视欧美成人| 9久草视频在线视频精品| 日韩精品中午字幕| 一区二区三区电影在线播| 国产福利电影一区二区三区| 欧美精品自拍偷拍| 亚洲欧美福利一区二区| 91在线免费看| 国产欧美在线观看一区| 久久99精品一区二区三区三区| 欧美在线三级电影| 亚洲视频狠狠干| av一区二区三区在线| 国产欧美一区二区三区在线看蜜臀| 蜜臀99久久精品久久久久久软件| 91免费国产在线观看| 欧美激情一区二区三区蜜桃视频| 美国精品在线观看| 欧美一区二区三区人| 亚洲国产一区二区三区| 色综合婷婷久久| 国产精品久久久久影视| 丰满岳乱妇一区二区三区| 亚洲精品一区二区三区在线观看| 日本成人在线看| 欧美不卡在线视频| 久久国产夜色精品鲁鲁99| 日韩欧美中文字幕一区| 麻豆精品一区二区av白丝在线| 欧美日韩高清一区二区|