1 ;******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
\r
2 ;* File Name : cortexm3_macro.s
\r
3 ;* Author : MCD Application Team
\r
4 ;* Date First Issued : 09/29/2006
\r
5 ;* Description : Instruction wrappers for special Cortex-M3 instructions.
\r
6 ;*******************************************************************************
\r
12 ;*******************************************************************************
\r
13 ; THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
\r
14 ; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
\r
15 ; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
\r
16 ; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
\r
17 ; CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
\r
18 ; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
\r
19 ;*******************************************************************************
\r
25 AREA |.text|, CODE, READONLY, ALIGN=2
\r
27 ; Exported functions
\r
35 EXPORT __MRS_CONTROL
\r
36 EXPORT __MSR_CONTROL
\r
42 EXPORT __RESETPRIMASK
\r
43 EXPORT __SETFAULTMASK
\r
44 EXPORT __RESETFAULTMASK
\r
45 EXPORT __BASEPRICONFIG
\r
47 EXPORT __REV_HalfWord
\r
50 ;*******************************************************************************
\r
51 ; Function Name : __WFI
\r
52 ; Description : Assembler function for the WFI instruction.
\r
55 ;*******************************************************************************
\r
61 ;*******************************************************************************
\r
62 ; Function Name : __WFE
\r
63 ; Description : Assembler function for the WFE instruction.
\r
66 ;*******************************************************************************
\r
72 ;*******************************************************************************
\r
73 ; Function Name : __SEV
\r
74 ; Description : Assembler function for the SEV instruction.
\r
77 ;*******************************************************************************
\r
83 ;*******************************************************************************
\r
84 ; Function Name : __ISB
\r
85 ; Description : Assembler function for the ISB instruction.
\r
88 ;*******************************************************************************
\r
94 ;*******************************************************************************
\r
95 ; Function Name : __DSB
\r
96 ; Description : Assembler function for the DSB instruction.
\r
99 ;*******************************************************************************
\r
105 ;*******************************************************************************
\r
106 ; Function Name : __DMB
\r
107 ; Description : Assembler function for the DMB instruction.
\r
110 ;*******************************************************************************
\r
116 ;*******************************************************************************
\r
117 ; Function Name : __SVC
\r
118 ; Description : Assembler function for the SVC instruction.
\r
121 ;*******************************************************************************
\r
127 ;*******************************************************************************
\r
128 ; Function Name : __MRS_CONTROL
\r
129 ; Description : Assembler function for the MRS instruction.
\r
131 ; Return : - r0 : Cortex-M3 CONTROL register value.
\r
132 ;*******************************************************************************
\r
138 ;*******************************************************************************
\r
139 ; Function Name : __MSR_CONTROL
\r
140 ; Description : Assembler function for the MSR instruction.
\r
141 ; Input : - r0 : Cortex-M3 CONTROL register new value.
\r
143 ;*******************************************************************************
\r
150 ;*******************************************************************************
\r
151 ; Function Name : __MRS_PSP
\r
152 ; Description : Assembler function for the MRS instruction.
\r
154 ; Return : - r0 : Process Stack value.
\r
155 ;*******************************************************************************
\r
161 ;*******************************************************************************
\r
162 ; Function Name : __MSR_PSP
\r
163 ; Description : Assembler function for the MSR instruction.
\r
164 ; Input : - r0 : Process Stack new value.
\r
166 ;*******************************************************************************
\r
169 MSR PSP, r0 ; set Process Stack value
\r
172 ;*******************************************************************************
\r
173 ; Function Name : __MRS_MSP
\r
174 ; Description : Assembler function for the MRS instruction.
\r
176 ; Return : - r0 : Main Stack value.
\r
177 ;*******************************************************************************
\r
183 ;*******************************************************************************
\r
184 ; Function Name : __MSR_MSP
\r
185 ; Description : Assembler function for the MSR instruction.
\r
186 ; Input : - r0 : Main Stack new value.
\r
188 ;*******************************************************************************
\r
191 MSR MSP, r0 ; set Main Stack value
\r
194 ;*******************************************************************************
\r
195 ; Function Name : __SETPRIMASK
\r
196 ; Description : Assembler function to set the PRIMASK.
\r
199 ;*******************************************************************************
\r
205 ;*******************************************************************************
\r
206 ; Function Name : __RESETPRIMASK
\r
207 ; Description : Assembler function to reset the PRIMASK.
\r
210 ;*******************************************************************************
\r
216 ;*******************************************************************************
\r
217 ; Function Name : __SETFAULTMASK
\r
218 ; Description : Assembler function to set the FAULTMASK.
\r
221 ;*******************************************************************************
\r
227 ;*******************************************************************************
\r
228 ; Function Name : __RESETFAULTMASK
\r
229 ; Description : Assembler function to reset the FAULTMASK.
\r
232 ;*******************************************************************************
\r
238 ;*******************************************************************************
\r
239 ; Function Name : __BASEPRICONFIG
\r
240 ; Description : Assembler function to set the Base Priority.
\r
241 ; Input : - r0 : Base Priority new value
\r
243 ;*******************************************************************************
\r
249 ;*******************************************************************************
\r
250 ; Function Name : __GetBASEPRI
\r
251 ; Description : Assembler function to get the Base Priority value.
\r
253 ; Return : - r0 : Base Priority value
\r
254 ;*******************************************************************************
\r
257 MRS r0, BASEPRI_MAX
\r
260 ;*******************************************************************************
\r
261 ; Function Name : __REV_HalfWord
\r
262 ; Description : Reverses the byte order in HalfWord(16-bit) input variable.
\r
263 ; Input : - r0 : specifies the input variable
\r
264 ; Return : - r0 : holds tve variable value after byte reversing.
\r
265 ;*******************************************************************************
\r
271 ;*******************************************************************************
\r
272 ; Function Name : __REV_Word
\r
273 ; Description : Reverses the byte order in Word(32-bit) input variable.
\r
274 ; Input : - r0 : specifies the input variable
\r
275 ; Return : - r0 : holds tve variable value after byte reversing.
\r
276 ;*******************************************************************************
\r
284 ;******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE*****
\r