[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Strange bug on EP9302-based custom board



Jay Monkman wrote:
Fabien CASAS wrote:

Hi all !

I'm porting RTEMS to an EP9302(ARM9)-based custom board, starting from
ARM ports, and I'm stuck on a strange bug.
I've got a base port that provides a console, a clock driver and some
board-specific drivers. This base port seems to run fine, except for
some improvements to be done.
BUT : when I add a call to a function (e.g. a call to
rtems_task_wake_after), or when I just add a local variable into a
function of one of my drivers, the whole executive crashes, before the
function is called.


Without this driver, does the ticker test run correctly?

Always a good question to get answered. :)

Where are you calling wake after from? It should NEVER be called from an ISR as it is a blocking call.

It cannot be called before tasking is started. That means it cannot be called in driver initialization that occurs before the Init task runs.

- or it hangs at the Undefined exception vector with a link register
pointing to the IRQ exception vector.


This is the execption whose handler lives at address 0x00000004? You need to
find out what instruction is causing that.

Set a breakpoint at bsp_pretasking_hook() or some other function that gets
called early on.

Start you application. When you hit the breakpoint, set a new breakpoint at
0x0000004.

Continue execution.

When you hit the breakpoint at 0x0000004, the Link Register will have the
address of 2 instructions past the one that caused you to get the exception.



If you are using software breakpoints, you have to stop execution before a
breakpoint on the execption vectors gets hit. Very early in startup, the
addresses of the exception handlers are copied to the exception vectors,
overwriting any software breakpoint you've set. When you stop and restart GDB,
the breakpoint gets re-inserted.


--
Joel Sherrill, Ph.D.             Director of Research & Development
joel@OARcorp.com                 On-Line Applications Research
Ask me about RTEMS: a free RTOS  Huntsville AL 35805
   Support Available             (256) 722-9985