I have written a simple packet parsing function to receive and sort data on the serial 
port of the Palm Vx at 19,200 bps. Even with a input buffer sized at 16K, the Palm Vx 
can't keep up (the buffer overflows). I have run some timing tests with a stop watch 
and found that the loop takes (on average) 144 us when no data is received, but it 
takes (on average) 622 us to process 1 byte of data. When I removed my parsing state 
machine, it still took 592 us just to receive 1 byte! How is it that a system running 
on a 32 bit processor running at least 16MHz can't keep up with serial data trickling 
in at 19.2 kbps??!!

I'm using SerReceiveCheck() to see if any data is present, and SerReceive() with 
timeout set to 0. I also check for non-zero errors returned from these functions and 
call SerClearErr() if necessary.

Could the compatibility layer of the New Serial Manager slow things down like this? (I 
am not using SDK 3.5 so I have to use the Serial Manager functions).

Dave Heil
Preco Electronics
208-322-4288
[EMAIL PROTECTED]


-- 
For information on using the Palm Developer Forums, or to unsubscribe, please see 
http://www.palm.com/devzone/mailinglists.html

Reply via email to