⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 serial.c

📁 gec2410上的u-boot-1.2.0源码
💻 C
字号:
/* *     Author: Xilinx, Inc. * * *     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. * * *     XILINX IS PROVIDING THIS DESIGN, CODE, OR INFORMATION "AS IS" AS A *     COURTESY TO YOU. BY PROVIDING THIS DESIGN, CODE, OR INFORMATION AS *     ONE POSSIBLE IMPLEMENTATION OF THIS FEATURE, APPLICATION OR STANDARD, *     XILINX IS MAKING NO REPRESENTATION THAT THIS IMPLEMENTATION IS FREE *     FROM ANY CLAIMS OF INFRINGEMENT, AND YOU ARE RESPONSIBLE FOR OBTAINING *     ANY THIRD PARTY RIGHTS YOU MAY REQUIRE FOR YOUR IMPLEMENTATION. *     XILINX EXPRESSLY DISCLAIMS ANY WARRANTY WHATSOEVER WITH RESPECT TO *     THE ADEQUACY OF THE IMPLEMENTATION, INCLUDING BUT NOT LIMITED TO ANY *     WARRANTIES OR REPRESENTATIONS THAT THIS IMPLEMENTATION IS FREE FROM *     CLAIMS OF INFRINGEMENT, IMPLIED WARRANTIES OF MERCHANTABILITY AND *     FITNESS FOR A PARTICULAR PURPOSE. * * *     Xilinx hardware products are not intended for use in life support *     appliances, devices, or systems. Use in such applications is *     expressly prohibited. * * *     (c) Copyright 2002-2004 Xilinx Inc. *     All rights reserved. * * *     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., *     675 Mass Ave, Cambridge, MA 02139, USA. * */#include <asm/u-boot.h>#include <asm/processor.h>#include <common.h>#include <command.h>#include <configs/ml300.h>#include "xparameters.h"DECLARE_GLOBAL_DATA_PTR;#define USE_CHAN1 \	((defined XPAR_UARTNS550_0_BASEADDR) && (defined CFG_INIT_CHAN1))#define USE_CHAN2 \	((defined XPAR_UARTNS550_1_BASEADDR) && (defined CFG_INIT_CHAN2))#if USE_CHAN1#include <ns16550.h>#endif#if USE_CHAN1const NS16550_t COM_PORTS[] = { (NS16550_t) (XPAR_UARTNS550_0_BASEADDR + 3)#if USE_CHAN2	    , (NS16550_t) (XPAR_UARTNS550_1_BASEADDR + 3)#endif};#endifintserial_init(void){#if USE_CHAN1	int clock_divisor;	clock_divisor = XPAR_UARTNS550_0_CLOCK_FREQ_HZ / 16 / gd->baudrate;	(void) NS16550_init(COM_PORTS[0], clock_divisor);#if USE_CHAN2	clock_divisor = XPAR_UARTNS550_1_CLOCK_FREQ_HZ / 16 / gd->baudrate;	(void) NS16550_init(COM_PORTS[1], clock_divisor);#endif#endif	return 0;}voidserial_putc(const char c){	if (c == '\n')		NS16550_putc(COM_PORTS[CFG_DUART_CHAN], '\r');	NS16550_putc(COM_PORTS[CFG_DUART_CHAN], c);}intserial_getc(void){	return NS16550_getc(COM_PORTS[CFG_DUART_CHAN]);}intserial_tstc(void){	return NS16550_tstc(COM_PORTS[CFG_DUART_CHAN]);}voidserial_setbrg(void){#if USE_CHAN1	int clock_divisor;	clock_divisor = XPAR_UARTNS550_0_CLOCK_FREQ_HZ / 16 / gd->baudrate;	NS16550_reinit(COM_PORTS[0], clock_divisor);#if USE_CHAN2	clock_divisor = XPAR_UARTNS550_1_CLOCK_FREQ_HZ / 16 / gd->baudrate;	NS16550_reinit(COM_PORTS[1], clock_divisor);#endif#endif}voidserial_puts(const char *s){	while (*s) {		serial_putc(*s++);	}}#if (CONFIG_COMMANDS & CFG_CMD_KGDB)voidkgdb_serial_init(void){}voidputDebugChar(int c){	serial_putc(c);}voidputDebugStr(const char *str){	serial_puts(str);}intgetDebugChar(void){	return serial_getc();}voidkgdb_interruptible(int yes){	return;}#endif				/* CFG_CMD_KGDB */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -