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

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專(zhuān)輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? ns9750_serial.c

?? UBOOT 源碼
?? C
字號(hào):
/*********************************************************************** * * Copyright (C) 2004 by FS Forth-Systeme GmbH. * All rights reserved. * * $Id: ns9750_serial.c,v 1.1 2004/02/16 10:37:20 mpietrek Exp $ * @Author: Markus Pietrek * @Descr: Serial driver for the NS9750. Only one UART is supported yet. * @References: [1] NS9750 Hardware Reference/December 2003 * @TODO: Implement Character GAP Timer when chip is fixed for PLL bypass * * 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 CFG_NS9750_UART#include "ns9750_bbus.h"	/* for GPIOs */#include "ns9750_ser.h"		/* for serial configuration */DECLARE_GLOBAL_DATA_PTR;#if !defined(CONFIG_CONS_INDEX)#error "No console index specified."#endif#define CONSOLE CONFIG_CONS_INDEXstatic unsigned int calcBitrateRegister( void );static unsigned int calcRxCharGapRegister( void );static char cCharsAvailable; /* Numbers of chars in unCharCache */static unsigned int unCharCache; /* unCharCache is only valid if				  * cCharsAvailable > 0 *//*********************************************************************** * @Function: serial_init * @Return: 0 * @Descr: configures GPIOs and UART. Requires BBUS Master Reset turned off ***********************************************************************/int serial_init( void ){	unsigned int aunGPIOTxD[] = { 0, 8, 40, 44 };	unsigned int aunGPIORxD[] = { 1, 9, 41, 45 };	cCharsAvailable = 0;	/* configure TxD and RxD pins for their special function */	set_gpio_cfg_reg_val( aunGPIOTxD[ CONSOLE ],			      NS9750_GPIO_CFG_FUNC_0 | NS9750_GPIO_CFG_OUTPUT );	set_gpio_cfg_reg_val( aunGPIORxD[ CONSOLE ],			      NS9750_GPIO_CFG_FUNC_0 | NS9750_GPIO_CFG_INPUT );	/* configure serial engine */	*get_ser_reg_addr_channel( NS9750_SER_CTRL_A, CONSOLE ) =		NS9750_SER_CTRL_A_CE |		NS9750_SER_CTRL_A_STOP |		NS9750_SER_CTRL_A_WLS_8;	serial_setbrg();	*get_ser_reg_addr_channel( NS9750_SER_CTRL_B, CONSOLE ) =		NS9750_SER_CTRL_B_RCGT;	return 0;}/*********************************************************************** * @Function: serial_putc * @Return: n/a * @Descr: writes one character to the FIFO. Blocks until FIFO is not full ***********************************************************************/void serial_putc( const char c ){	if (c == '\n')		serial_putc( '\r' );	while (!(*get_ser_reg_addr_channel( NS9750_SER_STAT_A, CONSOLE) &		 NS9750_SER_STAT_A_TRDY ) ) {		/* do nothing, wait for characters in FIFO sent */	}	*(volatile char*) get_ser_reg_addr_channel( NS9750_SER_FIFO,						    CONSOLE) = c;}/*********************************************************************** * @Function: serial_puts * @Return: n/a * @Descr: writes non-zero string to the FIFO. ***********************************************************************/void serial_puts( const char *s ){	while (*s) {		serial_putc( *s++ );	}}/*********************************************************************** * @Function: serial_getc * @Return: the character read * @Descr: performs only 8bit accesses to the FIFO. No error handling ***********************************************************************/int serial_getc( void ){	int i;	while (!serial_tstc() ) {		/* do nothing, wait for incoming characters */	}	/*  at least one character in unCharCache */	i = (int) (unCharCache & 0xff);	unCharCache >>= 8;	cCharsAvailable--;	return i;}/*********************************************************************** * @Function: serial_tstc * @Return: 0 if no input available, otherwise != 0 * @Descr: checks for incoming FIFO not empty. Stores the incoming chars in *	   unCharCache and the numbers of characters in cCharsAvailable ***********************************************************************/int serial_tstc( void ){	unsigned int unRegCache;	if ( cCharsAvailable )		return 1;	unRegCache = *get_ser_reg_addr_channel( NS9750_SER_STAT_A,CONSOLE );	if( unRegCache & NS9750_SER_STAT_A_RBC ) {		*get_ser_reg_addr_channel( NS9750_SER_STAT_A, CONSOLE ) =			NS9750_SER_STAT_A_RBC;		unRegCache = *get_ser_reg_addr_channel( NS9750_SER_STAT_A,							CONSOLE );	}	if ( unRegCache & NS9750_SER_STAT_A_RRDY ) {		cCharsAvailable = (unRegCache & NS9750_SER_STAT_A_RXFDB_MA)>>20;		if ( !cCharsAvailable )			cCharsAvailable = 4;		unCharCache = *get_ser_reg_addr_channel( NS9750_SER_FIFO,							 CONSOLE );		return 1;	}	/* no chars available */	return 0;}void serial_setbrg( void ){	*get_ser_reg_addr_channel( NS9750_SER_BITRATE, CONSOLE ) =		calcBitrateRegister();	*get_ser_reg_addr_channel( NS9750_SER_RX_CHAR_TIMER, CONSOLE ) =		calcRxCharGapRegister();}/*********************************************************************** * @Function: calcBitrateRegister * @Return: value for the serial bitrate register * @Descr: register value depends on clock frequency and baudrate ***********************************************************************/static unsigned int calcBitrateRegister( void ){	return ( NS9750_SER_BITRATE_EBIT |		 NS9750_SER_BITRATE_CLKMUX_BCLK |		 NS9750_SER_BITRATE_TMODE |		 NS9750_SER_BITRATE_TCDR_16 |		 NS9750_SER_BITRATE_RCDR_16 |		 ( ( ( ( CONFIG_SYS_CLK_FREQ / 8 ) / /* BBUS clock,[1] Fig. 38 */		       ( gd->baudrate * 16 ) ) - 1 ) &		   NS9750_SER_BITRATE_N_MA ) );}/*********************************************************************** * @Function: calcRxCharGapRegister * @Return: value for the character gap timer register * @Descr: register value depends on clock frequency and baudrate. Currently 0 *	   is used as there is a bug with the gap timer in PLL bypass mode. ***********************************************************************/static unsigned int calcRxCharGapRegister( void ){	return NS9750_SER_RX_CHAR_TIMER_TRUN;}#endif /* CFG_NS9750_UART */

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
在线91免费看| 国产精品久久久久久户外露出| 国产传媒欧美日韩成人| 亚洲一区二区三区精品在线| 国产亚洲综合在线| 欧美区一区二区三区| 不卡一二三区首页| 国内成人自拍视频| 天天免费综合色| 亚洲欧洲制服丝袜| 国产精品亲子乱子伦xxxx裸| 日韩一区二区三区在线观看| 在线免费观看日本一区| 国产成人精品一区二| 久久精品国产网站| 亚洲成av人片www| 一区二区不卡在线播放| 国产精品国产自产拍高清av | 色偷偷88欧美精品久久久| 精品一二线国产| 日韩精品五月天| 亚洲国产欧美日韩另类综合 | 成人在线视频一区二区| 久久国产日韩欧美精品| 免费人成精品欧美精品| 亚洲在线视频网站| 亚洲与欧洲av电影| 亚洲一区二区三区四区五区中文| 《视频一区视频二区| 国产精品无人区| 欧美国产综合色视频| 国产亚洲精品免费| 欧美激情资源网| 国产日韩欧美高清在线| 精品久久五月天| 久久先锋影音av鲁色资源| 精品国一区二区三区| 日韩美女在线视频| 精品日产卡一卡二卡麻豆| 欧美一区二区三区在| 337p亚洲精品色噜噜狠狠| 精品1区2区3区| 欧美久久久久免费| 欧美一区二区三区小说| 欧美一区二区三区喷汁尤物| 欧美视频日韩视频| 在线综合亚洲欧美在线视频| 欧美一区2区视频在线观看| 日韩一区二区三区高清免费看看| 欧美xxxx老人做受| 久久久久亚洲蜜桃| 国产精品久久一级| 洋洋成人永久网站入口| 亚洲成人激情社区| 久久电影网电视剧免费观看| 韩国一区二区三区| 黄色小说综合网站| 国产91精品一区二区麻豆网站 | 午夜精品在线视频一区| 日韩高清一区在线| 国产美女主播视频一区| 成人午夜视频在线观看| 一本到三区不卡视频| 在线成人av网站| 久久婷婷综合激情| 亚洲乱码精品一二三四区日韩在线| 一区二区成人在线视频| 久久99国产精品久久| 成人免费视频视频在线观看免费| 色欧美片视频在线观看在线视频| 欧美日韩国产成人在线91| 久久婷婷色综合| 樱花草国产18久久久久| 蜜臂av日日欢夜夜爽一区| 成人三级在线视频| 欧美猛男gaygay网站| 欧美成人福利视频| 最新不卡av在线| 日本三级韩国三级欧美三级| 成人精品一区二区三区中文字幕| 欧美天堂一区二区三区| 久久人人97超碰com| 亚洲人吸女人奶水| 激情国产一区二区| 在线观看日韩电影| 国产午夜精品一区二区三区视频| 亚洲美女免费在线| 国产精品99久久久久久似苏梦涵 | 911国产精品| 欧美极品美女视频| 免费观看一级特黄欧美大片| 北岛玲一区二区三区四区| 欧美一区二区在线观看| 国产精品久久影院| 青青草91视频| 色综合婷婷久久| 久久伊99综合婷婷久久伊| 亚洲成人综合视频| 91美女视频网站| 久久久久免费观看| 日韩精品91亚洲二区在线观看| 丁香一区二区三区| 26uuuu精品一区二区| 午夜影院在线观看欧美| 96av麻豆蜜桃一区二区| 国产日本欧洲亚洲| 蜜臀91精品一区二区三区 | 91成人看片片| 欧美激情综合网| 国产综合久久久久久久久久久久 | 国产日韩综合av| 免费观看在线色综合| 欧美日韩在线亚洲一区蜜芽| 亚洲丝袜制服诱惑| 丰满白嫩尤物一区二区| 欧美高清精品3d| 亚洲一区在线播放| 色婷婷综合五月| 亚洲摸摸操操av| 成人免费视频视频| 欧美成人精品1314www| 亚洲不卡av一区二区三区| 色呦呦网站一区| 一区二区激情小说| 欧美在线免费观看亚洲| 亚洲精品中文在线| 色呦呦日韩精品| 一区二区在线观看视频| 色综合中文字幕国产 | 亚洲国产视频网站| 欧美午夜在线观看| 性做久久久久久免费观看| 欧美在线观看视频一区二区| 一区二区三区免费| 欧美日韩亚洲综合在线| 亚洲国产视频一区二区| 欧美高清激情brazzers| 奇米一区二区三区| 欧美tickling挠脚心丨vk| 久久er精品视频| 久久网这里都是精品| 国产成人丝袜美腿| 中文字幕亚洲成人| 在线视频一区二区三| 夜夜嗨av一区二区三区| 欧美美女网站色| 精品一二线国产| 亚洲国产精品黑人久久久| 99久久免费视频.com| 亚洲一区中文日韩| 91精品国产麻豆国产自产在线 | 中文字幕电影一区| caoporen国产精品视频| 夜夜揉揉日日人人青青一国产精品| 欧美三级韩国三级日本三斤 | 国内久久婷婷综合| 中文字幕免费在线观看视频一区| www.亚洲色图| 亚洲午夜精品一区二区三区他趣| 51精品视频一区二区三区| 久久国产夜色精品鲁鲁99| 欧美高清在线一区| 欧美日韩黄色影视| 国产一区在线精品| 亚洲欧美日本在线| 日韩三级免费观看| 国产高清精品久久久久| 中文字幕综合网| 在线不卡中文字幕播放| 国产成人精品免费在线| 亚洲综合视频在线| 精品久久久久久久久久久久久久久久久| 国产精品99久久久久久有的能看| 亚洲日本va午夜在线电影| 欧美美女网站色| 成人国产精品免费观看视频| 亚洲国产va精品久久久不卡综合| 26uuu色噜噜精品一区| 91一区二区三区在线观看| 麻豆专区一区二区三区四区五区| 国产精品久久精品日日| 日韩视频免费观看高清在线视频| 99久久久国产精品免费蜜臀| 免费在线观看一区| 亚洲六月丁香色婷婷综合久久| 精品国产亚洲在线| 欧美性三三影院| 成人黄色小视频| 美腿丝袜亚洲三区| 亚洲同性同志一二三专区| 精品欧美黑人一区二区三区| 色噜噜偷拍精品综合在线| 精品一区二区三区在线播放 | 91啪亚洲精品| 久久国产乱子精品免费女| 亚洲一区二区视频| 国产精品视频在线看| 日韩欧美不卡一区| 欧美精品久久久久久久多人混战| 成人在线视频一区|