ARM and interrupts
Toralf Lund
toralf@procaptura.com
Fri Mar 19 16:51:00 GMT 2004
Bill Gatliff wrote:
> Toralf:
>
>
> I've written ISRs in C, but you don't want to do that with GNU. What
> you want to do instead is provide a "stub" ISR in assembly language
> (only two or three instructions), that calls the C "ISR". That way,
> you aren't dependent on gcc's intermittent support of the
> __interrupt__ attribute.
Is what you are saying basically that __attribute__((interrupt)) doesn't
work? I did find the doc on this after all (in gcc info page), and tried
__attribute__((interrupt("IRQ"))) void IRQ_Handler(void)
but got
mc9328irq.c:88: warning: `interrupt' attribute directive ignored
>
> See the Evaluator7T tutorial in the wiki or under 'articles' on my
> website, I think I provide a few examples.
>
> Regards,
>
>
> b.g.
>
>
> Toralf Lund wrote:
>
>> [ ... ]
>>
>>>
>>>
>>> The book is good, but it isn't cheap. But hey, lack of knowledge on
>>> these details is even more expensive!
>>>
>>>> We also found some example code for a test board from Motorola
>>>> (we're actually using a Motorola CPU with ARM core), and it turns
>>>> out that they also have an "Interrupt Controler" application note
>>>> that's quite helpful (unlike the CPU reference manual, I might add..)
>>>
>>>
>>>
>>>
>>>
>>> Yes, I was going to mention something related to that. With the
>>> "advanced/vectored interrupt controllers" that are all the rage now,
>>> there are some nifty tricks you can use to really boost interrupt
>>> handling performance. I have examples, but if there are some in
>>> your manuals then go with them.
>>
>>
>>
>> BTW, have you written interrupt handlers in C? I'm unsure how to set
>> the functions to make them return the correct way etc., or if that's
>> even possible with gcc. The example code uses the __irq keyword (as
>> in "void __irq FIQ_Handler(void)") to do it, but this doesn't work
>> with gcc, I think.
>>
>>>
>>>
>>> b.g.
>>>
>>
>> - Toralf
>>
>> ------
>> Want more information? See the CrossGCC FAQ,
>> http://www.objsw.com/CrossGCC/
>> Want to unsubscribe? Send a note to
>> crossgcc-unsubscribe@sources.redhat.com
>>
>
--
Toralf Lund <toralf@procaptura.com> +47 66 85 51 22
ProCaptura AS +47 66 85 51 00 (switchboard)
http://www.procaptura.com/~toralf +47 66 85 51 01 (fax)
------
Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
More information about the crossgcc
mailing list