From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jonathan Larmour To: Anthony Massa Cc: "eCos (E-mail)" Subject: [ECOS] Re: RedBoot Date: Fri, 27 Apr 2001 15:25:00 -0000 Message-id: <3AE9F1C5.9404F9D6@redhat.com> References: <281963D01A08D511A5D700A0C9AC979A04EF02@EXCHANGE> X-SW-Source: 2001-04/msg00484.html 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