On Friday 31 October 2003 12:15 pm, Mike wrote:
>
> My problem is on a T3, my comm routine runs about half the speed of OS<5.0.
> I found the palm is taking 22-24 ms to respond to a two byte response.  The
> response is sent within 5 ms of the request, but the Palm waits 22-24ms
> before it recognises that there is data in the buffer.

I suspect you are encountering the RX FIFO trigger level issue.
Dragonball processors would generate an interrupt with just one
receive byte in the RX FIFO.  The UARTs found in the ARM processors
typically wait until some number of bytes have arrived before generating
an interrupt.  If fewer than the required number of bytes arrive,
the UART will eventually generate an interrupt after a timeout.
This is good if you want a high throughput, but not so good if you
want low latency.

This is what you are seeing.  The UART is waiting for the timeout
period to expire before letting the OS know data has arrived.

The only way to fix this is to muck with the UART registers directly
and change the FIFO trigger level to 1.  This is possible with
some PDAs, but not possible at all with Sony devices that
prevent you from accessing the hardware registers.

I would like to see PalmOS add capability to the Srm interface to
select how the UART is optimized.  If optimized for throughput,
which could be the default, it would use a high FIFO trigger level.
When optimized for latency, it would set the FIFO trigger level to
one.

Such a feature would certainly aid portability for those of us that
need low latency serial response times.

mike



-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palmos.com/dev/support/forums/

Reply via email to