]> git.sur5r.net Git - freertos/blob - Demo/CORTEX_STM32F103_IAR/STM32F10xFWLib/src/cortexm3_macro.s
Prepare for V4.7.1 release.
[freertos] / Demo / CORTEX_STM32F103_IAR / STM32F10xFWLib / src / cortexm3_macro.s
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
7 ; History:\r
8 ; 04/02/2007: V0.2\r
9 ; 02/19/2007: V0.1\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
18     \r
19   RSEG CODE:CODE(2)\r
20 \r
21   ; Exported functions\r
22   EXPORT __WFI\r
23   EXPORT __WFE\r
24   EXPORT __SEV\r
25   EXPORT __ISB\r
26   EXPORT __DSB\r
27   EXPORT __DMB\r
28   EXPORT __SVC\r
29   EXPORT __MRS_CONTROL\r
30   EXPORT __MSR_CONTROL\r
31   EXPORT __SETPRIMASK\r
32   EXPORT __RESETPRIMASK\r
33   EXPORT __SETFAULTMASK\r
34   EXPORT __RESETFAULTMASK\r
35   EXPORT __BASEPRICONFIG\r
36   EXPORT __GetBASEPRI\r
37   EXPORT __REV_HalfWord\r
38   EXPORT __REV_Word  \r
39 \r
40 ;*******************************************************************************\r
41 ; Function Name  : __WFI\r
42 ; Description    : Assembler function for the WFI instruction.\r
43 ; Input          : None\r
44 ; Return         : None\r
45 ;*******************************************************************************\r
46 __WFI \r
47  \r
48     WFI\r
49     BX r14\r
50 \r
51 ;*******************************************************************************\r
52 ; Function Name  : __WFE\r
53 ; Description    : Assembler function for the WFE instruction.\r
54 ; Input          : None\r
55 ; Return         : None\r
56 ;*******************************************************************************\r
57 __WFE\r
58 \r
59     WFE\r
60     BX r14\r
61 \r
62 ;*******************************************************************************\r
63 ; Function Name  : __SEV\r
64 ; Description    : Assembler function for the SEV instruction.\r
65 ; Input          : None\r
66 ; Return         : None\r
67 ;*******************************************************************************\r
68 __SEV\r
69 \r
70     SEV\r
71     BX r14\r
72 \r
73 ;*******************************************************************************\r
74 ; Function Name  : __ISB\r
75 ; Description    : Assembler function for the ISB instruction.\r
76 ; Input          : None\r
77 ; Return         : None\r
78 ;*******************************************************************************\r
79 __ISB\r
80 \r
81     ISB\r
82     BX r14\r
83 \r
84 ;*******************************************************************************\r
85 ; Function Name  : __DSB\r
86 ; Description    : Assembler function for the DSB instruction.\r
87 ; Input          : None\r
88 ; Return         : None\r
89 ;*******************************************************************************\r
90 __DSB\r
91 \r
92     DSB\r
93     BX r14\r
94 \r
95 ;*******************************************************************************\r
96 ; Function Name  : __DMB\r
97 ; Description    : Assembler function for the DMB instruction.\r
98 ; Input          : None\r
99 ; Return         : None\r
100 ;*******************************************************************************\r
101 __DMB\r
102 \r
103     DMB\r
104     BX r14\r
105 \r
106 ;*******************************************************************************\r
107 ; Function Name  : __SVC\r
108 ; Description    : Assembler function for the SVC instruction.\r
109 ; Input          : None\r
110 ; Return         : None\r
111 ;*******************************************************************************\r
112 __SVC\r
113 \r
114     SVC 0x01\r
115     BX r14\r
116 \r
117 ;*******************************************************************************\r
118 ; Function Name  : __MRS_CONTROL\r
119 ; Description    : Assembler function for the MRS instruction.\r
120 ; Input          : None\r
121 ; Return         : - r0 : Cortex-M3 CONTROL register value.\r
122 ;*******************************************************************************\r
123 __MRS_CONTROL\r
124 \r
125   MRS r0, CONTROL\r
126   BX r14\r
127 \r
128 ;*******************************************************************************\r
129 ; Function Name  : __MSR_CONTROL\r
130 ; Description    : Assembler function for the MSR instruction.\r
131 ; Input          : - r0 : Cortex-M3 CONTROL register new value.  \r
132 ; Return         : None\r
133 ;*******************************************************************************\r
134 __MSR_CONTROL\r
135 \r
136   MSR CONTROL, r0\r
137   ISB\r
138   BX r14\r
139 \r
140 ;*******************************************************************************\r
141 ; Function Name  : __SETPRIMASK\r
142 ; Description    : Assembler function to set the PRIMASK.\r
143 ; Input          : None \r
144 ; Return         : None\r
145 ;*******************************************************************************\r
146 __SETPRIMASK\r
147 \r
148   CPSID i\r
149   BX r14\r
150 \r
151 ;*******************************************************************************\r
152 ; Function Name  : __RESETPRIMASK\r
153 ; Description    : Assembler function to reset the PRIMASK.\r
154 ; Input          : None \r
155 ; Return         : None\r
156 ;*******************************************************************************\r
157 __RESETPRIMASK\r
158 \r
159   CPSIE i\r
160   BX r14\r
161 \r
162 ;*******************************************************************************\r
163 ; Function Name  : __SETFAULTMASK\r
164 ; Description    : Assembler function to set the FAULTMASK.\r
165 ; Input          : None \r
166 ; Return         : None\r
167 ;*******************************************************************************\r
168 __SETFAULTMASK\r
169 \r
170   CPSID f\r
171   BX r14\r
172 \r
173 ;*******************************************************************************\r
174 ; Function Name  : __RESETFAULTMASK\r
175 ; Description    : Assembler function to reset the FAULTMASK.\r
176 ; Input          : None \r
177 ; Return         : None\r
178 ;*******************************************************************************\r
179 __RESETFAULTMASK\r
180 \r
181   CPSIE f\r
182   BX r14\r
183 \r
184 ;*******************************************************************************\r
185 ; Function Name  : __BASEPRICONFIG\r
186 ; Description    : Assembler function to set the Base Priority.\r
187 ; Input          : - r0 : Base Priority new value  \r
188 ; Return         : None\r
189 ;*******************************************************************************\r
190 __BASEPRICONFIG\r
191 \r
192   MSR BASEPRI, r0\r
193   BX r14\r
194 \r
195 ;*******************************************************************************\r
196 ; Function Name  : __GetBASEPRI\r
197 ; Description    : Assembler function to get the Base Priority value.\r
198 ; Input          : None \r
199 ; Return         : - r0 : Base Priority value \r
200 ;*******************************************************************************\r
201 __GetBASEPRI\r
202 \r
203   MRS r0, BASEPRI_MAX\r
204   BX r14\r
205 \r
206 ;*******************************************************************************\r
207 ; Function Name  : __REV_HalfWord\r
208 ; Description    : Reverses the byte order in HalfWord(16-bit) input variable.\r
209 ; Input          : - r0 : specifies the input variable\r
210 ; Return         : - r0 : holds tve variable value after byte reversing.\r
211 ;*******************************************************************************\r
212 __REV_HalfWord \r
213  \r
214   REV16 r0, r0\r
215   BX r14\r
216 \r
217 ;*******************************************************************************\r
218 ; Function Name  : __REV_Word\r
219 ; Description    : Reverses the byte order in Word(32-bit) input variable.\r
220 ; Input          : - r0 : specifies the input variable\r
221 ; Return         : - r0 : holds tve variable value after byte reversing.\r
222 ;*******************************************************************************\r
223 __REV_Word \r
224  \r
225   REV r0, r0\r
226   BX r14\r
227   \r
228   END\r
229   \r
230 ;******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE*****\r