Strange bug on EP9302-based custom board

Fabien CASAS fcasas at altenso.fr
Wed Dec 14 08:57:44 UTC 2005


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





More information about the users mailing list