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

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

?? console.c

?? YL9200開發板的BIOS9200源碼
?? C
字號:
#include "AT91RM9200.h"
#include "def.h"
#include "config.h"
#include "console.h"
#include "utils.h"

extern volatile U32 StTick;
void delay(U32 ms)
{
	U16 i;
	
	i = AT91C_BASE_TC0->TC_RC>>1;	//1000us/2
	
	AT91C_BASE_TC0->TC_CCR = 4;	//復位為0,加計數
	
	while(ms--) {
		while(AT91C_BASE_TC0->TC_CV<=i);
		while(AT91C_BASE_TC0->TC_CV>i);
	}
}

void putchar(char c)
{	
	if(c=='\n') {
		while(!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));
		AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, '\r');
		delay(1);
	}
	while(!AT91F_US_TxReady((AT91PS_USART)AT91C_BASE_DBGU));
	AT91F_US_PutChar((AT91PS_USART)AT91C_BASE_DBGU, c);
//	delay(1);
}

int getchar(void)
{
	while(!kbhit());
	return AT91F_US_GetChar((AT91PS_USART)AT91C_BASE_DBGU);
}

//*----------------------------------------------------------------------------
//* \fn    puts
//* \brief This function is used to send a string through the DBGU channel (Very low level debugging)
//*----------------------------------------------------------------------------
void puts(char *buffer) // \arg pointer to a string ending by \0
{	
	while(*buffer != '\0') {		
		putch(*buffer++);
	}
}

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

#if	1	//#ifdef	SELF_BOOT
/*---------------------printf and support routines ---------------------*/
/* print c count times */
void PutRepChar(char c, int count)
{
  while (count--) putchar(c);
}

/* put string reverse */
void PutStringReverse(char *s, int index)
{
  while ((index--) > 0) putchar(s[index]);
}
/*
typedef struct {
	U32 q;
	U16 r;
}u_div_e;

static u_div_e u_div(U32 value, U16 radix)
{
	u_div_e e = {0, 0};
	
	while(value>=radix) {
		value -= radix;
		e.q++;
	}
	e.r = value;
	
	return e;	
}*/
/*-------------------------------------------------------------------------*/
/* 
   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 ;
//      u_div_e result;
      
//      result = u_div(uvalue, radix);
//      digit  = result.r;
//      uvalue = result.q;
    }
    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 '%': putchar('%');
      return(f);
    case '-': leftjust = TRUE;
      break;
    case 'c': {
      if (leftjust) putchar(a & 0x7f);
      if (fieldwidth > 0) PutRepChar(fill, fieldwidth - 1);
      if (!leftjust) putchar(a & 0x7f);
      return(f);
    }
    case 's': {
      if (leftjust) PutString((char *) a);
      if (fieldwidth > strlen((char *) a))
	PutRepChar(fill, fieldwidth - strlen((char *)a));
      if (!leftjust) PutString((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 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 putchar(*f++);
  }
  vaEnd(argP);

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

#else

#include <stdarg.h>
#include <string.h>
#include <stdlib.h>

//If you don't use vsprintf(), the code size is reduced very much.
typedef int *__va_list[1];
int vsprintf(char * /*s*/, const char * /*format*/, __va_list /*arg*/);

void printf(char *fmt,...)
{
	va_list ap;
	char string[256];
	
	va_start(ap,fmt);
	vsprintf(string,fmt,ap);
	puts(string);
	va_end(ap);
}

#endif

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美裸体一区二区三区| 3751色影院一区二区三区| 国产精品一区二区在线播放| 美国十次综合导航| 美女性感视频久久| 久久国产精品露脸对白| 精品一区二区三区不卡| 狠狠色综合色综合网络| 国产91精品一区二区麻豆网站| 国产东北露脸精品视频| 欧美最猛性xxxxx直播| 欧美一区二区三区四区在线观看| 精品理论电影在线观看| 亚洲欧美色一区| 免费成人在线影院| 东方欧美亚洲色图在线| 欧美日韩国产乱码电影| 国产亚洲精品福利| 亚洲国产日日夜夜| heyzo一本久久综合| 91精品综合久久久久久| 亚洲精品免费一二三区| 亚洲国产aⅴ成人精品无吗| 国产在线日韩欧美| 欧美日韩亚洲综合一区| 精品国产一二三区| 午夜激情久久久| av中文字幕亚洲| 欧美mv日韩mv| 亚洲欧洲成人自拍| 国产成人免费视频网站高清观看视频| 色呦呦一区二区三区| 国产午夜精品福利| 久久99日本精品| 欧美一区二区三区视频免费| 一区二区三区中文字幕在线观看| 成人性色生活片免费看爆迷你毛片| 日韩精品一区二区三区中文精品| 亚洲高清不卡在线观看| 99精品在线观看视频| 国产精品网站在线播放| 国产成人精品www牛牛影视| 精品国产百合女同互慰| 国产精品一品二品| 国产日韩欧美高清| 国产99久久久久| 亚洲另类中文字| 在线播放/欧美激情| 日本午夜精品视频在线观看| 91精品国产综合久久久蜜臀图片| 日韩成人精品在线| 精品99一区二区| bt欧美亚洲午夜电影天堂| 婷婷激情综合网| 精品日韩一区二区| 91亚洲精品久久久蜜桃网站 | 亚洲第一av色| 欧美日韩国产另类不卡| 久久国产免费看| 亚洲丝袜美腿综合| 欧美在线影院一区二区| 免费日本视频一区| 中文字幕中文字幕一区二区| 欧美无人高清视频在线观看| 国产在线观看一区二区| 亚洲人成网站在线| 日韩一区二区三区在线| 91视频观看免费| 国产黑丝在线一区二区三区| 亚洲一区二区三区小说| 久久久综合精品| 日韩一区二区三| 欧美日韩国产区一| 97se亚洲国产综合在线| 国产精品99久久久久久宅男| 婷婷久久综合九色国产成人| 国产精品免费网站在线观看| 久久综合色天天久久综合图片| 欧美亚一区二区| 在线国产电影不卡| av网站一区二区三区| 国产精品1区2区3区在线观看| 日韩电影在线看| 免费观看在线色综合| 手机精品视频在线观看| 五月婷婷色综合| 日本vs亚洲vs韩国一区三区| 亚洲国产一区视频| 午夜精品一区在线观看| 最新欧美精品一区二区三区| 国产精品女主播在线观看| 亚洲欧美日韩久久| 亚洲国产sm捆绑调教视频| 亚洲bdsm女犯bdsm网站| 日一区二区三区| 国产精品18久久久久久久久久久久| 国产精品一品视频| 欧美视频日韩视频在线观看| 欧美成人精精品一区二区频| 国产日韩欧美不卡在线| 亚洲精品国产高清久久伦理二区| 日本三级亚洲精品| av在线不卡电影| 欧美va亚洲va香蕉在线| 亚洲高清久久久| 国产成人免费视频| 亚洲欧洲精品一区二区三区| 视频一区二区三区中文字幕| 精品一二线国产| 91精品中文字幕一区二区三区| 日韩理论在线观看| 国产精品主播直播| 欧美一级片在线| 亚洲国产va精品久久久不卡综合| aaa亚洲精品| 国产精品美女久久久久aⅴ国产馆| 日韩国产欧美视频| 欧美日韩激情一区二区三区| 亚洲色图制服丝袜| caoporn国产精品| 国产精品成人网| 91香蕉视频在线| 亚洲欧洲精品天堂一级| 99re热视频精品| 亚洲国产成人91porn| 欧美猛男超大videosgay| 亚洲综合一区二区三区| 在线精品视频一区二区| 亚洲老司机在线| 欧美日韩国产一级片| 毛片一区二区三区| 久久久欧美精品sm网站| caoporen国产精品视频| 一区二区在线观看不卡| 8x福利精品第一导航| 精久久久久久久久久久| 亚洲国产精品99久久久久久久久| 99这里只有久久精品视频| 一区二区三区四区精品在线视频| 欧美亚洲另类激情小说| 美女久久久精品| 中文字幕在线不卡视频| 欧美另类z0zxhd电影| 精品制服美女丁香| 亚洲欧洲综合另类| 精品国一区二区三区| av不卡一区二区三区| 免费不卡在线视频| 亚洲男人都懂的| 久久综合国产精品| 欧美性受极品xxxx喷水| 国产综合色视频| 亚洲色图欧洲色图婷婷| 日韩欧美一区电影| 在线看国产一区| 99在线热播精品免费| 国产成人在线看| 激情小说亚洲一区| 日韩在线一区二区| 亚洲同性gay激情无套| 欧美电视剧在线观看完整版| 欧美日韩国产美| 91丝袜国产在线播放| 成人av在线资源网站| 国产乱人伦偷精品视频不卡 | 精品亚洲porn| 免费成人在线观看视频| 亚洲欧美区自拍先锋| 国产日韩欧美一区二区三区综合| 欧美精品在线观看播放| 欧美无砖专区一中文字| 成人丝袜18视频在线观看| 久久精品久久综合| 蜜桃视频在线一区| 精品写真视频在线观看| 国产精品一区免费在线观看| 国产在线精品不卡| 偷拍与自拍一区| 日韩午夜激情电影| 91精品国产全国免费观看| 国产综合久久久久久鬼色| 激情欧美一区二区| 韩国欧美一区二区| 国产激情一区二区三区四区 | 99re6这里只有精品视频在线观看 99re8在线精品视频免费播放 | 欧美videofree性高清杂交| 精品福利二区三区| 综合欧美亚洲日本| 五月天亚洲婷婷| 成人av在线播放网站| 欧美视频完全免费看| 欧美日韩国产综合视频在线观看 | 亚洲成人一区在线| 日本v片在线高清不卡在线观看| 极品销魂美女一区二区三区| 成人自拍视频在线观看| 欧美日韩一区不卡| 亚洲色图清纯唯美| 国产精品综合一区二区三区| 91国偷自产一区二区三区观看 |