mixing C and assembly.
Joel Sherrill
joel.sherrill@OARcorp.com
Fri Dec 5 16:53:00 GMT 2003
Salim Belgroune wrote:
> Hello,
>
> I'm currently using the MPC8260 ( with a PPC 603e core ).
>
> Could you give me a tutorial or examples on writing assembly routines
> that will be written and compiled inside a C source code.
There are no tutorials that I know of. There are sources for examples
including the PowerPC specific code in RTEMS. Here is an example
of disabling external interrupts via the MSR:
#define _CPU_ISR_Disable( _isr_cookie ) \
{ register unsigned int _disable_mask = PPC_MSR_DISABLE_MASK; \
_isr_cookie = 0; \
asm volatile ( \
"mfmsr %0; andc %1,%0,%1; mtmsr %1" : \
"=&r" ((_isr_cookie)), "=&r" ((_disable_mask)) : \
"0" ((_isr_cookie)), "1" ((_disable_mask)) \
); \
}
It returns the previous value of the MSR as "_isr_cookie" so you
can enable later to the previous level:
#define _CPU_ISR_Enable( _isr_cookie ) \
{ \
asm volatile ( "mtmsr %0" : \
"=r" ((_isr_cookie)) : \
"0" ((_isr_cookie))); \
}
There are lots of other examples in the RTEMS source.
> Kind regards.
>
> Salim Belgroune.
>
--
Joel Sherrill, Ph.D. Director of Research & Development
joel@OARcorp.com On-Line Applications Research
Ask me about RTEMS: a free RTOS Huntsville AL 35805
Support Available (256) 722-9985
More information about the Gcc-help
mailing list