Link to home
Start Free TrialLog in
Avatar of naseeam
naseeamFlag for United States of America

asked on

How to diab 4.2b powerpc family asm macros work?

My Embedded Application runs on Motorola PowerPC MPC555 Microcontroller.  The cross compiler is Diab 4.2b.   Following is a macro for raising and restroing interrupts in MPC555.

asm unsigned int iplm_raise(void)
{
! "r3"

    mfmsr       r3
    mtspr       81,r1
}

asm void iplm_restore(const unsigned int mask)
{
%reg mask ;
! "r12"

    mfmsr       r12
    rlwimi      r12,mask,0,16,16
    mtmsr       r12
}

The calls to these asm macros are as follows:

unsigned_32 mask;

RAISE_IPLM(mask) ;

/* critical section of code */

RESTORE_IPLM(mask) ;

Following are links:

1) Link to MPC555 Manual - pages of interest are 3-20 to 3-23
http://www.freescale.com/files/microcontrollers/doc/user_guide/MPC555UM.pdf?fsrch=1

2) Link to MPC555 Instruction Set - Section 9 is of interest
http://www.freescale.com/files/microcontrollers/doc/ref_manual/RCPURM.pdf?fsrch=1

3)  I could not find a link to Diab 4.2b Target User's Manual for PowerPC Family. However, I have soft copy
of this manual.  How can I attach it?  This manual explains asm macros.

Please explain above two macro in detail, line by line.  Thanks.



Avatar of naseeam
naseeam
Flag of United States of America image

ASKER

Diab Target User's Manual for Power PC Family should be at www.windriver.com.  A registration will be required in order to access the document.
ASKER CERTIFIED SOLUTION
Avatar of Anthony2000
Anthony2000
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial