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]

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


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