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]
Other format: [Raw text]

RE: GDB "invalid remote reply"...


# -----Original Message-----
# From: Jonathan Larmour [mailto:jifl@eCosCentric.com]
# Sent: Monday, November 04, 2002 7:55 PM
# To: Schumacher, Gordon
# Cc: 'ecos-discuss@sources.redhat.com'
# Subject: Re: [ECOS] GDB "invalid remote reply"...
# 
# Looks like your UART is spitting out double characters.
# If you use the GDB console you can try using "set debug remote 1"
# and then definitely seeing what gets sent and received.

I've had "debug remote" turned on, and I've tried viewing with just a
terminal program.  I was definitely seeing the doubled "00ttrraa" on the
port.  The question is, *why*?  The doubled characters don't follow the
hardware - that is, I've got the "debug the I/O subsystem" switch turned on,
so that I see a dump of the ports being initialized to the port that's not
connected to GDB... and those characters aren't doubled, no matter which
port they're on.

# Definitely looks like some serial errors somewhere.

Well, there's some *potential* reason to believe that the hardware may be
introducing serial errors... but, it's a distant guess.  (Our old pre-eCos
code was pretty broken, so with no other data it's more likely that it was
that code.)

# Instead look at the address. When connecting to a RedBoot
# running in ROM it should be a ROM address.

Well, I'm not running RedBoot, because of the configuration of our hardware.
We have 1MB of ROM, but only 128KB of RAM.  So, I'm trying to run as much
out of ROM as possible.
The address matches in the MAP file...

Okay, here's a slightly different, but related, question.  Apparently,
trying to open and write to "/dev/ttydiag" is what was causing it to jump
into the weeds.  If I don't do that, though... I can't connect with GDB at
all - the only data I get from the GDB port is a single + character at
startup (which in the code is documented as "ackt outstanding packets").  I
never see more GDB packets.
Because my initial cyg_io_write() fails, my code goes into an infinite debug
loop (blink LEDs), with calls to cyg_thread_yield() inside of it.  I'd have
thought that would be sufficient to let GDB operate - but apparently I'm
incorrect.

I'm sure I'm missing something fundamental here, and if I thought that there
was a snowball's chance in Hades of getting approval for a consultant in
here to get the darned thing the rest of the way running, I'd go for it...
<sigh>  Remember when the economy was good?  :)

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


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