⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cortexm3_macro.s

📁 stm32f10x开发板的demo例程
💻 S
字号:
/*;******************** (C) COPYRIGHT 2007 STMicroelectronics ******************
;* File Name          : cortexm3_macro.s
;* Author             : MCD Application Team
;* Version            : V1.1
;* Date               : 11/26/2007
;* Description        : Instruction wrappers for special Cortex-M3 instructions.                      
;*******************************************************************************
; 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.
;******************************************************************************/
 .cpu cortex-m3
.fpu softvfp   
.syntax unified
.thumb
.text	

  /*; Exported functions*/	    
  .globl __WFI
  .globl __WFE
  .globl __SEV
  .globl __ISB 
  .globl __DSB
  .globl __DMB
  .globl __SVC
  .globl __MRS_CONTROL
  .globl __MSR_CONTROL
  .globl __MRS_PSP
  .globl __MSR_PSP
  .globl __MRS_MSP
  .globl __MSR_MSP    
  .globl __SETPRIMASK
  .globl __RESETPRIMASK
  .globl __SETFAULTMASK
  .globl __RESETFAULTMASK
  .globl __BASEPRICONFIG
  .globl __GetBASEPRI
  .globl __REV_HalfWord
  .globl __REV_Word  

/*;*****************************************************************************
; Function Name  : __WFI
; Description    : Assembler function for the WFI instruction.
; Input          : None
; Return         : None
;******************************************************************************/
.thumb_func
__WFI: 
 
    WFI
    BX r14

/*;*****************************************************************************
; Function Name  : __WFE
; Description    : Assembler function for the WFE instruction.
; Input          : None
; Return         : None
;******************************************************************************/
.thumb_func
__WFE:

    WFE
    BX r14

/*;*****************************************************************************
; Function Name  : __SEV
; Description    : Assembler function for the SEV instruction.
; Input          : None
; Return         : None
;******************************************************************************/
.thumb_func
__SEV:

    SEV
    BX r14

/*;*****************************************************************************
; Function Name  : __ISB
; Description    : Assembler function for the ISB instruction.
; Input          : None
; Return         : None
;******************************************************************************/
.thumb_func
__ISB:

    ISB
    BX r14

/*;*****************************************************************************
; Function Name  : __DSB
; Description    : Assembler function for the DSB instruction.
; Input          : None
; Return         : None
;******************************************************************************/
.thumb_func
__DSB:

    DSB
    BX r14

/*;*****************************************************************************
; Function Name  : __DMB
; Description    : Assembler function for the DMB instruction.
; Input          : None
; Return         : None
;******************************************************************************/
.thumb_func
__DMB:

    DMB
    BX r14

/*;*****************************************************************************
; Function Name  : __SVC
; Description    : Assembler function for the SVC instruction.
; Input          : None
; Return         : None
;******************************************************************************/
.thumb_func
__SVC:

    SVC 0x01
    BX r14

/*;*****************************************************************************
; Function Name  : __MRS_CONTROL
; Description    : Assembler function for the MRS instruction.
; Input          : None
; Return         : - r4 : Cortex-M3 CONTROL register value.
;******************************************************************************/
.thumb_func
__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
;******************************************************************************/
.thumb_func
__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.
;******************************************************************************/
.thumb_func
__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
;******************************************************************************/
.thumb_func
__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.
;******************************************************************************/
.thumb_func
__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
;******************************************************************************/
.thumb_func
__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
;******************************************************************************/
.thumb_func
__SETPRIMASK:

  CPSID i
  BX r14

/*;*****************************************************************************
; Function Name  : __RESETPRIMASK
; Description    : Assembler function to reset the PRIMASK.
; Input          : None 
; Return         : None
;******************************************************************************/
.thumb_func
__RESETPRIMASK:

  CPSIE i
  BX r14

/*;*****************************************************************************
; Function Name  : __SETFAULTMASK
; Description    : Assembler function to set the FAULTMASK.
; Input          : None 
; Return         : None
;******************************************************************************/
.thumb_func
__SETFAULTMASK:

  CPSID f
  BX r14

/*;*****************************************************************************
; Function Name  : __RESETFAULTMASK
; Description    : Assembler function to reset the FAULTMASK.
; Input          : None 
; Return         : None
;******************************************************************************/
.thumb_func
__RESETFAULTMASK:

  CPSIE f
  BX r14

/*;*****************************************************************************
; Function Name  : __BASEPRICONFIG
; Description    : Assembler function to set the Base Priority.
; Input          : - r0 : Base Priority new value  
; Return         : None
;******************************************************************************/
.thumb_func
__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 
;******************************************************************************/
.thumb_func
__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.
;******************************************************************************/
.thumb_func
__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.
;******************************************************************************/
.thumb_func
__REV_Word: 
 
  REV r0, r0
  BX r14
  
.end  

  
/*;*************** (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE******/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -