Hello,
Please help me on following case:
FreeBSD 8.2-STABLE, kernel and world build from cvs RELENG_8.
Kernel options:
PC has installed hardware - motherboard serial port, multiport board based on Oxford chip, FTDI FT232BM usb serial port.
Problem: when I use FTDI port, it works very slow - opening, setting parameters, especially writing. Motherboard serial port and Oxford work fine.
My serial port code based on this manual.
Here parts of code I'm using:
So, the time between write and return from tcdrain is about 700ms! And this time doesn't depend on baudrate or number of written bytes.
Please help me on following case:
FreeBSD 8.2-STABLE, kernel and world build from cvs RELENG_8.
Kernel options:
Code:
device uftdi
device ucom
device uart
device puc
PC has installed hardware - motherboard serial port, multiport board based on Oxford chip, FTDI FT232BM usb serial port.
Problem: when I use FTDI port, it works very slow - opening, setting parameters, especially writing. Motherboard serial port and Oxford work fine.
My serial port code based on this manual.
Here parts of code I'm using:
Code:
...
//open serial device
fdCOM = open (port, O_RDWR | O_NOCTTY | O_NONBLOCK);
....
//set params, flush buf
tcgetattr (fdCOM, &oldtioA);
bzero (&newtioA, sizeof (newtioA));
newtioA.c_cflag = CS8 | CLOCAL | CREAD;
newtioA.c_iflag = IGNPAR;
newtioA.c_oflag = 0;
newtioA.c_lflag = 0;
newtioA.c_cc[VTIME] = 0;
newtioA.c_cc[VMIN] = 1;
cfsetispeed (&newtioA, BAUDRATE);
cfsetospeed (&newtioA, BAUDRATE);
tcsetattr (fdCOM, TCSANOW, &newtioA);
tcflush (fdCOM, TCIFLUSH);
...
//writing
write(fdCOM, buf, 4);
tcdrain(fdCOM);
So, the time between write and return from tcdrain is about 700ms! And this time doesn't depend on baudrate or number of written bytes.