コード例 #1
0
ファイル: h3600_micro.c プロジェクト: ManiacTwister/linux-hnd
static void h3600_micro_rx_chars( void )
{
	unsigned int status, ch;

	while ( (status = Ser1UTSR1) & UTSR1_RNE ) {
		ch = Ser1UTDR;
		g_statistics.rx++;

		if ( status & UTSR1_PRE ) { /* Parity error */
			g_statistics.parity++;
		} else 	if ( status & UTSR1_FRE ) { /* Framing error */
			g_statistics.frame++;
		} else {
			if ( status & UTSR1_ROR )   /* Overrun error */
				g_statistics.overrun++;
			
			h3600_micro_process_char( ch );
		}
	}
}
コード例 #2
0
static void h3600_micro_rx_chars( void )
{
	unsigned int status, ch;

	while ( (status = Ser1UTSR1) & UTSR1_RNE ) {
		ch = Ser1UTDR;
		/*statistics.rx++;*/
		if ( status & UTSR1_PRE ) { /* Parity error */
			printk(KERN_ERR "h3600_micro_rx : parity error\n");
			/*statistics.parity++;*/
		} else 	if ( status & UTSR1_FRE ) { /* Framing error */
			printk(KERN_ERR "h3600_micro_rx : framing error\n");
			/*statistics.frame++;*/
		} else {
			if ( status & UTSR1_ROR ) {  /* Overrun error */
				printk(KERN_ERR "h3600_micro_rx : overrun error\n");
				/*statistics.overrun++;*/
			}
			h3600_micro_process_char(ch);
		}
	}
}