Serial buffer optimization

Our controller is interfaced through serial port to external world. we
have a utility that will capture the control parameters and display. We
had problems in keeping the real time of the process that are running. it
tend to overrun many a times.

We used t8 options with baud rate 38400, it seemed to have improved. i
have heard that there are various buffering mechanisms that we can have

  1. unbuffered - individual character transfered
  2. line buffered - tansfered when a new line
    character is encountered
  3. fully buffered - blocks of memory are transfered


    Is there any setting through which we can acheive this.

Thanks

On 27 Oct 2004 06:35:45 GMT, radha krishnan <radha.nk@geind.ge.com> wrote:

Is there any setting through which we can acheive this.
First of all make sure you’ve started Dev.ser properly:

Dev.ser -t 8 &

“-t 1|4|8|14” will turn on the RX FIFO in the UART and set the interrupt level to the number of received bytes selected.
In general you should be able to run as fast as 115200 without any overruns at all.

Tony.

“Tony” <mts.spb.suxx@mail.ru> wrote in message
news:opsgix1pn0o93ri4@mobile.wst.quantum.ru

On 27 Oct 2004 06:35:45 GMT, radha krishnan <> radha.nk@geind.ge.com
wrote:

Is there any setting through which we can acheive this.
First of all make sure you’ve started Dev.ser properly:

Dev.ser -t 8 &

“-t 1|4|8|14” will turn on the RX FIFO in the UART and set the interrupt
level to the number of received bytes selected.

In general you should be able to run as fast as 115200 without any
overruns at all.

That’s true, however certain thing can disrupt operation. Disabling
interrupt for a long time and not pulling the data fast enough from the
driver buffers, comes to mind.

Tony.

On Wed, 27 Oct 2004 18:16:00 -0400, Mario Charest <nowheretobefound@8thdimension.com> wrote:

That’s true, however certain thing can disrupt operation. Disabling interrupt for a long time and not pulling the data fast enough from the driver buffers, comes to mind.
Yes, my fault…

He says he’d put “-t8” there and it did help a bit. Then it’s some other code of their’s that causes overruns.

Tony.

On Wed, 27 Oct 2004 18:16:00 -0400, Mario Charest <nowheretobefound@8thdimension.com> wrote:

That’s true, however certain thing can disrupt operation. Disabling interrupt for a long time and not pulling the data fast enough from the driver buffers, comes to mind.
Yes, my fault…

He says he’d put “-t8” there and it did help a bit. Then it’s some other code of their’s that causes overruns.

Tony.

On Wed, 27 Oct 2004 18:16:00 -0400, Mario Charest <nowheretobefound@8thdimension.com> wrote:

That’s true, however certain thing can disrupt operation. Disabling interrupt for a long time and not pulling the data fast enough from the driver buffers, comes to mind.
Yes, my fault…

He says he’d put “-t8” there and it did help a bit. Then it’s some other code of their’s that causes overruns.

Tony.

radha krishnan wrote:


Our controller is interfaced through serial port to external world. we
have a utility that will capture the control parameters and display. We
had problems in keeping the real time of the process that are running. it
tend to overrun many a times.

We used t8 options with baud rate 38400, it seemed to have improved. i
have heard that there are various buffering mechanisms that we can have

  1. unbuffered - individual character transfered
  2. line buffered - tansfered when a new line
    character is encountered
  3. fully buffered - blocks of memory are transfered



    Is there any setting through which we can acheive this.

We used t8, but we wanted to improve still more, so that it may not be
marginal.

Is there any settings with respect to 1),2) 3) possible with the driver.
SO that whenever a line end is occured, only then the system is
interrupted??

\

Thanks

“radha krishnan” <radha.nk@geind.ge.com> wrote in message
news:clsr94$j2d$1@inn.qnx.com

radha krishnan wrote:


Our controller is interfaced through serial port to external world. we
have a utility that will capture the control parameters and display. We
had problems in keeping the real time of the process that are running. it
tend to overrun many a times.

We used t8 options with baud rate 38400, it seemed to have improved. i
have heard that there are various buffering mechanisms that we can have

  1. unbuffered - individual character transfered
  2. line buffered - tansfered when a new line
    character is encountered
  3. fully buffered - blocks of memory are transfered


    Is there any setting through which we can acheive this.

We used t8, but we wanted to improve still more, so that it may not be
marginal.

Is there any settings with respect to 1),2) 3) possible with the driver.
SO that whenever a line end is occured, only then the system is
interrupted??

Impossible, the serial chip has no concept of end of line, nor can they
buffer and interrupt till a certain character comes in.

Thanks




\