This is the mail archive of the ecos-devel@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Question to 16x5x driver users


-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

Guennadi Liakhovetski wrote:
> On Mon, 18 Jun 2007, Alexander Aganichev wrote:
> 
>> I found that driver not transmit anything in interrupt driving mode
>> unless I made the following patch:
>>
>> Index: packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c
>> ===================================================================
>> RCS file:
>> /cvs/ecos/ecos/packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c,v
>> retrieving revision 1.14
>> diff -u -r1.14 ser_16x5x.c
>> --- packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c	27 Nov
>> 2006 13:59:50 -0000	1.14
>> +++ packages/devs/serial/generic/16x5x/current/src/ser_16x5x.c	18 Jun
>> 2007 12:21:30 -0000
>> @@ -516,6 +516,7 @@
>>     HAL_READ_UINT8(base+REG_ier, _ier);
>>     _ier |= IER_XMT;                    // Enable xmit interrupt
>>     HAL_WRITE_UINT8(base+REG_ier, _ier);
>> +    (chan->callbacks->xmt_char)(chan); // <<<<<<
>> }
>>
>> // Disable the transmitter on the device
>>
>> Am I right to make this change or I just missed another process that
>> should call xmt_char? I'm using LPC2294 based board and use this
>> driver for the UART1.
> 
> It looks like eCos uses the usual UART sending procedure - enable tx-empty 
> (IER_XMT) interrupt and return, then the interrupt should trigger as soon 
> as tx is empty / tx fifo can take more data, and you write more data in 
> your interrupt handler to the port. The fact it doesn't work for you means 
> most probably that you're not getting tx-empty interrupts, and, perhaps, 
> no UART interrupts at all.

In my experience, this [incorrect] behaviour is not all that
uncommon.  I think that a CDL controlled option to enable this
initial "push" (although I'd call it 'priming') is the correct
fix.

Alexander, please provide a proper patch, along with ChangeLog
entry to ecos-patches@ecos.sourceware.org.  We'll review and
apply as appropriate.

- --
- ------------------------------------------------------------
Gary Thomas                 |  Consulting for the
MLB Associates              |    Embedded world
- ------------------------------------------------------------
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.7 (GNU/Linux)
Comment: Using GnuPG with Fedora - http://enigmail.mozdev.org

iD8DBQFGd70vmaKbSsQGV8ARAqFQAJ0dpBdJMlwo04vgESqSK+W6dNW1yACdFhjf
hBhKas2iXs6VTrU69HNeqtw=
=7V3c
-----END PGP SIGNATURE-----


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]