<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="https://community.arm.com/utility/feedstylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>FIQ intterupt Function</title><link>https://community.arm.com/developer/tools-software/tools/f/keil-forum/25801/fiq-intterupt-function</link><description> 
I want to write function for fiq interrupt on LPC2378, 
Here the program which I have try to run. But it gives error. 

 
void T0isr(void) __fiq //__irq 
{ 

 
T0IR = 1; /* clear interrupt flag */ 

 
T0TCR = 0; 

 
Enable_Timer1(); 

 
T0TCR = 1; </description><dc:language>en-US</dc:language><generator>Telligent Community 10</generator><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/115914?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 04:32:45 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:244f7b4d-c478-4d39-a18b-07c4ba09eec4</guid><dc:creator>Ani More</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thank you...Martin Guenther.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/104116?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 04:22:51 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:cb6c3b0d-b05a-45f8-8f24-3899f4441d29</guid><dc:creator>Martin G&amp;#195;&amp;#188;nther</dc:creator><description>&lt;p&gt;&lt;p&gt;
Hello Ani --,&lt;/p&gt;

&lt;p&gt;
The address of the FIQ_Handler does not matter. But you need to
store the FIQ_Handler address at the correct vector location. In the
Keil examples this is done in the startup file &lt;b&gt;LPC2300.s&lt;/b&gt;.
Please see example below:&lt;/p&gt;

&lt;pre&gt;
Vectors         LDR     PC, Reset_Addr
                LDR     PC, Undef_Addr
                LDR     PC, SWI_Addr
                LDR     PC, PAbt_Addr
                LDR     PC, DAbt_Addr
                NOP                            ; Reserved Vector
;               LDR     PC, IRQ_Addr
                LDR     PC, [PC, #-0x0120]     ; Vector from VicVectAddr
                LDR     PC, FIQ_Addr

Reset_Addr      DCD     Reset_Handler
Undef_Addr      DCD     Undef_Handler
SWI_Addr        DCD     SWI_Handler
PAbt_Addr       DCD     PAbt_Handler
DAbt_Addr       DCD     DAbt_Handler
                DCD     0                  ; Reserved Address
IRQ_Addr        DCD     IRQ_Handler
FIQ_Addr        DCD     FIQ_Handler


                        IMPORT  FIQ_Handler

Undef_Handler   B       Undef_Handler
SWI_Handler     B       SWI_Handler
PAbt_Handler    B       PAbt_Handler
DAbt_Handler    B       DAbt_Handler
IRQ_Handler     B       IRQ_Handler
;FIQ_Handler    B       FIQ_Handler        ; see Handler code
&lt;/pre&gt;

&lt;p&gt;
Please read also Chapter 6: LPC23XX Vectored Interrupt Controller
(VIC) in user manual.&lt;/p&gt;

&lt;p&gt;
There is written:&lt;br /&gt;
&lt;i&gt;If more than one request is assigned to FIQ, the VIC ORs the
requests to produce the FIQ signal to the ARM processor. The fastest
possible FIQ latency is chieved when only one request is classified
as FIQ, because then the FIQ service routine can simply start dealing
with that device. But if more than one request is assigned to the FIQ
class, the FIQ service routine can read a word from the VIC that
identifies which FIQ source(s) is (are) requesting an
interrupt.&lt;/i&gt;&lt;/p&gt;

&lt;p&gt;
Best Regards, Martin Guenther&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/139656?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 04:00:38 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:9bd22bb6-5758-4779-a463-9f23a6bedc7b</guid><dc:creator>Ani More</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thanks&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/136211?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 03:52:47 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:89c6980b-2dc7-4bd3-a194-cacb05d694bb</guid><dc:creator>edPer Westermark</dc:creator><description>&lt;p&gt;&lt;p&gt;
Technical discussions don&amp;#39;t need ....... in them. And technically
speaking, you have one or three puncutation characters. &amp;quot;...&amp;quot; &amp;quot;.&amp;quot;
&amp;quot;??!&amp;quot;, &amp;quot;???&amp;quot;, etc.&lt;/p&gt;

&lt;p&gt;
Anyway - you register a FIQ handler in exactly the same way that
you register an IRQ handler. You don&amp;#39;t play with any absolute
address. You assign the function pointer of the handler to the
correct register in the interrupt controller.&lt;/p&gt;

&lt;p&gt;
Note that the interrupt controller has configuration to specify a
priority for each interrupt channel - and it also have configuration
to specify if using IRQ or FIQ.&lt;/p&gt;

&lt;p&gt;
This is covered in the datasheet/user manual for the processor.
Just playing around with all the dialog boxes in the Keil simulator
should also give you a good idea about exactly what settings the
processor supports - for each of these settings, you could
consider:&lt;br /&gt;
- not needed because not used&lt;br /&gt;
- default value is good&lt;br /&gt;
- need to assign own value&lt;/p&gt;

&lt;p&gt;
Above three choices should be applied for everything configurable
in the processor.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/126290?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 03:47:17 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:075e6a7c-ef1d-4309-ad28-188abdf1c10a</guid><dc:creator>Tamir Michael</dc:creator><description>&lt;p&gt;&lt;p&gt;
Look buddy, I don&amp;#39;t mind helping you - but you need to state in
clear language what the problem/question is, yes? And drop the
dots.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/115916?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 03:43:08 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:d719ecc3-3053-46ca-83ce-8ba982aa01f1</guid><dc:creator>Ani More</dc:creator><description>&lt;p&gt;&lt;p&gt;
Are you showing your good manners? If you have not solution then
don&amp;#39;t reply me. This is Discussion Forum for technical Discussion,
not for just time pass.any one can keep small problems on this board.
your language is very bad &amp;amp; keep it is in your pocket.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/104118?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 03:10:01 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:4acb126e-895b-485b-9a7c-eb00d7cf7380</guid><dc:creator>Tamir Michael</dc:creator><description>&lt;p&gt;&lt;p&gt;
......why do you use so many dots......why do you need to define
the FIQ at a specific address......do you know what you are
doing......probably not......&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/78495?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 02:51:08 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:4d5c8634-8ee2-4dde-b04f-c7f6ee11cfea</guid><dc:creator>Ani More</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thanx Martin G&amp;Atilde;&amp;frac14;nther;&lt;/p&gt;

&lt;p&gt;
&amp;amp; I have one question, Martin, how to define FIQ_Handler
(void) address?.........&lt;br /&gt;
is it same like a irq handler.... which is written in my code or
else...&lt;br /&gt;
if you know please reply...&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/102241?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 02:44:20 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:54fb65f1-91c0-4ecd-a833-f432faac1240</guid><dc:creator>Ani More</dc:creator><description>&lt;p&gt;&lt;p&gt;
Thanx IB Shy;&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/78494?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 02:39:53 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:8df7efab-28e4-47e7-9fce-e5e5008cbb5e</guid><dc:creator>Ani More</dc:creator><description>&lt;p&gt;&lt;p&gt;
Andy, I know error &amp;amp; how to find it. I think you not able to
understand my problem, if I am not explain my problem neatly then I
am sorry &amp;amp; listen again.&lt;/p&gt;

&lt;p&gt;
Actually I am not able to find out syntax for defining fiq in
Keil, In my program I am commented irq syntax, which running
neatly.... But when I am converted it for fiq interrupt, I am not
understand some things&lt;br /&gt;
1) How to give interrupt handler address?&lt;br /&gt;
2) Syntax for fiq.&lt;br /&gt;
3) Compiler gives error which is explain already...why?&lt;br /&gt;
above both problems are not occurred in irq.&lt;/p&gt;

&lt;p&gt;
If you have any solution please explain me..&lt;/p&gt;

&lt;p&gt;
Thanks to reply...&lt;br /&gt;
Ani&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/65741?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 02:18:26 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:84421a9e-7415-4fbb-bd12-60cb40325939</guid><dc:creator>Martin G&amp;#195;&amp;#188;nther</dc:creator><description>&lt;p&gt;&lt;p&gt;
Hello Ani --,&lt;/p&gt;

&lt;p&gt;
define your FIQ handler as follows:&lt;/p&gt;

&lt;pre&gt;
__irq void FIQ_Handler (void) {
  /* add your code */
}
&lt;/pre&gt;

&lt;p&gt;
configure your interrupt as FIQ.&lt;br /&gt;
Please see chapter 5.6 Interrupt Select Register (VICIntSelect -
0xFFFF F00C) in LPC23XX User manual.&lt;/p&gt;

&lt;p&gt;
Best Regards,&lt;br /&gt;
Martin Guenther&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/90529?ContentTypeID=1</link><pubDate>Fri, 16 Jul 2010 00:34:34 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:69af5525-c291-4ba7-a747-4f233fa28e7c</guid><dc:creator>Non Keil Related</dc:creator><description>&lt;p&gt;&lt;p&gt;
If you look at:&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.keil.com/support/man/docs/armccref/armccref_chdfijae.htm"&gt;
&lt;a href="http://www.keil.com/support/man/docs/armccref/armccref_chdfijae.htm"&gt;www.keil.com/.../armccref_chdfijae.htm&lt;/a&gt;&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
You&amp;#39;ll notice that:&lt;/p&gt;

&lt;pre&gt;
__fiq
&lt;/pre&gt;

&lt;p&gt;
is not a supported keyword.&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item><item><title>RE: FIQ intterupt Function</title><link>https://community.arm.com/thread/65745?ContentTypeID=1</link><pubDate>Thu, 15 Jul 2010 23:24:58 GMT</pubDate><guid isPermaLink="false">dd9e70c8-6d3c-4c71-b136-2456382a7b5c:51ef1353-121a-4f6f-85ca-47750e3ef99b</guid><dc:creator>Andy Neil</dc:creator><description>&lt;p&gt;&lt;p&gt;
The number in parentheses (&lt;b&gt;184&lt;/b&gt;) tells you the line number
at which the error occurred.&lt;/p&gt;

&lt;p&gt;
As we don&amp;#39;t have your complete file, it&amp;#39;s impossible to tell which
of the lines you posted is number &lt;b&gt;184&lt;/b&gt;!&lt;/p&gt;

&lt;p&gt;
Your code is illegible because you didn&amp;#39;t pay attention to the
clear instructions for posting source code:&lt;/p&gt;

&lt;p&gt;
&lt;a href="http://www.danlhenry.com/caps/keil_code.png"&gt;www.danlhenry.com/.../keil_code.png&lt;/a&gt;&lt;/p&gt;

&lt;p&gt;
Although &lt;i&gt;people&lt;/i&gt; might give you the benefit of the doubt for
sloppy errors like that, a &lt;b&gt;compiler&lt;/b&gt; will not!&lt;/p&gt;

&lt;p&gt;
A compiler will insist that you write your code exactly in
accordance with the language syntax rules - otherwise you will get
errors like this one!&lt;/p&gt;

&lt;p&gt;
When the compiler tells you that it was expecting a &amp;#39;{&amp;#39; (an
opening brace), that means that you have broken the syntax rules -
eg, by missing a semicolon - and the only way the compiler could make
any sense of your text was by assuming that there should have been an
opening brace at the position stated.&lt;/p&gt;

&lt;p&gt;
So you need to &lt;b&gt;look at your code carefully&lt;/b&gt; for such
mistakes!&lt;/p&gt;
&lt;/p&gt;&lt;div style="clear:both;"&gt;&lt;/div&gt;</description></item></channel></rss>