This is the mail archive of the crossgcc@sources.redhat.com mailing list for the crossgcc project.
See the CrossGCC FAQ for lots more information.
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |
Other format: | [Raw text] |
*********** REPLY SEPARATOR *********** On 03/07/22 at 10:47 Shaun Jackman wrote: >This is what I use. I'd be interested in hearing if anybody has a >simpler solution. In particular, if __attribute__((interrupt)) has been >implemented for arm-elf since I used it last. > >Cheers, >Shaun > > >/** > * Interrupt service routine. > */ >__attribute__ ((unused)) > static void isr(void) >{ > // your code here >} > > >/** > * Dispatch the interrupt service routine. > */ >void isr_dispatch(void); > >__asm("\nisr_dispatch:" > "\n stmfd sp!, {r0-r3, r12, lr}" > "\n bl isr" > "\n ldmfd sp!, {r0-r3, r12, lr}" > "\n subs pc, lr, #4" "\n"); > > >On Tue, 2003-07-22 at 10:30, David Mc Kenna wrote: >> Hi all, >> >> How does someone write an interrupt for an ARM,i.e. what directives do I >use >> within gcc? >> >> Thanks, >> Dave Mc Kenna I thought the arm port of gcc supports the __interrupt__ attribute in the latest versions ? Wouldn't this be a better way to write ones interrupt routines ? The actual dispatch I think would still need to be assembly. Regards Anton Erasmus ------ Want more information? See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/ Want to unsubscribe? Send a note to crossgcc-unsubscribe@sources.redhat.com
Index Nav: | [Date Index] [Subject Index] [Author Index] [Thread Index] | |
---|---|---|
Message Nav: | [Date Prev] [Date Next] | [Thread Prev] [Thread Next] |