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

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

?? serial_netarm.c

?? 嵌入式試驗箱S3C2410的bootloader源代碼
?? C
字號:
/* * Serial Port stuff - taken from Linux * * (C) Copyright 2002 * MAZeT GmbH <www.mazet.de> * Stephan Linz <linz@mazet.de>, <linz@li-pro.net> * * (c) 2004 * IMMS gGmbH <www.imms.de> * Thomas Elste <info@elste.org> * * See file CREDITS for list of people who contributed to this * project. * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA * */#include <common.h>#ifdef CONFIG_NETARM#include <asm/hardware.h>DECLARE_GLOBAL_DATA_PTR;#define PORTA	(*(volatile unsigned int *)(NETARM_GEN_MODULE_BASE + NETARM_GEN_PORTA))#if !defined(CONFIG_NETARM_NS7520)#define PORTB	(*(volatile unsigned int *)(NETARM_GEN_MODULE_BASE + NETARM_GEN_PORTB))#else#define PORTC	(*(volatile unsigned int *)(NETARM_GEN_MODULE_BASE + NETARM_GEN_PORTC))#endif/* wait until transmitter is ready for another character */#define TXWAITRDY(registers) 							\{										\	ulong tmo = get_timer(0) + 1 * CFG_HZ;					\	while (((registers)->status_a & NETARM_SER_STATA_TX_RDY) == 0 )	{	\		if (get_timer(0) > tmo)						\			break;							\	}									\}#ifndef CONFIG_UART1_CONSOLEvolatile netarm_serial_channel_t *serial_reg_ch1 = get_serial_channel(0);volatile netarm_serial_channel_t *serial_reg_ch2 = get_serial_channel(1);#elsevolatile netarm_serial_channel_t *serial_reg_ch1 = get_serial_channel(1);volatile netarm_serial_channel_t *serial_reg_ch2 = get_serial_channel(0);#endifextern void _netarm_led_FAIL1(void);/* * Setup both serial i/f with given baudrate */void serial_setbrg (void){	/* set 0 ... make sure pins are configured for serial */#if !defined(CONFIG_NETARM_NS7520)	PORTA = PORTB =		NETARM_GEN_PORT_MODE (0xef) | NETARM_GEN_PORT_DIR (0xe0);#else	PORTA = NETARM_GEN_PORT_MODE (0xef) | NETARM_GEN_PORT_DIR (0xe0);	PORTC = NETARM_GEN_PORT_CSF (0xef) | NETARM_GEN_PORT_MODE (0xef) | NETARM_GEN_PORT_DIR (0xe0);#endif	/* first turn em off */	serial_reg_ch1->ctrl_a = serial_reg_ch2->ctrl_a = 0;	/* clear match register, we don't need it */	serial_reg_ch1->rx_match = serial_reg_ch2->rx_match = 0;	/* setup bit rate generator and rx buffer gap timer (1 byte only) */	if ((gd->baudrate >= MIN_BAUD_RATE)	    && (gd->baudrate <= MAX_BAUD_RATE)) {		serial_reg_ch1->bitrate = serial_reg_ch2->bitrate =			NETARM_SER_BR_X16 (gd->baudrate);		serial_reg_ch1->rx_buf_timer = serial_reg_ch2->rx_buf_timer =			0;		serial_reg_ch1->rx_char_timer = serial_reg_ch2->rx_char_timer =			NETARM_SER_RXGAP (gd->baudrate);	} else {		hang ();	}	/* setup port mode */	serial_reg_ch1->ctrl_b = serial_reg_ch2->ctrl_b =		( NETARM_SER_CTLB_RCGT_EN |		  NETARM_SER_CTLB_UART_MODE);	serial_reg_ch1->ctrl_a = serial_reg_ch2->ctrl_a =		( NETARM_SER_CTLA_ENABLE |		  NETARM_SER_CTLA_P_NONE |		  /* see errata */		  NETARM_SER_CTLA_2STOP |		  NETARM_SER_CTLA_8BITS |		  NETARM_SER_CTLA_DTR_EN |		  NETARM_SER_CTLA_RTS_EN);}/* * Initialise the serial port with the given baudrate. The settings * are always 8 data bits, no parity, 1 stop bit, no start bits. */int serial_init (void){	serial_setbrg ();	return 0;}/* * Output a single byte to the serial port. */void serial_putc (const char c){	volatile unsigned char *fifo;	/* If \n, also do \r */	if (c == '\n')		serial_putc ('\r');	fifo = (volatile unsigned char *) &(serial_reg_ch1->fifo);	TXWAITRDY (serial_reg_ch1);	*fifo = c;}/* * Test of a single byte from the serial port. Returns 1 on success, 0 * otherwise. */int serial_tstc(void){	return serial_reg_ch1->status_a & NETARM_SER_STATA_RX_RDY;}/* * Read a single byte from the serial port. Returns 1 on success, 0 * otherwise. */int serial_getc (void){	unsigned int ch_uint;	volatile unsigned int *fifo;	volatile unsigned char *fifo_char = NULL;	int buf_count = 0;	while (!(serial_reg_ch1->status_a & NETARM_SER_STATA_RX_RDY))		/* NOP */ ;	fifo = (volatile unsigned int *) &(serial_reg_ch1->fifo);	fifo_char = (unsigned char *) &ch_uint;	ch_uint = *fifo;	buf_count = NETARM_SER_STATA_RXFDB (serial_reg_ch1->status_a);	switch (buf_count) {	case NETARM_SER_STATA_RXFDB_4BYTES:		buf_count = 4;		break;	case NETARM_SER_STATA_RXFDB_3BYTES:		buf_count = 3;		break;	case NETARM_SER_STATA_RXFDB_2BYTES:		buf_count = 2;		break;	case NETARM_SER_STATA_RXFDB_1BYTES:		buf_count = 1;		break;	default:		/* panic, be never here */		break;	}	serial_reg_ch1->status_a |= NETARM_SER_STATA_RX_CLOSED;	return ch_uint & 0xff;}void serial_puts (const char *s){	while (*s) {		serial_putc (*s++);	}}#endif /* CONFIG_NETARM */

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
色综合咪咪久久| 久久久噜噜噜久噜久久综合| 日韩精品自拍偷拍| 国产精品免费久久| 日韩和欧美的一区| 91在线国产观看| 26uuu色噜噜精品一区| 有码一区二区三区| 岛国精品在线观看| 精品国产人成亚洲区| 亚洲成人你懂的| 成人精品一区二区三区四区 | 免费人成网站在线观看欧美高清| fc2成人免费人成在线观看播放| 欧美一区二区福利视频| 亚洲色图在线看| 夫妻av一区二区| 欧美精品一区二区在线播放| 三级影片在线观看欧美日韩一区二区 | 久久久久久97三级| 蜜臀av性久久久久蜜臀aⅴ四虎 | 欧美日韩国产中文| 亚洲免费观看高清在线观看| 成人免费毛片嘿嘿连载视频| 国产欧美精品一区aⅴ影院| 免费在线观看不卡| 91.xcao| 石原莉奈在线亚洲二区| 欧美另类久久久品| 亚洲曰韩产成在线| 欧美综合久久久| 亚洲一区二区视频在线| 在线中文字幕一区| 亚洲国产精品尤物yw在线观看| 99re成人在线| 亚洲视频在线观看三级| 成人激情文学综合网| 国产精品对白交换视频| 99re8在线精品视频免费播放| 亚洲国产精品成人综合| 风流少妇一区二区| 亚洲日本中文字幕区| 色综合夜色一区| 亚洲综合小说图片| 欧美电影在线免费观看| 免费观看成人av| 久久久蜜桃精品| 成人免费毛片app| 亚洲精品视频一区| 欧美三级韩国三级日本一级| 日韩精品久久理论片| 精品国产露脸精彩对白| 国产精品99久久久久久久vr| 国产精品第五页| 欧美亚洲日本一区| 久久精品免费观看| 国产精品色哟哟网站| 色国产综合视频| 日本不卡视频一二三区| 国产亚洲精久久久久久| 一本大道av伊人久久综合| 亚洲香肠在线观看| 精品国产凹凸成av人导航| 成人av网址在线| 五月天中文字幕一区二区| 久久女同性恋中文字幕| 色婷婷综合五月| 另类小说欧美激情| 中文字幕亚洲一区二区va在线| 欧美色视频一区| 国产乱人伦偷精品视频不卡| 亚洲精品一二三区| 欧美tk—视频vk| 色播五月激情综合网| 黄色日韩网站视频| 亚洲一区影音先锋| 日本一区二区综合亚洲| 欧美日韩国产不卡| eeuss影院一区二区三区| 美女脱光内衣内裤视频久久网站 | 欧美久久久久久蜜桃| 国产sm精品调教视频网站| 图片区日韩欧美亚洲| 国产精品不卡在线观看| 制服丝袜国产精品| 91色porny在线视频| 国内精品国产三级国产a久久| 一区二区三区资源| 久久精品视频一区二区三区| 欧美日本一区二区三区四区 | 蜜桃视频一区二区| 一区二区三区国产精华| 国产日韩欧美精品电影三级在线| 欧美乱妇一区二区三区不卡视频| 99视频超级精品| 国产主播一区二区三区| 日本一不卡视频| 夜夜精品视频一区二区| 国产精品美女久久久久av爽李琼| 精品国产三级电影在线观看| 欧美精品久久一区二区三区| 日本丰满少妇一区二区三区| 成人毛片在线观看| 国产成人在线电影| 国产一区二区三区久久悠悠色av| 亚洲.国产.中文慕字在线| 亚洲欧洲制服丝袜| 综合中文字幕亚洲| 亚洲视频每日更新| 国产精品欧美一区二区三区| 国产午夜久久久久| 久久一区二区三区国产精品| 日韩一区二区在线免费观看| 欧美精品三级在线观看| 欧美另类久久久品| 在线不卡免费欧美| 91精选在线观看| 欧美精品aⅴ在线视频| 制服丝袜亚洲精品中文字幕| 91麻豆精品国产91久久久更新时间 | 7799精品视频| 日韩一区二区影院| 精品国产免费人成在线观看| 欧美mv日韩mv亚洲| 精品国产乱码久久久久久夜甘婷婷| 精品国产青草久久久久福利| 久久精品一区二区三区不卡牛牛| 国产日韩欧美麻豆| 成人免费一区二区三区视频 | 久久久亚洲综合| 亚洲国产精品高清| 最新中文字幕一区二区三区| 一区二区三区精品视频在线| 亚洲一区在线视频观看| 日本欧美久久久久免费播放网| 免费高清在线一区| 国产高清亚洲一区| 色综合久久久久网| 5858s免费视频成人| 久久尤物电影视频在线观看| 国产精品久久久久久久久图文区 | 亚洲1区2区3区4区| 国产专区欧美精品| 91麻豆自制传媒国产之光| 欧美系列亚洲系列| 日韩精品一区二区在线| 国产清纯白嫩初高生在线观看91 | www.日韩精品| 欧美日韩在线播放三区四区| 欧美高清在线视频| 亚洲制服欧美中文字幕中文字幕| 蜜乳av一区二区三区| 99久久精品国产一区| 欧美美女bb生活片| 国产日韩影视精品| 亚洲va欧美va人人爽午夜| 国内精品久久久久影院色| 色狠狠一区二区三区香蕉| 精品电影一区二区三区| 亚洲精品午夜久久久| 国模一区二区三区白浆| 色8久久精品久久久久久蜜| 精品播放一区二区| 亚洲一区在线观看免费| 国产精品一区二区黑丝| 欧美日韩国产欧美日美国产精品| 2024国产精品视频| 亚洲第一福利一区| 成人激情小说乱人伦| 欧美一卡在线观看| 亚洲乱码日产精品bd| 国产高清不卡一区二区| 欧美乱熟臀69xxxxxx| 亚洲另类中文字| 国产成人亚洲综合a∨婷婷图片| 欧美浪妇xxxx高跟鞋交| 亚洲欧洲日产国产综合网| 精品夜夜嗨av一区二区三区| 欧美中文字幕一区二区三区| 国产精品午夜在线| 国产一区二区看久久| 欧美一级理论性理论a| 亚洲第一在线综合网站| 91丨porny丨蝌蚪视频| 久久精品免视看| 裸体在线国模精品偷拍| 9191国产精品| 亚洲国产日韩综合久久精品| 91免费版在线| 中文字幕日韩av资源站| 成人av在线影院| 欧美激情艳妇裸体舞| 福利一区福利二区| 欧美国产日韩一二三区| 国产精品综合二区| xf在线a精品一区二区视频网站| 秋霞电影一区二区| 欧美一区二区视频在线观看| 日本欧美一区二区| 欧美一区二区三区在线观看|