ccj at acm.org
Sun Jun 4 02:12:27 UTC 2000
Joel Sherrill wrote:
> Eric Norum wrote:
> > Now, where's the bug? Should the smc1Initialize abide by the termios
> > speed? Probably. But then how would anyone get a power-up serial line
> > rate of anything other than 9600 baud? I'd say that there's some
> > configuration information missing on startup -- but where to put it?
> This is a hardware problem to solve in a general way. Baud rate is
> but one termios harware setting (character size, parity, stop bits)
> even if one ignores the logical settings. This makes me lean to
> being able to override the entire default termios settings.
> But then there is the issue of default on a port per port basis.
> In many systems, there are more than more serial port. I hate
> to create a solution for /dev/console and nothing else.
> Maybe termios_open should ask the device driver for its initial
> hardware oriented settings for that port with a new termios handler.
> If the handler is NULL, then use 9600-8N1.
Is this really needed ?
If I am going to use a termios port I will make sure my code initialises
every parameter I need set. What if I rely on a parameter and the
default changes ?
The console is the only termios port opened by RTEMS and for which the
issue exists. The first thing I do in my BSP code is :
* Make the stdin stream baud rate what we expect as a default.
if (tcgetattr (STDIN_FILENO, &term) < 0)
printf ("rtems-target-init: cannot get terminal attributes.\n");
* Set the datasize and baudrate. Should do the lot at some stage.
term.c_cflag &= ~(CSIZE | CBAUD);
term.c_cflag |= CS8 | B19200;
if (tcsetattr (STDIN_FILENO, TCSANOW, &term) < 0)
printf ("rtems-target-init: cannot set terminal attributes.\n");
It is simple and standard.
Chris Johns, mailto:ccj at acm.org
More information about the users