problem with termios

阎淼 yanmiaobest at gmail.com
Tue Jul 1 15:07:11 UTC 2008


Hi,
  I am debugging my program using gdb downloaded from here:
  http://www.slac.stanford.edu/~strauman/rtems/gdb/index.html

  I connected gdb through /dev/console, baud rate is 9600. I found
that termios rawInBuf always overflow, when gdb sending data to rtems,
I print out the following message:

  termios recv buffer overflow! 1 chars dropped
  termios recv buffer overflow! 1 chars dropped
  termios recv buffer overflow! 32 chars dropped
  termios recv buffer overflow! 1 chars dropped
 ......

  I increased rtems_termios_raw_input_size to 163840 (160 KB), still
it overflows!!

  Following is part of serial driver code:

    /* rx interrupt */
    else if((isrStatus == IIR_RDA) || (isrStatus == IIR_TIMEOUT))
    {
	i = 0;
        do
        {
            ST16552_REG_READ(uart_data[0], RBR, ch);
	    buf[i++] = ch;
            ST16552_REG_READ(uart_data[0], LSR, pollStatus);

        } while ((i < 32) && ((pollStatus & LSR_DR) != 0));

	if ((dropped = rtems_termios_enqueue_raw_characters(uart_data->tty,
buf, i)) > 0)
	   printk("termios recv buffer overflow! %d chars dropped\n", dropped);
    }



More information about the users mailing list