Re: Linux serial port dropping bytes



CBFalconer wrote:
<snip>
I left the whole thing unsnipped. The time has come for me to
crave forgiveness. I think I have been afflicted with age or
something. The bits/persec crowd are absolutely correct, and I am
wrong.


I don't think you need forgiveness - you just made a mistake.

So that leaves the real problem handling throughput of
approximately 1 char each 10 microsec.


You need to handle an *average* of 1 character per 10 us. But the cost of handling each character is peanuts - even if the UART is on a slow bus, you should be able to read out characters at something like 20 per us. The cost is in the handling of the interrupt itself - context switches, cache misses, etc. That's why you use a UART with a buffer - it takes virtually the same time to read 128 bytes out the buffer during one interrupt, as to read 1 byte from the buffer during the interrupt. So if you've set your UART to give an interrupt every 100 characters, you get an interrupt every ms and read out a block of 100 characters at a time.
.



Relevant Pages

  • Re: Linux serial port dropping bytes
    ... UART is on a slow bus, you should be able to read out characters ... interrupt itself - context switches, cache misses, etc. That's ... why you use a UART with a buffer - it takes virtually the same ...
    (comp.arch.embedded)
  • Re: Linux serial port dropping bytes
    ... characters at something like 20 per us. ... takes virtually the same time to read 128 bytes out the buffer ... during one interrupt, as to read 1 byte from the buffer during ... test for more in FIFO ...
    (comp.arch.embedded)
  • Re: Linux serial port dropping bytes
    ... the cost of handling each character is peanuts - even if the ... UART is on a slow bus, you should be able to read out ... characters at something like 20 per us. ... during one interrupt, as to read 1 byte from the buffer during ...
    (comp.arch.embedded)
  • Re: Interrupt driven UART
    ... which is why I think I have to use interrupt ... driven UART rather than polling it. ... receivebyte seems to be pretty redundant. ... buffer' aka fifo for this. ...
    (comp.arch.embedded)
  • Re: Interrupt driven UART
    ... which is why I think I have to use interrupt ... driven UART rather than polling it. ... receivebyte seems to be pretty redundant. ... buffer' aka fifo for this. ...
    (comp.arch.embedded)