This is the mail archive of the ecos-discuss@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: [Fwd: AT91SAM7S : cyg_io_write /dev/ser0]



-----Message d'origine-----
De?: ecos-discuss-owner@ecos.sourceware.org
[mailto:ecos-discuss-owner@ecos.sourceware.org] De la part de Andrew Lunn
Envoyé?: jeudi 6 septembre 2007 19:03
À?: eCos discussion
Objet?: Re: [ECOS] [Fwd: AT91SAM7S : cyg_io_write /dev/ser0]

On Thu, Sep 06, 2007 at 06:52:46PM +0100, Jonathan Larmour wrote:
> The attached mail was misaddressed....

> From: jc.caquet@kerlink.fr
> To: ecos-discuss-owner@ecos.sourceware.org
> Subject: AT91SAM7S : cyg_io_write /dev/ser0
> Date: Thu, 6 Sep 2007 18:58:50 +0200
> X-Spam-Status: No, score=4.3 required=5.0 tests=AWL,BAYES_99,
> 	MSGID_FROM_MTA_ID,NO_REAL_NAME autolearn=no version=3.0.4
> 
> Dear all,
> we use cyg_io_write on a serial device of AT91SAM7S board and when we try
to
> send only 1 character cyg_io_write fails and returns -1 as a result code.
> Everything is OK as soon as we send more than 1 character, every character
> is always successfully output.
> Did anybody already face this problem??

AT91 is one of the two drivers which make use the block transfers in
the serial layer. So maybe you are seeing a bug in this code?

comment out the 

implements    CYGINT_IO_SERIAL_BLOCK_TRANSFER

in arm/at91/current/cdl/ser_arm_at91.cdl

and then do an 

ecosconfig tree ; make ;

so that it does not to block transfers. Do you still get the same
problem?

        Andrew

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






OK, when doing so I get the following result when building ecos library :

packages/devs/serial/arm/at91/current/src/at91_serial.c:506: structure has
no member named `data_xmt_req'
packages/devs/serial/arm/at91/current/src/at91_serial.c: In function
`at91_serial_DSR':
packages/devs/serial/arm/at91/current/src/at91_serial.c:613: structure has
no member named `data_rcv_req'
/packages/devs/serial/arm/at91/current/src/at91_serial.c:624: structure has
no member named `data_rcv_done'
packages/devs/serial/arm/at91/current/src/at91_serial.c:647: structure has
no member named `data_xmt_done'
packages/devs/serial/arm/at91/current/src/at91_serial.c:652: structure has
no member named `data_xmt_req'

When CYGINT_IO_SERIAL_BLOCK_TRANSFER is not defined "_data_rcv_req,
_data_rcv_done, _data_xmt_req, _data_xmt_done" are excluded from structure
definition in serial.h. 
Do you think that some #if defined CYGINT_IO_SERIAL_BLOCK_TRANSFER are
missing in at91_serial.c ?

JC


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


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