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

CPSR status back to C variable

Note: This was originally posted on 17th November 2008 at http://forums.arm.com

Im using the TI Code Composer suite with an ARM 7 and Im looking for a way to get the CPSR back into a C variable. I was looking through the documentation that came with the compiler and it didnt have quite what I was looking for. What Im looking for is the state of the interrupt disable bit. I need to use this bit as a condition variable for something like:
if (interrupts enabled){
  do this
}


the inline asm syntax is just

asm("assembly");

The problem is, Im not sure how to associate some C variable to the asm code to pass the CPSR back to the C code flow.  Ive used other compilers in the past that have an option to pass arguments to the asm code like

_asm("tfr b, ccr",foo);

which passes the condition code register (for an HC12) to the var foo, but this compiler does not have that capability.  How would I do the above with this compiler?
  • Note: This was originally posted on 17th November 2008 at http://forums.arm.com

    Luken8r,

    The armcc solution would be:

    __asm unsigned int get_cpsr(void)
    {
       MRS r0,CPSR;
       BX lr;
    }


    hth
    s.
  • Note: This was originally posted on 17th November 2008 at http://forums.arm.com

    I don't know anything about the TI compiler syntax, but the assembler instruction you are looking for is the "MSR" (move to status register from register) and "MRS" (move to register from status register).
  • Now I've loaded the CPRS into a variable within my program, but I'm struggling to understand what format the CPRS is in, I've seen things using hex to reset flags and etc along which bytes are control, field, status and extension masks.

    I put my CPRS into an int just to see what the data shows and I'm given 1610612752, I'm assuming I shouldn't be loading it into an int and something else in order for it to be much more clear.

    Any hints pushing me to the right direction would be most appreciated.

    Prepaid Gift Balance