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


Anthony Massa wrote:
> 
> >Perhaps the cygwin tools aren't in the path. Have you installed the .reg
> >file mentioned in "Updated configuration tools for Windows" at
> >http://sources.redhat.com/ecos/anoncvs.html ?
> 
> I'll give that a try. I didn't notice the reg file back when I switched to
> ConfigTool 1.3.1.2.

It wasn't there before a few days ago :-).
 
> >> Not being able to run the tests, I tried to get more insight as to where
> my
> >> application was failing.  I find that it is failing in the function
> >> quicc_eth_init in if_quicc.c.  This is called from cyg_net_init, in the
> for
> >> loop after the thread (cyg_netint) is created and started.  I have had
> some
> >> troubles with GDB crashing while stepping through various parts of the
> >> quicc_eth_init routine - once it crashed when stepping over
> HAL_DCACHE_SYNC.
> >> It seems to have problems with the cyg_drv_interrupt_unmask function
> call.
> 
> >Looking at it, the problem may be that the interrupts are set up so near
> >the start. This means that any interrupts received before the init function
> >finishes could lead to problems because the rest of the driver hasn't been
> >initialised. And if RedBoot had been using the eth device, interrupts
> >_would_ already be enabled.
> 
> >Try setting up the interrupt handling much closer to the end, or perhaps
> >just try turning off interrupts throughout that function just to see if
> >that helps.
> 
> I'll move the interrupt creation and unmasking to the end of the
> quicc_eth_init function and see what happens. I'm not sure about that
> because I have seen it fail at various points through that routine.  If that
> doesn't work I'll give globally turning off interrupts a try and see where
> that leads - although, won't that have an effect on GDB's communication?

Only for the duration of that function (obviously reenable the interrupts
at the end!). You may need to step over it instead.
 
> I'm a little confused how the Ethernet switch over occurs since I'm
> debugging over the Ethernet port as well.  Basically, RedBoot is receiving
> debug packets from GDB over the Ethernet port while I am stepping through
> the quicc_eth_init routine to setup control of the same Ethernet port for
> the application.

There's magic in the "common" ethernet driver layer, in io/eth. Basically
redboot gets a sneaky look at every packet that comes in.

Jifl
-- 
Red Hat, Rustat House, Clifton Road, Cambridge, UK. Tel: +44 (1223) 271062
Maybe this world is another planet's Hell -Aldous Huxley || Opinions==mine


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