This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
Interaction between redboot and eCos application
- From: David Brennan <eCos at brennanhome dot com>
- To: eCos Discussion List <ecos-discuss at sources dot redhat dot com>
- Date: Thu, 11 Nov 2004 07:18:53 -0800
- Subject: [ECOS] Interaction between redboot and eCos application
We are having a problem with out application. It is running on i386
platform with dual 82559 Ethernet devices.
Redboot is configured for only 1 Ethernet device. Our application is
configured for both.
We set a breakpoint in cyg_assert_fail, and get an assert "Bad sc" from
if_i82559.c line 1955. However, the breakpoint does not fire. Upon
further troubleshooting, we can single step through all of the 82559
initialization code until we get to this section of code:
#ifdef CYGSEM_HAL_VIRTUAL_VECTOR_DIAG
// Set up interfaces so debug environment can share this device
{
void *dbg = CYGACC_CALL_IF_DBG_DATA();
if (!dbg) {
CYGACC_CALL_IF_DBG_DATA_SET((void *)sc);
}
}
#endif
when the CYGACC_CALL_IF_DBG_DATA_SET((void *)sc) gets called, we loose
connection with gdb. So I assume the problem is actually that the
application is generating a new sc and passing it to redboot. Then
redboot is asserting that the new sc does not match the one it was
running with.
As an additional note, this only occurs with our "big" program, (which
may have a memory stack/heap issue, but this is occurring before any of
our static constructors are called). Our "small" test application runs
fine with the exact same eCos image.
Any help in pointing me in the right direction would be greatly appreciated.
David Brennan
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss