[ECOS] Interaction between redboot and eCos application

David Brennan eCos@brennanhome.com
Thu Nov 11 15:43:00 GMT 2004


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



More information about the Ecos-discuss mailing list