Hi Martin,
As you told, there is some problem with stack pointer handling.Since
the program behavior is not predicable with FIQ but works well with IRQ.
How can i handle FIQ as it is,without taking it to IRQ level.
Thanks and Regards,
Mervin J
Please
Martin Laabs wrote:
Hi,
Mervin J wrote:
static cyg_uint32 ui32FiqIsr(cyg_vector_t vector, cyg_addrword_t word)
{
ade_int_proc_fp++;
// Tell the processor that we have received
// the interrupt.
cyg_interrupt_acknowledge(vector);
return(CYG_ISR_HANDLED);
}
Can you please look at the stackpointer just before exiting of the
FIQ? Is it constant every time? And is its address correct?
In FIQ mode some registers are shadowed and eCos tries to convert a
fiq to an irq in vectors.S. However - maybe there is a seldom
occurring bug. (However - most times the bug is in the user program.)
What happens in the user program when ade_int_proc_fp++ overflows?
Might this be a problem?
Greetings,
Martin L.
--
Before posting, please read the FAQ: http://ecos.sourceware.org/fom/ecos
and search the list archive: http://ecos.sourceware.org/ml/ecos-discuss