www.pudn.com > Micrium-ST-uCOS-II-LCD-STM32-SK.rar > cortexm3_macro.s


;******************** (C) COPYRIGHT 2007 STMicroelectronics ******************** 
;* File Name          : cortexm3_macro.s 
;* Author             : MCD Application Team 
;* Date First Issued  : 09/29/2006 
;* Description        : Instruction wrappers for special Cortex-M3 instructions. 
;******************************************************************************* 
; History: 
; 05/21/2007: V0.3 
; 04/02/2007: V0.2 
; 02/05/2007: V0.1 
; 09/29/2006: V0.01 
;******************************************************************************* 
; THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS 
; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. 
; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, 
; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE 
; CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING 
; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS. 
;******************************************************************************* 
     
  THUMB 
  REQUIRE8 
  PRESERVE8 
     
  AREA |.text|, CODE, READONLY, ALIGN=2 
 
  ; Exported functions 
  EXPORT __WFI 
  EXPORT __WFE 
  EXPORT __SEV 
  EXPORT __ISB 
  EXPORT __DSB 
  EXPORT __DMB 
  EXPORT __SVC 
  EXPORT __MRS_CONTROL 
  EXPORT __MSR_CONTROL 
  EXPORT __MRS_PSP 
  EXPORT __MSR_PSP 
  EXPORT __MRS_MSP 
  EXPORT __MSR_MSP    
  EXPORT __SETPRIMASK 
  EXPORT __RESETPRIMASK 
  EXPORT __SETFAULTMASK 
  EXPORT __RESETFAULTMASK 
  EXPORT __BASEPRICONFIG 
  EXPORT __GetBASEPRI 
  EXPORT __REV_HalfWord 
  EXPORT __REV_Word 
 
;******************************************************************************* 
; Function Name  : __WFI 
; Description    : Assembler function for the WFI instruction. 
; Input          : None 
; Return         : None 
;******************************************************************************* 
__WFI  
  
    WFI 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __WFE 
; Description    : Assembler function for the WFE instruction. 
; Input          : None 
; Return         : None 
;******************************************************************************* 
__WFE 
 
    WFE 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __SEV 
; Description    : Assembler function for the SEV instruction. 
; Input          : None 
; Return         : None 
;******************************************************************************* 
__SEV 
 
    SEV 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __ISB 
; Description    : Assembler function for the ISB instruction. 
; Input          : None 
; Return         : None 
;******************************************************************************* 
__ISB 
 
    ISB 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __DSB 
; Description    : Assembler function for the DSB instruction. 
; Input          : None 
; Return         : None 
;******************************************************************************* 
__DSB 
 
    DSB 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __DMB 
; Description    : Assembler function for the DMB instruction. 
; Input          : None 
; Return         : None 
;******************************************************************************* 
__DMB 
 
    DMB 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __SVC 
; Description    : Assembler function for the SVC instruction. 
; Input          : None 
; Return         : None 
;******************************************************************************* 
__SVC 
 
    SVC 0x01 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __MRS_CONTROL 
; Description    : Assembler function for the MRS instruction. 
; Input          : None 
; Return         : - r0 : Cortex-M3 CONTROL register value. 
;******************************************************************************* 
__MRS_CONTROL 
 
  MRS r0, CONTROL 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __MSR_CONTROL 
; Description    : Assembler function for the MSR instruction. 
; Input          : - r0 : Cortex-M3 CONTROL register new value.   
; Return         : None 
;******************************************************************************* 
__MSR_CONTROL 
 
  MSR CONTROL, r0 
  ISB 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __MRS_PSP 
; Description    : Assembler function for the MRS instruction. 
; Input          : None 
; Return         : - r0 : Process Stack value. 
;******************************************************************************* 
__MRS_PSP 
 
  MRS r0, PSP 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __MSR_PSP 
; Description    : Assembler function for the MSR instruction. 
; Input          : - r0 : Process Stack new value.   
; Return         : None 
;******************************************************************************* 
__MSR_PSP  
  
    MSR PSP, r0 ; set Process Stack value 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __MRS_MSP 
; Description    : Assembler function for the MRS instruction. 
; Input          : None 
; Return         : - r0 : Main Stack value. 
;******************************************************************************* 
__MRS_MSP 
 
  MRS r0, MSP 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __MSR_MSP 
; Description    : Assembler function for the MSR instruction. 
; Input          : - r0 : Main Stack new value.   
; Return         : None 
;******************************************************************************* 
__MSR_MSP  
  
    MSR MSP, r0 ; set Main Stack value 
    BX r14 
 
;******************************************************************************* 
; Function Name  : __SETPRIMASK 
; Description    : Assembler function to set the PRIMASK. 
; Input          : None  
; Return         : None 
;******************************************************************************* 
__SETPRIMASK 
 
  CPSID i 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __RESETPRIMASK 
; Description    : Assembler function to reset the PRIMASK. 
; Input          : None  
; Return         : None 
;******************************************************************************* 
__RESETPRIMASK 
 
  CPSIE i 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __SETFAULTMASK 
; Description    : Assembler function to set the FAULTMASK. 
; Input          : None  
; Return         : None 
;******************************************************************************* 
__SETFAULTMASK 
 
  CPSID f 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __RESETFAULTMASK 
; Description    : Assembler function to reset the FAULTMASK. 
; Input          : None  
; Return         : None 
;******************************************************************************* 
__RESETFAULTMASK 
 
  CPSIE f 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __BASEPRICONFIG 
; Description    : Assembler function to set the Base Priority. 
; Input          : - r0 : Base Priority new value   
; Return         : None 
;******************************************************************************* 
__BASEPRICONFIG 
 
  MSR BASEPRI, r0 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __GetBASEPRI 
; Description    : Assembler function to get the Base Priority value. 
; Input          : None  
; Return         : - r0 : Base Priority value  
;******************************************************************************* 
__GetBASEPRI 
 
  MRS r0, BASEPRI_MAX 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __REV_HalfWord 
; Description    : Reverses the byte order in HalfWord(16-bit) input variable. 
; Input          : - r0 : specifies the input variable 
; Return         : - r0 : holds tve variable value after byte reversing. 
;******************************************************************************* 
__REV_HalfWord  
  
  REV16 r0, r0 
  BX r14 
 
;******************************************************************************* 
; Function Name  : __REV_Word 
; Description    : Reverses the byte order in Word(32-bit) input variable. 
; Input          : - r0 : specifies the input variable 
; Return         : - r0 : holds tve variable value after byte reversing. 
;******************************************************************************* 
__REV_Word  
  
  REV r0, r0 
  BX r14 
     
  END 
   
;******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE*****