CS452 - Real-Time Programming - Spring 2008

Lecture 23 - Serial Server

Questions & Comment

  1. 16550 UART

Serial Server

Policy issues

  1. One or two servers?
  2. How should screen echo be handled?
  3. How should the buffers in the UART be handled?
  4. Who will initialize the hardware?
  5. What traffic do I expect through the server?
  6. Should the be I/O units above the single character level?

As a general policy we would like to concentrate the hardware dependence




Five interrupts

  1. Transmit buffer empty
  2. Receive buffer not empty
  3. Line status changed
  4. Modem status changed
  5. Character timeout

Twelve registers.

Accessing the registers


int Get( int port );

int Put( int port, int c );

Both are Sends to a serial server


Task Structure

  1. simplest, which is usually best
  2. buffer send
  3. guards with couriers

    Guards only make sense if there are are lots of clients, which might happen if


What, if anything, should we do about the FIFO?

Should we have one server for input, one for output?

These components merely handle a generic serial line.

More than one Notifier

One (or more?) server(s)

What about guards?

Return to: