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

Hardware

RS232

UART

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

Stubs

int Get( int port );

int Put( int port, int c );

Both are Sends to a serial server

Software

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

    Structure

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: