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]
Other format: [Raw text]

Re: generating interrupts in ARM-PID (SID simulator)


On Fri, Jun 27, 2003 at 02:22:04AM -0700, Partha Palit wrote:
> Hello,
> 
> I am trying to generate external interrupts and handle
> it on a ARM-PID configuration. I am using SID as the
> simulator for ARM PID.Ofcourse, eCos is my RTOS.
> 
> >From the SID configuration file, I understand that
> there is a interrupt controller which can be
> associated with 32 interrupts.One of the output pins
> of the interrupt controler is connected to the "nirq"
> pin of the processor.
> I use one the the interrutpt sources numbered "16" to
> associate with an event whose occurance I want to
> count.
> 
> Now, the problem is that I am unable to catch the
> interrupt and process it using an ISR. Specifically, I
> register my own ISR at the the vector 16. However, it
> seems that I am unable to catch the interrupt. 
> 
> Could anyone kindly advise where I am making the
> mistake? Also, I m unable to figure out that if and
> how eCos can be configured to use the 32 interrupts.
> Afterall, there is only one nirq line. How are the 32
> interrupts mapped? When, I check the hal_intr.h file,
> I find that at max there can be 8 interrupts.

I don't know much about SID, but i do know a bit about the ARM
architecture. As you say, the arm has two interrupt lines, nIRQ and
nFIQ. Most systems use an interrupt controller which multiplexes many
interrupt sources onto these two lines. 

In eCos, the two interrupts are tied to VSRs. The VSR is responsible
for talking to the interrupt controller to find the true source of the
ISR and then call the appropriate ISR function. How you talk to the
interrupt control is not part of the ARM architecture standard from
ARM. Its proprietary to each type of processor. So SID will probably
do it differently from PID, from EBSA285, eb40a etc. The HAL code is
responsible for doing this.

The question is, does the HAL you are using know how to talk to the
SID interrupt controller? Have you checked this?

    Andrew



-- 
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss


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