您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ uart_getreg函数代码示例

51自学网 2021-06-03 09:04:03
  C++
这篇教程C++ uart_getreg函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中uart_getreg函数的典型用法代码示例。如果您正苦于以下问题:C++ uart_getreg函数的具体用法?C++ uart_getreg怎么用?C++ uart_getreg使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了uart_getreg函数的21个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: msm_putc

static voidmsm_putc(struct uart_bas *bas, int c){	int limit;	/*	 * Write to NO_CHARS_FOR_TX register the number of characters	 * to be transmitted. However, before writing TX_FIFO must	 * be empty as indicated by TX_READY interrupt in IMR register	 */	/*	 * Check if transmit FIFO is empty.	 * If not wait for TX_READY interrupt.	 */	limit = 1000;	if (!(uart_getreg(bas, UART_DM_SR) & UART_DM_SR_TXEMT)) {		while ((uart_getreg(bas, UART_DM_ISR) & UART_DM_TX_READY) == 0		    && --limit)			DELAY(4);	}	/* FIFO is ready, write number of characters to be written */	uart_setreg(bas, UART_DM_NO_CHARS_FOR_TX, 1);	/* Wait till TX FIFO has space */	while ((uart_getreg(bas, UART_DM_SR) & UART_DM_SR_TXRDY) == 0)		DELAY(4);	/* TX FIFO has space. Write char */	SETREG(bas, UART_DM_TF(0), (c & 0xff));}
开发者ID:coyizumi,项目名称:cs111,代码行数:31,


示例2: msm_bus_receive

static intmsm_bus_receive(struct uart_softc *sc){	struct msm_uart_softc *u = (struct msm_uart_softc *)sc;	struct uart_bas *bas;	int c;	bas = &sc->sc_bas;	uart_lock(sc->sc_hwmtx);	/* Initialize Receive Path and interrupt */	SETREG(bas, UART_DM_CR, UART_DM_RESET_STALE_INT);	SETREG(bas, UART_DM_CR, UART_DM_STALE_EVENT_ENABLE);	u->ier |= UART_DM_RXLEV;	SETREG(bas, UART_DM_IMR, u->ier);	/* Loop over until we are full, or no data is available */	while (uart_getreg(bas, UART_DM_SR) & UART_DM_SR_RXRDY) {		if (uart_rx_full(sc)) {			/* No space left in input buffer */			sc->sc_rxbuf[sc->sc_rxput] = UART_STAT_OVERRUN;			break;		}		/* Read RX FIFO */		c = uart_getreg(bas, UART_DM_RF(0));		uart_barrier(bas);		uart_rx_put(sc, c);	}	uart_unlock(sc->sc_hwmtx);	return (0);}
开发者ID:coyizumi,项目名称:cs111,代码行数:35,


示例3: oct16550_delay

static intoct16550_delay (struct uart_bas *bas){	int divisor;	u_char lcr;        static int delay = 0;        if (!delay_changed) return delay;        delay_changed = 0;	lcr = uart_getreg(bas, REG_LCR);	uart_setreg(bas, REG_LCR, lcr | LCR_DLAB);	uart_barrier(bas);	divisor = uart_getreg(bas, REG_DLL) | (uart_getreg(bas, REG_DLH) << 8);	uart_barrier(bas);	uart_setreg(bas, REG_LCR, lcr);	uart_barrier(bas);		if(!bas->rclk)		return 10; /* return an approx delay value */	/* 1/10th the time to transmit 1 character (estimate). */	if (divisor <= 134)		return (16000000 * divisor / bas->rclk);	return (16000 * divisor / (bas->rclk / 1000));}
开发者ID:JabirTech,项目名称:Source,代码行数:26,


示例4: mtk_uart_putc

static voidmtk_uart_putc(struct uart_bas *bas, int c){	char chr;	if (!uart_output) return;	chr = c;	while (!(uart_getreg(bas, UART_LSR_REG) & UART_LSR_THRE));	uart_setreg(bas, UART_TX_REG, c);	uart_barrier(bas);	while (!(uart_getreg(bas, UART_LSR_REG) & UART_LSR_THRE));}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:11,


示例5: adm5120_uart_putc

static voidadm5120_uart_putc(struct uart_bas *bas, int c){	char chr;	chr = c;	while (uart_getreg(bas, UART_FR_REG) & UART_FR_TX_FIFO_FULL)		;	uart_setreg(bas, UART_DR_REG, c);	while (uart_getreg(bas, UART_FR_REG) & UART_FR_BUSY)		;	uart_barrier(bas);}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:12,


示例6: mtk_uart_rxready

static intmtk_uart_rxready(struct uart_bas *bas){	if (uart_getreg(bas, UART_LSR_REG) & UART_LSR_DR)		return (1);	return (0);}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:7,


示例7: exynos4210_rxready

static intexynos4210_rxready(struct uart_bas *bas){	return ((uart_getreg(bas, SSCOM_UTRSTAT) & UTRSTAT_RXREADY) ==	    UTRSTAT_RXREADY);}
开发者ID:2asoft,项目名称:freebsd,代码行数:7,


示例8: uart_getmreg

static __inline uint8_tuart_getmreg(struct uart_bas *bas, int reg){	uart_setreg(bas, REG_CTRL, reg);	uart_barrier(bas);	return (uart_getreg(bas, REG_CTRL));}
开发者ID:edgar-pek,项目名称:PerspicuOS,代码行数:8,


示例9: msm_rxready

static intmsm_rxready(struct uart_bas *bas){	/* Wait for a character to come ready */	return ((uart_getreg(bas, UART_DM_SR) & UART_DM_SR_RXRDY) ==	    UART_DM_SR_RXRDY);}
开发者ID:coyizumi,项目名称:cs111,代码行数:8,


示例10: adm5120_uart_rxready

static intadm5120_uart_rxready(struct uart_bas *bas){	if (uart_getreg(bas, UART_FR_REG) & UART_FR_RX_FIFO_EMPTY)		return (0);	return (1);}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:8,


示例11: sa1110_getc

static intsa1110_getc(struct uart_bas *bas, struct mtx *mtx){	int c;	while (!(uart_getreg(bas, SACOM_SR1) & SR1_RNE)) {		u_int32_t sr0;		sr0 = uart_getreg(bas, SACOM_SR0);		if (ISSET(sr0, SR0_RBB))			uart_setreg(bas, SACOM_SR0, SR0_RBB);		if (ISSET(sr0, SR0_REB))			uart_setreg(bas, SACOM_SR0, SR0_REB);	}	c = uart_getreg(bas, SACOM_DR);	c &= 0xff;	return (c);}
开发者ID:edgar-pek,项目名称:PerspicuOS,代码行数:18,


示例12: adm5120_uart_getc

static intadm5120_uart_getc(struct uart_bas *bas, struct mtx *hwmtx){	int c;	uart_lock(hwmtx);	while (uart_getreg(bas, UART_FR_REG) & UART_FR_RX_FIFO_EMPTY) {		uart_unlock(hwmtx);		DELAY(10);		uart_lock(hwmtx);	}	c = uart_getreg(bas, UART_DR_REG);	uart_unlock(hwmtx);	return (c);}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:19,


示例13: mtk_uart_getc

static intmtk_uart_getc(struct uart_bas *bas, struct mtx *hwmtx){	int c;	uart_lock(hwmtx);	while (!(uart_getreg(bas, UART_LSR_REG) & UART_LSR_DR)) {		uart_unlock(hwmtx);		DELAY(10);		uart_lock(hwmtx);	}	c = uart_getreg(bas, UART_RX_REG);	uart_unlock(hwmtx);	return (c);}
开发者ID:hmatyschok,项目名称:MeshBSD,代码行数:19,


示例14: rt305x_uart_rxready

static intrt305x_uart_rxready(struct uart_bas *bas){#ifdef notyet	if (uart_getreg(bas, UART_LSR_REG) & UART_LSR_DR)		return (1);	return (0);#else	return (1);#endif}
开发者ID:ChaosJohn,项目名称:freebsd,代码行数:12,


示例15: sa1110_bus_receive

static intsa1110_bus_receive(struct uart_softc *sc){	#if 0	while (!(uart_getreg(&sc->sc_bas, SACOM_SR1) & SR1_RNE)) {		u_int32_t sr0;		sr0 = uart_getreg(&sc->sc_bas, SACOM_SR0);		if (ISSET(sr0, SR0_RBB))			uart_setreg(&sc->sc_bas, SACOM_SR0, SR0_RBB);		if (ISSET(sr0, SR0_REB))			uart_setreg(&sc->sc_bas, SACOM_SR0, SR0_REB);	}#endif		uart_setreg(&sc->sc_bas, SACOM_CR3, uart_getreg(&sc->sc_bas, SACOM_CR3)	    | CR3_RIE);	uart_rx_put(sc, uart_getreg(&sc->sc_bas, SACOM_DR));	return (0);}
开发者ID:edgar-pek,项目名称:PerspicuOS,代码行数:21,


示例16: exynos4210_bus_receive

static intexynos4210_bus_receive(struct uart_softc *sc){	struct uart_bas *bas;	bas = &sc->sc_bas;	while (bus_space_read_4(bas->bst, bas->bsh,		SSCOM_UFSTAT) & UFSTAT_RXCOUNT)		uart_rx_put(sc, uart_getreg(&sc->sc_bas, SSCOM_URXH));	return (0);}
开发者ID:2asoft,项目名称:freebsd,代码行数:12,


示例17: sa1110_bus_transmit

static intsa1110_bus_transmit(struct uart_softc *sc){	int i;#if 0	int sr = uart_getreg(&sc->sc_bas, SACOM_SR0);	while (!(uart_getreg(&sc->sc_bas, SACOM_CR3) & CR3_TIE))		uart_setreg(&sc->sc_bas, SACOM_CR3,		    uart_getreg(&sc->sc_bas, SACOM_CR3) | CR3_TIE);    #endif	sc->sc_txbusy = 1;	uart_setreg(&sc->sc_bas, SACOM_CR3, uart_getreg(&sc->sc_bas, SACOM_CR3)	    | CR3_TIE);    	for (i = 0; i < sc->sc_txdatasz; i++) {		while (!(uart_getreg(&sc->sc_bas, SACOM_SR1) & SR1_TNF));		uart_setreg(&sc->sc_bas, SACOM_DR, sc->sc_txbuf[i]);		uart_barrier(&sc->sc_bas);	}#if 0	sr = uart_getreg(&sc->sc_bas, SACOM_SR0);#endif	return (0);}
开发者ID:edgar-pek,项目名称:PerspicuOS,代码行数:27,


示例18: msm_getc

static intmsm_getc(struct uart_bas *bas, struct mtx *mtx){	int c;	uart_lock(mtx);	/* Wait for a character to come ready */	while ((uart_getreg(bas, UART_DM_SR) & UART_DM_SR_RXRDY) !=	    UART_DM_SR_RXRDY)		DELAY(4);	/* Check for Overrun error. If so reset Error Status */	if (uart_getreg(bas, UART_DM_SR) & UART_DM_SR_UART_OVERRUN)		uart_setreg(bas, UART_DM_CR, UART_DM_RESET_ERROR_STATUS);	/* Read char */	c = uart_getreg(bas, UART_DM_RF(0));	uart_unlock(mtx);	return (c);}
开发者ID:coyizumi,项目名称:cs111,代码行数:23,


示例19: sa1110_init

static voidsa1110_init(struct uart_bas *bas, int baudrate, int databits, int stopbits,    int parity){	int brd;		if (bas->rclk == 0)		bas->rclk = DEFAULT_RCLK;	while (uart_getreg(bas, SACOM_SR1) & SR1_TBY);	uart_setreg(bas, SACOM_CR3, 0);	brd = SACOMSPEED(baudrate);	uart_setreg(bas, SACOM_CR1, brd >> 8);	uart_setreg(bas, SACOM_CR2, brd & 0xff);	uart_setreg(bas, SACOM_CR3, CR3_RXE | CR3_TXE);}
开发者ID:edgar-pek,项目名称:PerspicuOS,代码行数:15,


示例20: ti8250_bus_probe

static intti8250_bus_probe(struct uart_softc *sc){	int status;	int devid;	clk_ident_t clkid;	pcell_t prop;	phandle_t node;	/*	 * Get the device id from FDT.  If it's not there we can't turn on the	 * right clocks, so bail, unless we're doing unit 0.  We assume that's	 * the serial console, whose clock isn't controllable anyway, and we	 * sure don't want to break the console because of a config error.	 */	node = ofw_bus_get_node(sc->sc_dev);	if ((OF_getprop(node, "uart-device-id", &prop, sizeof(prop))) <= 0) {		device_printf(sc->sc_dev, 		    "missing uart-device-id attribute in FDT/n");		if (device_get_unit(sc->sc_dev) != 0)			return (ENXIO);		devid = 0;	} else		devid = fdt32_to_cpu(prop);	/* Enable clocks for this device.  We can't continue if that fails.  */	clkid = UART0_CLK + devid;	if ((status = ti_prcm_clk_enable(clkid)) != 0)		return (status);	/*	 * Set the hardware to disabled mode, do a full device reset, then set	 * it to uart mode.  Most devices will be reset-and-disabled already,	 * but you never know what a bootloader might have done.	 */	uart_setreg(&sc->sc_bas, MDR1_REG, MDR1_MODE_DISABLE);	uart_setreg(&sc->sc_bas, SYSCC_REG, SYSCC_SOFTRESET);	while (uart_getreg(&sc->sc_bas, SYSS_REG) & SYSS_STATUS_RESETDONE)		continue;	uart_setreg(&sc->sc_bas, MDR1_REG, MDR1_MODE_UART);	status = ns8250_bus_probe(sc); 	if (status == 0)		device_set_desc(sc->sc_dev, "TI UART (16550 compatible)");	return (status);}
开发者ID:ele7enxxh,项目名称:dtrace-pf,代码行数:47,


示例21: jz4780_bus_attach

static intjz4780_bus_attach(struct uart_softc *sc){    struct ns8250_softc *ns8250;    struct uart_bas *bas;    int rv;    ns8250 = (struct ns8250_softc *)sc;    bas = &sc->sc_bas;    rv = ns8250_bus_attach(sc);    if (rv != 0)        return (0);    /* Configure uart to use extra IER_RXTMOUT bit */    ns8250->ier_rxbits = IER_RXTMOUT | IER_EMSC | IER_ERLS | IER_ERXRDY;    ns8250->ier_mask = ~(ns8250->ier_rxbits);    ns8250->ier = uart_getreg(bas, REG_IER) & ns8250->ier_mask;    ns8250->ier |= ns8250->ier_rxbits;    uart_setreg(bas, REG_IER, ns8250->ier);    uart_barrier(bas);    return (0);}
开发者ID:kwitaszczyk,项目名称:freebsd,代码行数:23,



注:本文中的uart_getreg函数示例整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


C++ uart_handle_break函数代码示例
C++ uart_getchar函数代码示例
万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。