This is the mail archive of the ecos-devel@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]

Sv: cyg_drv_interrupt_create() troubles


Well, I have an additional obstacle.
My board does not have any serial UARTS - so all output I can get is through a onboard video controllers frame buffer.
This makes GDB and singlestepping a bit hard to do.

- Stephen


----- Original Message ----- 
From: Jonathan Larmour <jifl@eCosCentric.com>
To: Stephen Mose Aaskov <sma@2m.dk>
Cc: <ecos-devel@sources.redhat.com>
Sent: Thursday, October 03, 2002 5:10 PM
Subject: Re: cyg_drv_interrupt_create() troubles


> Stephen Mose Aaskov wrote:
>  > I´m working on a port of a NE2000 driver to our platform (MIPS R3000,
>  > Davicom Eth. controller).
>  >
>  > Currently I experience that the board crashes emidiatly after the call
>  > to cyg_drv_interrupt_create() in  the driver_init function. If I wrap
>  > the code in cyg_interrupt_disable()/enable I can defer the crash to
>  > after the cyg_interrupt_enable() call.
>  >
>  > However, as I understand no activity involving the interrupt handler
>  > and interrupts should be possible until after a call to
>  > ..._interrupt_attach(). So all I have is a newly created interrupt
>  > object, that still manages to crash the board.
>  >
>  > Anyone eager to help out a bit here??
> 
> That's very odd. As you say, cyg_drv_interrupt_create() isn't meant to 
> really _do_ anything, only cyg_drv_interrupt_attach() is. You should still 
> be able to single step through that code even with ints disabled if you 
> set a breakpoint before it. Check that the interrupt vector is being set 
> up in the right place.
> 
> Enable CYGPKG_INFRA_DEBUG which will (among other things) show if you get 
> any unhandled interrupts.
> 
> Another option is something tangential like you are scribbling over memory 
> (and that memory _does_ contain something relevant for handling other 
> interrupts). Check all the locations you are passing in are valid. 
> Similarly check you aren't running out of stack.
> 
> I take it when you run with GDB it's not actually stopping with a SEGV or 
> SIGBUS then?
> 
> Jifl
> -- 
> eCosCentric       http://www.eCosCentric.com/       <info@eCosCentric.com>
> --[ "You can complain because roses have thorns, or you ]--
> --[  can rejoice because thorns have roses." -Lincoln   ]-- Opinions==mine
> 
> 


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