This is the mail archive of the ecos-discuss@sourceware.org mailing list for the eCos project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Problem in FIQ with ecos for arm(at91sam7x)


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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]