]> git.sur5r.net Git - freertos/blob - Demo/Common/drivers/ST/STM32F10xFWLib/src/cortexm3_macro_rvds.s
Start to re-arrange files to include FreeRTOS+ in main download.
[freertos] / Demo / Common / drivers / ST / STM32F10xFWLib / src / cortexm3_macro_rvds.s
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
7 ; History:\r
8 ; 05/21/2007: V0.3\r
9 ; 04/02/2007: V0.2\r
10 ; 02/05/2007: V0.1\r
11 ; 09/29/2006: V0.01\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
20     \r
21   THUMB\r
22   REQUIRE8\r
23   PRESERVE8\r
24     \r
25   AREA |.text|, CODE, READONLY, ALIGN=2\r
26 \r
27   ; Exported functions\r
28   EXPORT __WFI\r
29   EXPORT __WFE\r
30   EXPORT __SEV\r
31   EXPORT __ISB\r
32   EXPORT __DSB\r
33   EXPORT __DMB\r
34   EXPORT __SVC\r
35   EXPORT __MRS_CONTROL\r
36   EXPORT __MSR_CONTROL\r
37   EXPORT __MRS_PSP\r
38   EXPORT __MSR_PSP\r
39   EXPORT __MRS_MSP\r
40   EXPORT __MSR_MSP   \r
41   EXPORT __SETPRIMASK\r
42   EXPORT __RESETPRIMASK\r
43   EXPORT __SETFAULTMASK\r
44   EXPORT __RESETFAULTMASK\r
45   EXPORT __BASEPRICONFIG\r
46   EXPORT __GetBASEPRI\r
47   EXPORT __REV_HalfWord\r
48   EXPORT __REV_Word\r
49 \r
50 ;*******************************************************************************\r
51 ; Function Name  : __WFI\r
52 ; Description    : Assembler function for the WFI instruction.\r
53 ; Input          : None\r
54 ; Return         : None\r
55 ;*******************************************************************************\r
56 __WFI \r
57  \r
58     WFI\r
59     BX r14\r
60 \r
61 ;*******************************************************************************\r
62 ; Function Name  : __WFE\r
63 ; Description    : Assembler function for the WFE instruction.\r
64 ; Input          : None\r
65 ; Return         : None\r
66 ;*******************************************************************************\r
67 __WFE\r
68 \r
69     WFE\r
70     BX r14\r
71 \r
72 ;*******************************************************************************\r
73 ; Function Name  : __SEV\r
74 ; Description    : Assembler function for the SEV instruction.\r
75 ; Input          : None\r
76 ; Return         : None\r
77 ;*******************************************************************************\r
78 __SEV\r
79 \r
80     SEV\r
81     BX r14\r
82 \r
83 ;*******************************************************************************\r
84 ; Function Name  : __ISB\r
85 ; Description    : Assembler function for the ISB instruction.\r
86 ; Input          : None\r
87 ; Return         : None\r
88 ;*******************************************************************************\r
89 __ISB\r
90 \r
91     ISB\r
92     BX r14\r
93 \r
94 ;*******************************************************************************\r
95 ; Function Name  : __DSB\r
96 ; Description    : Assembler function for the DSB instruction.\r
97 ; Input          : None\r
98 ; Return         : None\r
99 ;*******************************************************************************\r
100 __DSB\r
101 \r
102     DSB\r
103     BX r14\r
104 \r
105 ;*******************************************************************************\r
106 ; Function Name  : __DMB\r
107 ; Description    : Assembler function for the DMB instruction.\r
108 ; Input          : None\r
109 ; Return         : None\r
110 ;*******************************************************************************\r
111 __DMB\r
112 \r
113     DMB\r
114     BX r14\r
115 \r
116 ;*******************************************************************************\r
117 ; Function Name  : __SVC\r
118 ; Description    : Assembler function for the SVC instruction.\r
119 ; Input          : None\r
120 ; Return         : None\r
121 ;*******************************************************************************\r
122 __SVC\r
123 \r
124     SVC 0x01\r
125     BX r14\r
126 \r
127 ;*******************************************************************************\r
128 ; Function Name  : __MRS_CONTROL\r
129 ; Description    : Assembler function for the MRS instruction.\r
130 ; Input          : None\r
131 ; Return         : - r0 : Cortex-M3 CONTROL register value.\r
132 ;*******************************************************************************\r
133 __MRS_CONTROL\r
134 \r
135   MRS r0, CONTROL\r
136   BX r14\r
137 \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
142 ; Return         : None\r
143 ;*******************************************************************************\r
144 __MSR_CONTROL\r
145 \r
146   MSR CONTROL, r0\r
147   ISB\r
148   BX r14\r
149 \r
150 ;*******************************************************************************\r
151 ; Function Name  : __MRS_PSP\r
152 ; Description    : Assembler function for the MRS instruction.\r
153 ; Input          : None\r
154 ; Return         : - r0 : Process Stack value.\r
155 ;*******************************************************************************\r
156 __MRS_PSP\r
157 \r
158   MRS r0, PSP\r
159   BX r14\r
160 \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
165 ; Return         : None\r
166 ;*******************************************************************************\r
167 __MSR_PSP \r
168  \r
169     MSR PSP, r0 ; set Process Stack value\r
170     BX r14\r
171 \r
172 ;*******************************************************************************\r
173 ; Function Name  : __MRS_MSP\r
174 ; Description    : Assembler function for the MRS instruction.\r
175 ; Input          : None\r
176 ; Return         : - r0 : Main Stack value.\r
177 ;*******************************************************************************\r
178 __MRS_MSP\r
179 \r
180   MRS r0, MSP\r
181   BX r14\r
182 \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
187 ; Return         : None\r
188 ;*******************************************************************************\r
189 __MSR_MSP \r
190  \r
191     MSR MSP, r0 ; set Main Stack value\r
192     BX r14\r
193 \r
194 ;*******************************************************************************\r
195 ; Function Name  : __SETPRIMASK\r
196 ; Description    : Assembler function to set the PRIMASK.\r
197 ; Input          : None \r
198 ; Return         : None\r
199 ;*******************************************************************************\r
200 __SETPRIMASK\r
201 \r
202   CPSID i\r
203   BX r14\r
204 \r
205 ;*******************************************************************************\r
206 ; Function Name  : __RESETPRIMASK\r
207 ; Description    : Assembler function to reset the PRIMASK.\r
208 ; Input          : None \r
209 ; Return         : None\r
210 ;*******************************************************************************\r
211 __RESETPRIMASK\r
212 \r
213   CPSIE i\r
214   BX r14\r
215 \r
216 ;*******************************************************************************\r
217 ; Function Name  : __SETFAULTMASK\r
218 ; Description    : Assembler function to set the FAULTMASK.\r
219 ; Input          : None \r
220 ; Return         : None\r
221 ;*******************************************************************************\r
222 __SETFAULTMASK\r
223 \r
224   CPSID f\r
225   BX r14\r
226 \r
227 ;*******************************************************************************\r
228 ; Function Name  : __RESETFAULTMASK\r
229 ; Description    : Assembler function to reset the FAULTMASK.\r
230 ; Input          : None \r
231 ; Return         : None\r
232 ;*******************************************************************************\r
233 __RESETFAULTMASK\r
234 \r
235   CPSIE f\r
236   BX r14\r
237 \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
242 ; Return         : None\r
243 ;*******************************************************************************\r
244 __BASEPRICONFIG\r
245 \r
246   MSR BASEPRI, r0\r
247   BX r14\r
248 \r
249 ;*******************************************************************************\r
250 ; Function Name  : __GetBASEPRI\r
251 ; Description    : Assembler function to get the Base Priority value.\r
252 ; Input          : None \r
253 ; Return         : - r0 : Base Priority value \r
254 ;*******************************************************************************\r
255 __GetBASEPRI\r
256 \r
257   MRS r0, BASEPRI_MAX\r
258   BX r14\r
259 \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
266 __REV_HalfWord \r
267  \r
268   REV16 r0, r0\r
269   BX r14\r
270 \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
277 __REV_Word \r
278  \r
279   REV r0, r0\r
280   BX r14\r
281     \r
282   END\r
283   \r
284 ;******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE*****\r