naseeam
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.
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.
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER