This is the mail archive of the ecos-discuss@sources.redhat.com 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]

Re: interrupts


rob.wj.jansen@philips.com wrote:

> > I`ve a problem with interrupts.I am working on MPC860. I measured time
> > latecy of handling interrupts (ISR only) and it is very long time.I`ve
> > default configuration in eCos Configuration tool.
> > Do is it possible to shorten this time, if yes then in which way can I do it
>
> Same problem exists on my 65 MHz ARM 710T board with 70 nsec SRAM, the delay between entering the
> low-level assembly routine in vectors.S and the actual start of my (C) interrupt routine is about 15 micro secs.
> This means that it takes about 1000 cpu cycles to find out which interrupt was fired.
> There is a lot of overhead involved in retrieving the index into the hal_vsr_table.
> I am thinking of converting the C functions into assembly to speed up interrupt handling (with the penalty
> that I'm not compatible with the rest of the world anymore.

  In my system it only takes 1000 cycles to start the ISR, but my system is not well designed, it uses an ARM7TDMI,
running at 0.8 MHz, but with an 8 bit memory with a WAIT state, so every word takes 8 cycles to be read, so the
number of cycles that I suppose that the system would take with a good memory configuration would be just 125
cycles.

  The place where I loose most of the time is in the handle_IRQ routine (or something like that, located at the
platform HAL), that is the routine that checks which device has raised the IRQ. I think that eCos has a good
performance with the IRQs and maybe you should optimise that routine.





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