On Mon, 17 Oct 2016 15:28:45 -0700, John R. Hogerhuis wrote:
Well android is Linux so that figures.
The problem with the Linux driver is that it follows the standard Unix
driver (which is not typical for Linux, but here we are). Software
control schedules a software interrupt, which can have considerable
latency before it is processed (typically 100HZ?). Hardware flow
is handled by the UART (or UART like device), so it gets processed
immediately, which is why it's so much more effective.
Or serious surgery on the Linux serial port driver :-).
I had this issue when doing 9 bit serial I/O (needed for comms with
certain equipment) on FreeBSD. The 9 bit hack for traditional UARTs is
done by manipulating parity generation with each byte write to get the
desired state for the 9th bit, but because parity generation was
"scheduled" in the top half of the drivers the configuration changes
were being delivered in bursts, rather than with each character sent.
I ended up having to hack the driver to get it to do what I want.
Handcrafted Computers Pty. Ltd.