This is the mail archive of the
ecos-discuss@sourceware.org
mailing list for the eCos project.
Re: Question to 16x5x driver users
- From: Gary Thomas <gary at mlbassoc dot com>
- To: Alexander Aganichev <aaganichev at gmail dot com>
- Cc: eCos Discussion <ecos-discuss at ecos dot sourceware dot org>
- Date: Thu, 21 Jun 2007 05:44:05 -0600
- Subject: [ECOS] Re: Question to 16x5x driver users
- References: <c25335bc0706180611l36818bfbn77e052427f313a92@mail.gmail.com> <Pine.LNX.4.63.0706190858061.8578@pcgl.dsa-ac.de> <4677BD2F.3010909@mlbassoc.com> <c25335bc0706202319h791a9618y613e37cbdd6cdc1e@mail.gmail.com>
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
Alexander Aganichev wrote:
> On 6/19/07, Gary Thomas <gary@mlbassoc.com> wrote:
>> >> 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.
>
> Just to make it clear: do you want me to just rename option from
> CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PUSH to
> CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME, or make also a
> switchable option in ser_generic_16x5x.cdl and force it with requires
> { CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME == "true" }? I'm
> just not too much familiar with CDL, so first solution was easier for
> me :-)
>
Yes, simply add the option CYGPKG_IO_SERIAL_GENERIC_16X5X_XMIT_REQUIRE_PRIME
to the generic CDL file (.../devs/serial/generic/16x5x/current/cdl/ser_generic_16x5x.cdl)
The default value should be 'false'. You can put a requires statement in
the HAL CDL for your platform as necessary.
Once you have this, send a complete patch (using cvs diff - see the archives
for examples) to ecos-patches@ecos.sourceware.org. We'll review it, suggest
changes, etc, and then incorporate it when it's ready.
Thanks for taking your time with this.
- --
- ------------------------------------------------------------
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
iD8DBQFGemSFmaKbSsQGV8ARAiERAJwN8kQ0DOdOJ1T2sDUIMHZuBk/XwQCfUJUj
uwK9mEb9Maz+co7pqULT8ac=
=K3r9
-----END PGP SIGNATURE-----
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss