This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Inline asm error C-197 when disabling interrupt...

Hello,
I have take a piece of source at http://www.arm.com and tried to compile it using the CARM compiler. The code is shown below:

/* NewState=1 will enable IRQ, NewState=0 will disable IRQ */
/* ARM core must be in a privileged mode, e.g. supervisor  */

void ChangeIRQ(unsigned int NewState)
{
  int my_cpsr;

  __asm
    {
     MRS my_cpsr, CPSR
     /* get current program status */

     ORR my_cpsr, my_cpsr,#0x80
     /* set IRQ disable bit flag */

     BIC my_cpsr, my_cpsr, NewState, LSL #7
     /* reset IRQ bit with new value */

     MSR CPSR_c, my_cpsr
     /* store updated program status */
    }
}

void main(void)
{
__asm{MSR CPSR_c, #0x13}
//Go into Supervisor Mode

ChangeIRQ(0);

	while(1)
	{
	}

}
.

I get the asm error at line "MSR CPSR_c, my_cpsr". How is that?

Regards,
Kasper Andersen