📄 cortexm3_macro.lst
字号:
ARM Macro Assembler Page 1
1 00000000 ;******************** (C) COPYRIGHT 2008 STMicroelectron
ics ********************
2 00000000 ;* File Name : cortexm3_macro.s
3 00000000 ;* Author : MCD Application Team
4 00000000 ;* Version : V2.0.2
5 00000000 ;* Date : 09/22/2008
6 00000000 ;* Description : Instruction wrappers for special
Cortex-M3 instructions
7 00000000 ;* to be used with RVMDK toolchain.
8 00000000 ;*******************************************************
************************
9 00000000 ; THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS A
T PROVIDING CUSTOMERS
10 00000000 ; WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN OR
DER FOR THEM TO SAVE TIME.
11 00000000 ; AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIAB
LE FOR ANY DIRECT,
12 00000000 ; INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY
CLAIMS ARISING FROM THE
13 00000000 ; CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOM
ERS OF THE CODING
14 00000000 ; INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR
PRODUCTS.
15 00000000 ;*******************************************************
************************
16 00000000
17 00000000 THUMB
18 00000000 REQUIRE8
19 00000000 PRESERVE8
20 00000000
21 00000000 AREA |.text|, CODE, READONLY, ALIGN=
2
22 00000000
23 00000000 ; Exported functions
24 00000000 EXPORT __WFI
25 00000000 EXPORT __WFE
26 00000000 EXPORT __SEV
27 00000000 EXPORT __ISB
28 00000000 EXPORT __DSB
29 00000000 EXPORT __DMB
30 00000000 EXPORT __SVC
31 00000000 EXPORT __MRS_CONTROL
32 00000000 EXPORT __MSR_CONTROL
33 00000000 EXPORT __MRS_PSP
34 00000000 EXPORT __MSR_PSP
35 00000000 EXPORT __MRS_MSP
36 00000000 EXPORT __MSR_MSP
37 00000000 EXPORT __RESETPRIMASK
38 00000000 EXPORT __SETPRIMASK
39 00000000 EXPORT __READ_PRIMASK
40 00000000 EXPORT __RESETFAULTMASK
41 00000000 EXPORT __SETFAULTMASK
42 00000000 EXPORT __READ_FAULTMASK
43 00000000 EXPORT __BASEPRICONFIG
44 00000000 EXPORT __GetBASEPRI
45 00000000 EXPORT __REV_HalfWord
46 00000000 EXPORT __REV_Word
47 00000000 EXPORT CallApplication
ARM Macro Assembler Page 2
48 00000000
49 00000000 CallApplication
50 00000000 F04F 2008 ldr r0, =0x08000800
51 00000004
52 00000004 ;
53 00000004 ; Set the vector table address to the beginning of the a
pplication.
54 00000004 ;
55 00000004 4921 ldr r1, =0xe000ed08
56 00000006 6008 str r0, [r1]
57 00000008
58 00000008 ;
59 00000008 ; Load the stack pointer from the application's vector t
able.
60 00000008 ;
61 00000008 6801 ldr r1, [r0]
62 0000000A 468D mov sp, r1
63 0000000C
64 0000000C ;
65 0000000C ; Load the initial PC from the application's vector tabl
e and branch to
66 0000000C ; the application's entry point.
67 0000000C ;
68 0000000C 6840 ldr r0, [r0, #4]
69 0000000E 4700 bx r0
70 00000010
71 00000010 ;*******************************************************
************************
72 00000010 ; Function Name : __WFI
73 00000010 ; Description : Assembler function for the WFI instru
ction.
74 00000010 ; Input : None
75 00000010 ; Return : None
76 00000010 ;*******************************************************
************************
77 00000010 __WFI
78 00000010
79 00000010 BF30 WFI
80 00000012 4770 BX r14
81 00000014
82 00000014 ;*******************************************************
************************
83 00000014 ; Function Name : __WFE
84 00000014 ; Description : Assembler function for the WFE instru
ction.
85 00000014 ; Input : None
86 00000014 ; Return : None
87 00000014 ;*******************************************************
************************
88 00000014 __WFE
89 00000014
90 00000014 BF20 WFE
91 00000016 4770 BX r14
92 00000018
93 00000018 ;*******************************************************
************************
94 00000018 ; Function Name : __SEV
95 00000018 ; Description : Assembler function for the SEV instru
ction.
ARM Macro Assembler Page 3
96 00000018 ; Input : None
97 00000018 ; Return : None
98 00000018 ;*******************************************************
************************
99 00000018 __SEV
100 00000018
101 00000018 BF40 SEV
102 0000001A 4770 BX r14
103 0000001C
104 0000001C ;*******************************************************
************************
105 0000001C ; Function Name : __ISB
106 0000001C ; Description : Assembler function for the ISB instru
ction.
107 0000001C ; Input : None
108 0000001C ; Return : None
109 0000001C ;*******************************************************
************************
110 0000001C __ISB
111 0000001C
112 0000001C F3BF 8F6F ISB
113 00000020 4770 BX r14
114 00000022
115 00000022 ;*******************************************************
************************
116 00000022 ; Function Name : __DSB
117 00000022 ; Description : Assembler function for the DSB instru
ction.
118 00000022 ; Input : None
119 00000022 ; Return : None
120 00000022 ;*******************************************************
************************
121 00000022 __DSB
122 00000022
123 00000022 F3BF 8F4F DSB
124 00000026 4770 BX r14
125 00000028
126 00000028 ;*******************************************************
************************
127 00000028 ; Function Name : __DMB
128 00000028 ; Description : Assembler function for the DMB instru
ction.
129 00000028 ; Input : None
130 00000028 ; Return : None
131 00000028 ;*******************************************************
************************
132 00000028 __DMB
133 00000028
134 00000028 F3BF 8F5F DMB
135 0000002C 4770 BX r14
136 0000002E
137 0000002E ;*******************************************************
************************
138 0000002E ; Function Name : __SVC
139 0000002E ; Description : Assembler function for the SVC instru
ction.
140 0000002E ; Input : None
141 0000002E ; Return : None
142 0000002E ;*******************************************************
ARM Macro Assembler Page 4
************************
143 0000002E __SVC
144 0000002E
145 0000002E DF01 SVC 0x01
146 00000030 4770 BX r14
147 00000032
148 00000032 ;*******************************************************
************************
149 00000032 ; Function Name : __MRS_CONTROL
150 00000032 ; Description : Assembler function for the MRS instru
ction.
151 00000032 ; Input : None
152 00000032 ; Return : - r0 : Cortex-M3 CONTROL register val
ue.
153 00000032 ;*******************************************************
************************
154 00000032 __MRS_CONTROL
155 00000032
156 00000032 F3EF 8014 MRS r0, CONTROL
157 00000036 4770 BX r14
158 00000038
159 00000038 ;*******************************************************
************************
160 00000038 ; Function Name : __MSR_CONTROL
161 00000038 ; Description : Assembler function for the MSR instru
ction.
162 00000038 ; Input : - r0 : Cortex-M3 CONTROL register new
value.
163 00000038 ; Return : None
164 00000038 ;*******************************************************
************************
165 00000038 __MSR_CONTROL
166 00000038
167 00000038 F380 8814 MSR CONTROL, r0
168 0000003C F3BF 8F6F ISB
169 00000040 4770 BX r14
170 00000042
171 00000042 ;*******************************************************
************************
172 00000042 ; Function Name : __MRS_PSP
173 00000042 ; Description : Assembler function for the MRS instru
ction.
174 00000042 ; Input : None
175 00000042 ; Return : - r0 : Process Stack value.
176 00000042 ;*******************************************************
************************
177 00000042 __MRS_PSP
178 00000042
179 00000042 F3EF 8009 MRS r0, PSP
180 00000046 4770 BX r14
181 00000048
182 00000048 ;*******************************************************
************************
183 00000048 ; Function Name : __MSR_PSP
184 00000048 ; Description : Assembler function for the MSR instru
ction.
185 00000048 ; Input : - r0 : Process Stack new value.
186 00000048 ; Return : None
187 00000048 ;*******************************************************
ARM Macro Assembler Page 5
************************
188 00000048 __MSR_PSP
189 00000048
190 00000048 F380 8809 MSR PSP, r0 ; set Process Stack
value
191 0000004C 4770 BX r14
192 0000004E
193 0000004E ;*******************************************************
************************
194 0000004E ; Function Name : __MRS_MSP
195 0000004E ; Description : Assembler function for the MRS instru
ction.
196 0000004E ; Input : None
197 0000004E ; Return : - r0 : Main Stack value.
198 0000004E ;*******************************************************
************************
199 0000004E __MRS_MSP
200 0000004E
201 0000004E F3EF 8008 MRS r0, MSP
202 00000052 4770 BX r14
203 00000054
204 00000054 ;*******************************************************
************************
205 00000054 ; Function Name : __MSR_MSP
206 00000054 ; Description : Assembler function for the MSR instru
ction.
207 00000054 ; Input : - r0 : Main Stack new value.
208 00000054 ; Return : None
209 00000054 ;*******************************************************
************************
210 00000054 __MSR_MSP
211 00000054
212 00000054 F380 8808 MSR MSP, r0 ; set Main Stack va
lue
213 00000058 4770 BX r14
214 0000005A
215 0000005A ;*******************************************************
************************
216 0000005A ; Function Name : __RESETPRIMASK
217 0000005A ; Description : Assembler function to reset the PRIMA
SK.
218 0000005A ; Input : None
219 0000005A ; Return : None
220 0000005A ;*******************************************************
************************
221 0000005A __RESETPRIMASK
222 0000005A
223 0000005A B662 CPSIE i
224 0000005C 4770 BX r14
225 0000005E
226 0000005E ;*******************************************************
************************
227 0000005E ; Function Name : __SETPRIMASK
228 0000005E ; Description : Assembler function to set the PRIMASK
.
229 0000005E ; Input : None
230 0000005E ; Return : None
231 0000005E ;*******************************************************
************************
ARM Macro Assembler Page 6
232 0000005E __SETPRIMASK
233 0000005E
234 0000005E B672 CPSID i
235 00000060 4770 BX r14
236 00000062
237 00000062 ;*******************************************************
************************
238 00000062 ; Function Name : __READ_PRIMASK
239 00000062 ; Description : Assembler function to get the PRIMASK
value.
240 00000062 ; Input : None
241 00000062 ; Return : - r0 : PRIMASK register value
242 00000062 ;*******************************************************
************************
243 00000062 __READ_PRIMASK
244 00000062
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -