
28 Nov
2002
28 Nov
'02
1:39 p.m.
Hello everybody,
I've a problem with examples/timer.c. I've tried to launch it on my mpc860t board, if I start the timer and if I press a key after one or more interrupts occured, the u-boot crashes. The problem is that an interrupt handler uses a system call (mon_printf) while the main loop is inside a system call (mon_getc). During a system call, the LR and SRRx are saved at a fixed location (0xcf4, 0xcf8 and 0xcfc) then the return address of the mon_printf in the main loop is overridden by the return address of the mon_getc in the interrupt handler. To avoid this problem, I think that we need to use a stack to store the return addresses (and the SRRx) of the system calls.
What's your opinion ?
Best regards