[ECOS] problem with generic serial driver?

David Roethig droethig@cipher.com
Thu May 19 08:43:00 GMT 2005


I am using (as of recently) the generic serial driver
package (16x5x compatible serial device drivers).

The application was sending data to the port using the
file i/o interface:

    /* output string to serial port */
    err = cyg_io_write( serHandle, writeBuffer, length );

Nothing came out the serial port! That is, until, the app
output a 'diag_printf()'. That was a head-scratcher until
looking at the pc_serial_start_xmit() routine, I noticed
that the trasmitter wasn't being 'kicked' with a character
to the transmit register.

   // Enable the transmitter on the device
   static void
   pc_serial_start_xmit(serial_channel *chan)
   {
       pc_serial_info *ser_chan = (pc_serial_info *)chan->dev_priv;
       cyg_addrword_t base = ser_chan->base;
       cyg_uint8 _ier;

       HAL_READ_UINT8(base+REG_ier, _ier);
       _ier |= IER_XMT;                    // Enable xmit interrupt
       HAL_WRITE_UINT8(base+REG_ier, _ier);

       /* kick transmitter */              // **!! added !!**
       (chan->callbacks->xmt_char)(chan);  // **!! added !!**
   }

My questions:
  1) is the generic serial package still being used?
  2) is this a bug or are things configured incorrectly?



Thanks
Dave






-- 
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss



More information about the Ecos-discuss mailing list