1 ;******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
\r
2 ;* File Name : cortexm3_macro.s
\r
3 ;* Author : MCD Application Team
\r
4 ;* Date First Issued : 02/19/2007
\r
5 ;* Description : Instruction wrappers for special Cortex-M3 instructions.
\r
6 ;*******************************************************************************
\r
10 ;*******************************************************************************
\r
11 ; THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
12 ; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
13 ; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
14 ; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
15 ; CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
16 ; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
17 ;*******************************************************************************
\r
19 SECTION .text:CODE(2)
\r
21 ; Exported functions
\r
29 EXPORT __MRS_CONTROL
\r
30 EXPORT __MSR_CONTROL
\r
36 EXPORT __RESETPRIMASK
\r
37 EXPORT __SETFAULTMASK
\r
38 EXPORT __RESETFAULTMASK
\r
39 EXPORT __BASEPRICONFIG
\r
41 EXPORT __REV_HalfWord
\r
44 ;*******************************************************************************
\r
45 ; Function Name : __WFI
\r
46 ; Description : Assembler function for the WFI instruction.
\r
49 ;*******************************************************************************
\r
55 ;*******************************************************************************
\r
56 ; Function Name : __WFE
\r
57 ; Description : Assembler function for the WFE instruction.
\r
60 ;*******************************************************************************
\r
66 ;*******************************************************************************
\r
67 ; Function Name : __SEV
\r
68 ; Description : Assembler function for the SEV instruction.
\r
71 ;*******************************************************************************
\r
77 ;*******************************************************************************
\r
78 ; Function Name : __ISB
\r
79 ; Description : Assembler function for the ISB instruction.
\r
82 ;*******************************************************************************
\r
88 ;*******************************************************************************
\r
89 ; Function Name : __DSB
\r
90 ; Description : Assembler function for the DSB instruction.
\r
93 ;*******************************************************************************
\r
99 ;*******************************************************************************
\r
100 ; Function Name : __DMB
\r
101 ; Description : Assembler function for the DMB instruction.
\r
104 ;*******************************************************************************
\r
110 ;*******************************************************************************
\r
111 ; Function Name : __SVC
\r
112 ; Description : Assembler function for the SVC instruction.
\r
115 ;*******************************************************************************
\r
121 ;*******************************************************************************
\r
122 ; Function Name : __MRS_CONTROL
\r
123 ; Description : Assembler function for the MRS instruction.
\r
125 ; Return : - r0 : Cortex-M3 CONTROL register value.
\r
126 ;*******************************************************************************
\r
132 ;*******************************************************************************
\r
133 ; Function Name : __MSR_CONTROL
\r
134 ; Description : Assembler function for the MSR instruction.
\r
135 ; Input : - r0 : Cortex-M3 CONTROL register new value.
\r
137 ;*******************************************************************************
\r
144 ;*******************************************************************************
\r
145 ; Function Name : __MRS_PSP
\r
146 ; Description : Assembler function for the MRS instruction.
\r
148 ; Return : - r0 : Process Stack value.
\r
149 ;*******************************************************************************
\r
155 ;*******************************************************************************
\r
156 ; Function Name : __MSR_PSP
\r
157 ; Description : Assembler function for the MSR instruction.
\r
158 ; Input : - r0 : Process Stack new value.
\r
160 ;*******************************************************************************
\r
163 MSR PSP, r0 ; set Process Stack value
\r
166 ;*******************************************************************************
\r
167 ; Function Name : __MRS_MSP
\r
168 ; Description : Assembler function for the MRS instruction.
\r
170 ; Return : - r0 : Main Stack value.
\r
171 ;*******************************************************************************
\r
177 ;*******************************************************************************
\r
178 ; Function Name : __MSR_MSP
\r
179 ; Description : Assembler function for the MSR instruction.
\r
180 ; Input : - r0 : Main Stack new value.
\r
182 ;*******************************************************************************
\r
185 MSR MSP, r0 ; set Main Stack value
\r
188 ;*******************************************************************************
\r
189 ; Function Name : __SETPRIMASK
\r
190 ; Description : Assembler function to set the PRIMASK.
\r
193 ;*******************************************************************************
\r
199 ;*******************************************************************************
\r
200 ; Function Name : __RESETPRIMASK
\r
201 ; Description : Assembler function to reset the PRIMASK.
\r
204 ;*******************************************************************************
\r
210 ;*******************************************************************************
\r
211 ; Function Name : __SETFAULTMASK
\r
212 ; Description : Assembler function to set the FAULTMASK.
\r
215 ;*******************************************************************************
\r
221 ;*******************************************************************************
\r
222 ; Function Name : __RESETFAULTMASK
\r
223 ; Description : Assembler function to reset the FAULTMASK.
\r
226 ;*******************************************************************************
\r
232 ;*******************************************************************************
\r
233 ; Function Name : __BASEPRICONFIG
\r
234 ; Description : Assembler function to set the Base Priority.
\r
235 ; Input : - r0 : Base Priority new value
\r
237 ;*******************************************************************************
\r
243 ;*******************************************************************************
\r
244 ; Function Name : __GetBASEPRI
\r
245 ; Description : Assembler function to get the Base Priority value.
\r
247 ; Return : - r0 : Base Priority value
\r
248 ;*******************************************************************************
\r
251 MRS r0, BASEPRI_MAX
\r
254 ;*******************************************************************************
\r
255 ; Function Name : __REV_HalfWord
\r
256 ; Description : Reverses the byte order in HalfWord(16-bit) input variable.
\r
257 ; Input : - r0 : specifies the input variable
\r
258 ; Return : - r0 : holds tve variable value after byte reversing.
\r
259 ;*******************************************************************************
\r
265 ;*******************************************************************************
\r
266 ; Function Name : __REV_Word
\r
267 ; Description : Reverses the byte order in Word(32-bit) input variable.
\r
268 ; Input : - r0 : specifies the input variable
\r
269 ; Return : - r0 : holds tve variable value after byte reversing.
\r
270 ;*******************************************************************************
\r
278 ;******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE*****
\r