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

Using C and reading CPU Register (Carry-Flag) via assembler

Hi smart guys out there,

I am using µVision with TIs eval-kit LM3S9B92. I use µVisions C-Compiler.

I learned that it is not possible to read the CPU-Registers with C and I have to use asembler for that.

I have no idea of asembler and actually I don't work with it in future and I hope I never have to again :-) ...but right now I need to know the status of the carrybit.

So all I am asking is for a piece of code that gets me the status of bit 29 in the register 17 :) and how to implement that in my project.

I hope this doesn't sound sassy ;-) - at least it isn't meant that way.

Thank you so much.

Parents
  • __get_APSR() is defined in CMSIS, so yes, you do need to include a header file, namely core_cmFunc.h.

    The identifier APSR_C was just a made up example, perhaps defined as macro, to demonstrate that you need to compare with a numeric value. BTW, CMSIS also defines a structure APSR_Type so that you could perhaps write something like:

    if ((APSR_Type)apsr.b.C)
      // do this
    else
      // do that
    


    But as others have said already: For your purposes, this is completely unnecessary.

    Best regards
    Marcus

Reply
  • __get_APSR() is defined in CMSIS, so yes, you do need to include a header file, namely core_cmFunc.h.

    The identifier APSR_C was just a made up example, perhaps defined as macro, to demonstrate that you need to compare with a numeric value. BTW, CMSIS also defines a structure APSR_Type so that you could perhaps write something like:

    if ((APSR_Type)apsr.b.C)
      // do this
    else
      // do that
    


    But as others have said already: For your purposes, this is completely unnecessary.

    Best regards
    Marcus

Children
No data