This is the mail archive of the ecos-discuss@sources.redhat.com 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]

Re: RedBoot gets() problems


On Fri, Mar 02, 2001 at 09:31:11AM -0700, Gary Thomas wrote:

> > I'm having problems with RedBoot due to the way the main loop
> > and gets() interact.  
> > 
> > If at some point a spurious byte comes in on one of the diag
> > ports, RedBoot effectively "locks up" until it sees an
> > end-of-line on that port: it ignores network packets, it
> > ignores commands on the other diag port.
> 
> What defines "spurious"?

Spurious as in there's nothing connected to that port, so it's
floating.  On power-up, sometimes there ssems to be noise that
generates input data on unconnected ports.  Flushing the
receive data when I initialize the port seems to help.

> > I think I'm going to have to re-design the input scheme so that
> > Redboot still responds to the network and to all ports while in
> > the "middle" of reading an input line.
> 
> I'm not convinced that this is the right thing to do.  Maybe
> the check for network packets is OK (but I ruled out doing it
> all the time because of overhead costs),

I'm not sure what you mean by "overhead costs".  Are you
concerned about not handling characters fast enough once they
start to arrive?  The minimum inter-character gap is already
defined by the length of time it takes to do a network poll.

> but once data arrives on one port, then RedBoot is designed to
> switch to that port exclusively.

Right.  My problem is that it sometimes switches exclusively to
a port with nothing connected -- at which point the board
becomes dead to the world.

> You can disable this using the CDL which may be what you want.

That might be what I need to do.

-- 
Grant Edwards
grante@visi.com


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