8250 serial communications manager (QNX Neutrino)
You must be root to start this driver. |
devc-ser8250 [[options] [port[^shift][,intr]]]... & devc-tser8250 [[options] [port[^shift][,intr]]]... &
x86, PowerPC, and MIPS hardware with an 8250-compatible UART
The options are position-dependent and affect the subsequent ports.
The order in which you specify the -E or -e, and -S or -s options matters:
Options | Mode | Software flow control |
---|---|---|
-e | Edited | Enabled |
-S -e | Edited | Enabled |
-e -S | Edited | Disabled |
-E | Raw | Disabled |
-s -E | Raw | Disabled |
-E -s | Raw | Enabled |
...
The default shift is 0.
The devc-ser8250 manager is a small serial device manager for QNX Neutrino. It can support any number of serial ports using 8250s, 14450s or 16550s. Each device can be assigned its own interrupt, or share an interrupt if the hardware supports interrupt sharing. If you don't specify any I/O ports for devices on an x86 system, devc-ser8250 assumes you want to use the standard PC ports of COM1 (3f8,4) and COM2 (2f8,3).
The devc-tser8250 manager is a "tiny" version of devc-ser8250 that's intended for memory-constrained systems. It doesn't support special character editing (e.g. toggling insert mode, special erase characters).
Each device is given a name in the pathname space of /dev/sern, where n starts at 1 (unless changed via the -u option) and increases. If you use the default PC serial ports, this results in:
Device | Port | Interrupt |
---|---|---|
/dev/ser1 | 3f8 | 4 |
/dev/ser2 | 2f8 | 3 |
If your application uses /dev/console,
you should create a link from it to one of
/dev/ser1, /dev/ser2, ... by adding
a line like this to the buildfile used by mkifs:
[type=link] /dev/console = /dev/ser1 |
All devices are fully interrupt driven and by default support standard hardware flow control on input and output (RTS/CTS). This can be disabled by the -F option.
Hardware flow control is not supported in edited mode. |
A read request by default returns when at least 1 character is available. To increase efficiency, you can control three parameters to control when a read is satisfied:
If the Min value is greater than the size of the input buffer, the Min value is clipped to the size of the buffer. To avoid this, the size of the input buffer can be changed with the -I option. |
These parameters are set using library routines (see tcgetattr(), tcsetattr(), readcond() and TimerTimeout() in the Library Reference).
The devc-ser8250 manager supports both raw and edited modes, making it a real tty device.
The following fields and flags are supported in the termios structure:
Field | Supported flags |
---|---|
c_cc | All characters |
c_iflag | BRKINT ICRNL IGNBRK IXON |
c_oflag | OPOST |
c_cflag | CLOCAL CSIZE CSTOPB PARENB PARODD |
c_lflag | ECHO ECHOE ECHOK ECHONL ICANON IEXTEN ISIG NOFLSH |
Start devc-ser8250, defaulting for COM1 and COM2:
devc-ser8250 &
Start devc-ser8250, defaulting for COM1 and COM2, but change baud rate to 38400 from 57600 default:
devc-ser8250 -b 38400 &
Start devc-ser8250 with five ports (the last four preset to 38400 baud):
devc-ser8250 3f8,4 -b 38400 280,3 288,3 290,3 298,3 &
You can specify multiple -F and -f options; they're position-dependent, and affect the next serial port:
devc-ser8250 -F 3f8,4 -f 2f8,3 &
Start devc-ser8250 on an NEC 4111 eval board (MIPS):
devc-ser8250 0x1600ffc0^1,0x80010007 &
Character I/O drivers (devc-*) in the Utilities Summary
Connecting Hardware in the Neutrino User's Guide