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]

Re: M68K C Interrupt Handler


I Don't know if I know your problem.
But If you consider about the protability between different compiler
How about use more confitional options!This will help!

such as
#ifdef ARM_Target
....
#define Int-for-ARM 1
 ....
#else
...
#define Int-for-M68k 1
...
#endif

----- Original Message -----
From: "Alex Holland" <alexh@stellarwinds.com>
To: <crossgcc@sources.redhat.com>
Sent: Tuesday, January 16, 2001 2:08 PM
Subject: Re: M68K C Interrupt Handler


> By "C", I meant mostly in C. I spent a significant amount of time looking
in
> the GNU manuals and could not find much detail on writing Interrupt
> handlers.  Some assembly is okay, but I thought that there might be some
> help from the compiler that I am not aware of - for example,
the"interrupt"
> function attribute that apparently causes GCC to generate interrupt
handler
> entry and exit code for some processors, such as the ARM. If there were an
> attribute that caused the compiler to skip generation of the standard
> function entry code, that would also make my example work (the IrqHandler
> label would not be necessary).
>
> Thanks,
> Alex
>
> ----- Original Message -----
> From: "clifftsai" <clifftsai@minecard.com.tw>
> To: "Holland, Alexander MHX" <HollaA@HPD.Abbott.com>;
> <crossgcc@sources.redhat.com>
> Sent: Monday, January 15, 2001 8:07 PM
> Subject: Re: M68K C Interrupt Handler
>
>
> > I don't think it's possible to write Int complete in C
> > Because GNU want let All tool and architecture Portable.
> > If you want to write Ints.You can use in-line assembly.
> > That is,you can write most of code in C,but architecture
> > part in assembly for that Target.
> > You can reference GCC manual for details!
> > http://www.gnu.org/manual
> > http://sources.redhat.com/gnupro
> >
> >
> > ----- Original Message -----
> > From: "Holland, Alexander MHX" <HollaA@HPD.Abbott.com>
> > To: <crossgcc@sources.redhat.com>
> > Sent: Tuesday, January 16, 2001 10:17 AM
> > Subject: M68K C Interrupt Handler
> >
> >
> > > Hi,
> > >
> > > Does anyone know how to write  m68k interrupt handlers  in C?  My
> > (possibly
> > > incorrect/incomplete) understanding of the  issues are that:
> > > (1) Normal  function calls generated by the compiler will not work as
> > > interrupt functions,
> > > (2) I need to save all registers,
> > > (3) I can now execute my handler specific C code including any HW
> specific
> > > start-of-interrupt and end-of-interrupt processing,
> > > (4) I need to restore registers,
> > > (5) I need to do a return from interrupt (rte).
> > >
> > > In the GCC manual I saw special "function attributes" to generate an
> > > interrupt function for certain processors, but none for 68k. I tried
> using
> > > them anyway, but they did not work.
> > >
> > > Next, I tried to avoid the standard function call stuff created by the
> > > compiler,  I tried entering the label "IrqHandler" from the  code
below
> > in
> > > my C interrupt vector table instead of the address of the function
> > > DummyIrqHandler(). Every syntax that I tried for this would not
compile
> or
> > > link.
> > >
> > > void DummyIrqHandler(void)
> > > {
> > > IrqHandler:
> > >     asm("movem.l  %a0-%a6/%d0-%d7,-(%sp)") ; // Save registers.
> > >
> > >     // ... Rest of C code here and end of interrupt processing.
> > >
> > >     asm("movem.l (%sp)+,%a0-%a6/%d0-%d7"); // Restore
> > > registers.
> > >     asm("rte"); // Return from
> > > exception.
> > > }
> > >
> > > Any help is much appreciated,
> > > Alex
> > >
> > > ------
> > > Want more information?  See the CrossGCC FAQ,
> > http://www.objsw.com/CrossGCC/
> > > Want to unsubscribe? Send a note to
> > crossgcc-unsubscribe@sourceware.cygnus.com
> > >
> > >
> >
> >
> >
> > ------
> > Want more information?  See the CrossGCC FAQ,
> http://www.objsw.com/CrossGCC/
> > Want to unsubscribe? Send a note to
> crossgcc-unsubscribe@sourceware.cygnus.com
>
>
> ------
> Want more information?  See the CrossGCC FAQ,
http://www.objsw.com/CrossGCC/
> Want to unsubscribe? Send a note to
crossgcc-unsubscribe@sourceware.cygnus.com
>
>



------
Want more information?  See the CrossGCC FAQ, http://www.objsw.com/CrossGCC/
Want to unsubscribe? Send a note to crossgcc-unsubscribe@sourceware.cygnus.com


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]