This is the mail archive of the
ecos-discuss@sources.redhat.com
mailing list for the eCos project.
RE: Interrupt Handler
- From: "Robert Cragie" <rcc at jennic dot com>
- To: "Vinayak P Risbud" <vinayak at multitech dot co dot in>
- Cc: "Ecos-Discuss" <ecos-discuss at sources dot redhat dot com>
- Date: Wed, 10 Jul 2002 18:36:47 +0100
- Subject: RE: [ECOS] Interrupt Handler
The opcode
10018: ldr pc, [pc, #18]
means
"Load the program counter with the address at program counter + 0x18".
This will load the value at 0x10038 (you need to add 8 from the start of the
ldr instruction; see the ARM Reference Manual), which is 0x1037c, into the
program counter. "Loading the program counter" is a synonym for "jump", so
reworded this means:
"Jump to the location specified at address 0x10018 + 0x8 + 0x18 (i.e.
0x10038), which is 0x1037c"
As for not being able to use the serial port, you may need to enable it in
the configuration.
Using the configtool, try checking the box next to "Serial Device
Drivers"/"Hardware Serial Devices Drivers" (i.e. setting
CYGPKG_IO_SERIAL_DEVICES to TRUE) and then maybe checking the box next to
"Serial Device Drivers"/"TTY-mode Serial Devices Drivers"/"TTY-mode Channel
#0" (i.e. setting CYGPKG_IO_SERIAL_TTY_TTY0 to TRUE). This should include
the interrupt driven serial drivers into your configuration. You may need to
recreate the tree and rebuild from scratch to be on the safe side.
Robert Cragie, Design Engineer
Direct: +44 (0) 114 281 4512
________________________________________________________
Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK
www.jennic.com Tel: +44 (0) 114 281 2655
> -----Original Message-----
> From: Vinayak P Risbud [mailto:vinayak@multitech.co.in]
> Sent: 10 July 2002 16:32
> To: Robert Cragie
> Cc: Ecos-Discuss
> Subject: Re: [ECOS] Interrupt Handler
>
>
> Thanks for your response.
>
> Can you explain, me bit clearly, why processor considers
> 0x1037c as data, and not as instructrion ?
> One more problem.
> I am working on arm e7t board. I am not able to
> communicate with serial ports through interrupts.
> My console works fine, but, when I tx some char
> on my port the interrupt controller says, the interrupt
> is pending and the ARM7 core does not call my interrupt
> handler
>
> Can you think of, what exactly could be the problem ?
>
> Thanks
> Vinayak
>
> Robert Cragie wrote:
>
> > An interrupt occurs. It runs the code at 0x10018, which jumps to the
> > location specified at 0x10038, which is 0x1037c (ignore the
> disassembly at
> > 0x10038, you are interested in the data here). 0x1037c is the
> start of the
> > interrupt handler, which essentially stacks the required
> registers on the
> > exception stack and then calls hal_IRQ_handler() at line
> 0x103e0. You are
> > now at 0x129ac...
> >
> > Robert Cragie, Design Engineer
> >
> > Direct: +44 (0) 114 281 4512
> > ________________________________________________________
> > Jennic Ltd, Furnival Street, Sheffield, S1 4QT, UK
> > www.jennic.com Tel: +44 (0) 114 281 2655
> >
> > > -----Original Message-----
> > > From: ecos-discuss-owner@sources.redhat.com
> > > [mailto:ecos-discuss-owner@sources.redhat.com]On Behalf Of Vinayak P
> > > Risbud
> > > Sent: 10 July 2002 15:23
> > > To: Ecos-Discuss
> > > Subject: [ECOS] Interrupt Handler
> > >
> > >
> > > Hi,
> > > I have attatched my some part of redboot.elf
> > > disassembled file.
> > > I am not able to follow, how exactly my ISR is
> > > called upon reception of an interrupt.
> > >
> > > What I know is, upon IRQ, the control jumps to 0x0018.
> > > I am not able to follow, how exactly, my ISR which is
> > > present at 0x129ac is called ?
> > >
> > > can any one explain me the exact flow ?
> > >
> > > Thanks
> > > Vinayak
> > >
> > >
> > >
> >
> > --
> > Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
> > and search the list archive: http://sources.redhat.com/ml/ecos-discuss
>
>
--
Before posting, please read the FAQ: http://sources.redhat.com/fom/ecos
and search the list archive: http://sources.redhat.com/ml/ecos-discuss