From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 986 invoked by alias); 19 Jun 2007 07:01:50 -0000 Received: (qmail 962 invoked by uid 22791); 19 Jun 2007 07:01:48 -0000 X-Spam-Status: No, hits=-2.5 required=5.0 tests=AWL,BAYES_00,DK_POLICY_SIGNSOME X-Spam-Check-By: sourceware.org Received: from mail.dsa-ac.de (HELO mail.dsa-ac.de) (62.112.80.99) by sourceware.org (qpsmtpd/0.31) with ESMTP; Tue, 19 Jun 2007 07:01:45 +0000 Received: from localhost (unknown [127.0.0.1]) by mail.dsa-ac.de (Postfix) with ESMTP id B28093D038; Tue, 19 Jun 2007 07:01:40 +0000 (UTC) Received: from mail.dsa-ac.de ([127.0.0.1]) by localhost (mailserver [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id 20010-04; Tue, 19 Jun 2007 09:01:39 +0200 (CEST) Received: from pcgl.dsa-ac.de (PCGL.dsa-ac.de [172.29.17.23]) by mail.dsa-ac.de (Postfix) with ESMTP id CA5123C3F8; Tue, 19 Jun 2007 09:01:39 +0200 (CEST) Date: Tue, 19 Jun 2007 07:01:00 -0000 From: Guennadi Liakhovetski To: Alexander Aganichev Cc: ecos-devel@ecos.sourceware.org Subject: Re: Question to 16x5x driver users In-Reply-To: Message-ID: References: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII X-Virus-Scanned: by amavisd-new at dsa-ac.de X-IsSubscribed: yes Mailing-List: contact ecos-devel-help@ecos.sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: ecos-devel-owner@ecos.sourceware.org X-SW-Source: 2007-06/txt/msg00001.txt.bz2 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. Thanks Guennadi --------------------------------- Guennadi Liakhovetski, Ph.D. DSA Daten- und Systemtechnik GmbH Pascalstr. 28 D-52076 Aachen Germany