From mboxrd@z Thu Jan 1 00:00:00 1970 From: Fano Ramparany To: "Trenton D. Adams" Cc: 'eCos Disuss' Subject: Re: [ECOS] Re: Networking in a ROM build Date: Fri, 31 Aug 2001 10:01:00 -0000 Message-id: <3B8FBCBB.61703FC8@rd.francetelecom.fr> References: <000601c12c1d$0892d9c0$090110ac@TRENT> X-SW-Source: 2001-08/msg00973.html After some investigations and tracing the ROM version of my networking application, I've found that the call to connect is stuck, waiting for ever on a blocking semaphore at line 349 within a function cyg_tsleep in file synch.c. The function calls stack is then: connect bsd_connect tsleep cyg_tsleep the call to tsleep is done in bsd_connect under the following condition which holds in the ROM version: while ((so->so_state & SS_ISCONNECTING) && so->so_error == 0) { error = tsleep((caddr_t)&so->so_timeo, PSOCK | PCATCH, netcon, 0); in the RAM version the condition fails, that partly explains why the behaviour differ in the RAM and ROM version. Has any one further hints. In particular, is there a way for checking that the ethernet driver has properly initialized? Fano "Trenton D. Adams" wrote: > Does your code hang up on the accept () call? Mine does. I call > accept, and the windows machine never gets to it. It's almost as if the > bind didn't even work originally. > > Anyone know if there's a way of using something like "netstat" in eCos? > I would like to be able to use CYG_TRACEX () to output the socket > connection information of the entire system. > > -----Original Message----- > From: ecos-discuss-owner@sources.redhat.com > [ mailto:ecos-discuss-owner@sources.redhat.com ] On Behalf Of Fano > Ramparany > Sent: Thursday, August 23, 2001 10:01 AM > To: Trenton D. Adams > Cc: eCos Disuss > Subject: [ECOS] Re: Networking in a ROM build > > Trenton, > This is exactly the problem we are currently facing and trying to solve > (see some recent threads). A socket configuration that might > solve your problem is to increase the socket timeout value: > > This partially solved our problem, however, by sniffing the network > traffic (using tcpdump) > We have observed some strange behaviour on the ROM version of our > application, which seems to buffer the first packets and at some stage > sends them alltogether over the network. > > I've also added some delay between the ethernet driver initialization > and the ip stack initialization, but this didn't solve the problem. > > I'll now try to add some tracing (CYGDBG_USE_ASSERT) to go further. > > Fano > > > When using a ROM version, the following thing happens: > > The transmit and status signal threads connect to my windows machine > > just fine. After they are connected, my windows machine attempts to > > connect back to the embedded system's CommandThread socket. The > > connection attempt times out.