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

Strange bug on EP9302-based custom board



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.


The executive crashes in two flavors:
- either it sends garbage on the console (looks like a printf on a string with no \0)
- or it hangs at the Undefined exception vector with a link register pointing to the IRQ exception vector.


I've tried to debug the code with a JTAG and Insight: all I could find is that it crashes either when the first printf of my application is ran (and the string's OK), or when multitasking is enabled (and here, I loose the thread of execution).

When I remove the variable from my driver, the executive runs fine, except that my driver doesn't work the way it should :).
The problem seems to be the same when I add a variable to the application code.


I've tried and set the minimum stack size to 128kB instead of 4kB but this has no effect.
I've also tried and set the Init task stack size to 8kb with no effect either.


I've checked my linkcmds against the one for the csb337 (btw, thanks for providing this online !), and found nothing suspicious, but I'm no linkfile expert.

So I wanted to ask if anyone had ever had such a bug ? Or if someone could give hints on what I should check.

Thanks !

Fab