I am guessing that it's simply a keyword to inform the compiler gracefully
that it will need to apply a sub of 4/8 bytes from the Link Register before
it returns from the IRQ function.
The reasoning being that having entered an FIQ/IRQ the link register will
contain the address of the discarded instruction + 4, this way the compiler
understands it needs to put in a SUBS R15, R14, #4 instruction rather than
simply copying R15 back onto R14 as per a SWI. That said in the case of a
data abort the exception will actually have occured one instruction after
the execution of the instruction that threw the exception, in this case we
need to go back 2 instructions and therefore apply: SUBS R15, R14, #8.
Following this its plain sailing - simply restoring the user mode and
copying the SPSR to the CPSR and we're back to processing user code at the
point where we were interrupted.
Andy
-----Original Message-----
From: lpc2000@yahoogroups.com [mailto:lpc2000@yahoogroups.com]On Behalf
Of Jack Key
Sent: 17 March 2006 13:28
To: lpc2000@yahoogroups.com
Subject: Re: [lpc2000] C question
The Keil CA Compiler implements the keywords __irq and __fiq. With the __fiq
keyword the compiler does not save the CPU registers R8 - R12, since the ARM
CPU implements separate registers in the FIQ mode.
This is what the keil help says. Above that I do not know anything more
than the obvious fact that __irq tells the function that it is an irq
interrupt. Then you may ask what is the use of the register VICIntSelect. I
too dont know the answer for that. Anyways, hope my effort was of any help.
Regards,
Jack.
heedaf <ruffellfamily@...> wrote:
I have a newbie question. In the following code
void ADC0Handler (void) __irq
What does __irq do? I've never seen this before. It comes from the
Kiel ADC sample listed Philips website.
Thanks,
Dewayne
SPONSORED LINKS
Microcontrollers Microprocessor Intel microprocessors Pic
microcontrollers
---------------------------------
YAHOO! GROUPS LINKS
Visit your group "lpc2000" on the web.
To unsubscribe from this group, send an email to:
lpc2000-unsubscribe@yahoogroups.com
Your use of Yahoo! Groups is subject to the Yahoo! Terms of Service.
---------------------------------
---------------------------------
Yahoo! Mail
Use Photomail to share photos without annoying attachments.
[Non-text portions of this message have been removed]
Yahoo! Groups LinksMessage
RE: [lpc2000] C question
2006-03-17 by Andrew Berney
Attachments
- No local attachments were found for this message.