PC <->Leon3 serial communication
    Chris Johns 
    chrisj at rtems.org
       
    Mon Mar 20 11:38:37 UTC 2006
    
    
  
Luca Germano wrote:
> 
> seems that the leon3 bsp does not support to configure the UART with the 
> termios interface. I don't know if this means that also the termios 
> supports raw mode for data isd not supported.
The raw mode is handled in the termios code above the driver.
> The problem is that RTEMS for Leon3 mapp all the stdio on UART port. Can 
> you tell me what termios functions handle the raw data mode?? I can test 
> them. Thanks
The details are described here:
  http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap11.html
This code is typed in here and has not been compiled.
Regards
Chris
int tty_raw (const char* tty, int baudrate, int use_handshakes)
{
   struct termios term;
   int fd = open (tty, O_RDWR);
   if (fd < 0)
   {
     fprintf (stderr, "tty: open failed: %s\n", strerror (errno));
     return -1;
   if (tcgetattr (fd, &term) < 0)
   {
     fprintf (stderr, "tty: tcgetattr failed: %s\n", strerror (errno));
     close (fd);
     return -1;
   }
   /* No echo, no canonical processing, no extended processing,
    * signal characters off. */
   term.c_lflag &= ~(ECHO | ICANON | IEXTEN | ISIG);
   /* 8 bits, enable receiver */
   term.c_cflag = (CS8 | CREAD);
   /* Do we want to use handshake signals or not. */
   if (use_handshakes)
     term.c_cflag |= CLOCAL;
   else
     term.c_cflag |= CRTSCTS;
   /* Turn off output processing. */
   term.c_oflag &= ~OPOST;
   /* Ignore breaks. */
   term.c_iflag =  IGNBRK;
   /* Output flags */
   term.c_oflag = ONOCR;
   /* Set the interbyte timeout for receiving data. */
   term.c_cc[VMIN] = 64;
   term.c_cc[VTIME] = 1;
   cfsetispeed (&term, baudrate);
   cfsetospeed (&term, baudrate);
   if (tcsetattr (fd, TCSANOW, &term) < 0)
   {
     fprintf (stderr, "tty: tcsetattr failed: %s\n", strerror (errno));
     close (fd);
     return -1;
   }
   return fd;
}
    
    
More information about the users
mailing list