This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
problem with generic serial driver?
- From: David Roethig <droethig at cipher dot com>
- To: ecos-discuss at sources dot redhat dot com
- Date: Wed, 18 May 2005 16:13:12 -0700
- Subject: [ECOS] problem with generic serial driver?
- Reply-to: droethig at cipher dot com
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