stm32f4xx_wwdg.txt
9.05 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
; generated by Component: ARM Compiler 5.06 update 6 (build 750) Tool: ArmCC [4d3637]
; commandline ArmCC [--c99 --list --split_sections --debug -c --asm --interleave -o.\flash\obj\stm32f4xx_wwdg.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\stm32f4xx_wwdg.d --cpu=Cortex-M4.fp --apcs=interwork -O1 --diag_suppress=9931,870 -I..\..\Libraries\CMSIS\Include -I..\..\Libraries\CMSIS\Device\ST\STM32F4xx\Include -I..\..\Libraries\STM32F4xx_StdPeriph_Driver\inc -I..\..\uCOS-III\uC-CPU -I..\..\uCOS-III\uC-LIB -I..\..\uCOS-III\uCOS-III\Ports -I..\..\uCOS-III\uCOS-III\Source -I..\..\uCOS-III\uC-CPU\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uC-LIB\Ports\ARM-Cortex-M4\RealView -I..\..\uCOS-III\uCOS-III\Ports\ARM-Cortex-M4\Generic\RealView -I..\..\User -I..\..\User\bsp -I..\..\User\bsp\inc -I..\..\User\libapp -I..\..\RL-ARM\Config -I..\..\RL-ARM\Driver -I..\..\RL-ARM\RL-RTX\inc -I..\..\User\bsp\BSP -I..\..\RL-ARM\RL-CAN -I..\..\Libraries\DSP_LIB\Include -I..\..\MODBUS\modbus\rtu -I..\..\MODBUS\BARE\port -I..\..\MODBUS\modbus\include -I..\..\User\bsp\BSP -I..\..\PLC -I..\..\Avoid -I..\..\User\parameter -I..\..\User\LaserMotionCtr -I..\..\User\W5100S -I..\..\User\bsp -I..\..\User\CHASSIS -I..\..\User\CONTROLFUNCTION -I..\..\User\DATAUPDATE -I..\..\User\HARAWARE -I..\..\User\MOTORDRIVER -I..\..\User\NAVAGATION -I..\..\User\PLATFORM -I..\..\User\SENSOR -I.\RTE\_Flash -IC:\Users\YDJ\AppData\Local\Arm\Packs\ARM\CMSIS\5.5.1\CMSIS\Core\Include -IC:\Users\YDJ\AppData\Local\Arm\Packs\Keil\STM32F4xx_DFP\2.13.0\Drivers\CMSIS\Device\ST\STM32F4xx\Include -D__UVISION_VERSION=527 -D_RTE_ -DSTM32F407xx -DUSE_STDPERIPH_DRIVER -DSTM32F40_41xxx -D__RTX -D__FPU_USED=1 --omf_browse=.\flash\obj\stm32f4xx_wwdg.crf ..\..\Libraries\STM32F4xx_StdPeriph_Driver\src\stm32f4xx_wwdg.c]
THUMB
AREA ||i.WWDG_ClearFlag||, CODE, READONLY, ALIGN=2
WWDG_ClearFlag PROC
;;;285 */
;;;286 void WWDG_ClearFlag(void)
000000 4901 LDR r1,|L1.8|
;;;287 {
;;;288 WWDG->SR = (uint32_t)RESET;
000002 2000 MOVS r0,#0
000004 6008 STR r0,[r1,#0]
;;;289 }
000006 4770 BX lr
;;;290
ENDP
|L1.8|
DCD 0x40002c08
AREA ||i.WWDG_DeInit||, CODE, READONLY, ALIGN=1
WWDG_DeInit PROC
;;;137 */
;;;138 void WWDG_DeInit(void)
000000 b510 PUSH {r4,lr}
;;;139 {
;;;140 RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, ENABLE);
000002 2101 MOVS r1,#1
000004 02cc LSLS r4,r1,#11
000006 4620 MOV r0,r4
000008 f7fffffe BL RCC_APB1PeriphResetCmd
;;;141 RCC_APB1PeriphResetCmd(RCC_APB1Periph_WWDG, DISABLE);
00000c 4620 MOV r0,r4
00000e e8bd4010 POP {r4,lr}
000012 2100 MOVS r1,#0
000014 f7ffbffe B.W RCC_APB1PeriphResetCmd
;;;142 }
;;;143
ENDP
AREA ||i.WWDG_Enable||, CODE, READONLY, ALIGN=2
WWDG_Enable PROC
;;;238 */
;;;239 void WWDG_Enable(uint8_t Counter)
000000 4902 LDR r1,|L3.12|
;;;240 {
;;;241 /* Check the parameters */
;;;242 assert_param(IS_WWDG_COUNTER(Counter));
;;;243 WWDG->CR = WWDG_CR_WDGA | Counter;
000002 f0400080 ORR r0,r0,#0x80
000006 6008 STR r0,[r1,#0]
;;;244 }
000008 4770 BX lr
;;;245 /**
ENDP
00000a 0000 DCW 0x0000
|L3.12|
DCD 0x40002c00
AREA ||i.WWDG_EnableIT||, CODE, READONLY, ALIGN=2
WWDG_EnableIT PROC
;;;195 */
;;;196 void WWDG_EnableIT(void)
000000 4901 LDR r1,|L4.8|
;;;197 {
;;;198 *(__IO uint32_t *) CFR_EWI_BB = (uint32_t)ENABLE;
000002 2001 MOVS r0,#1
000004 6008 STR r0,[r1,#0]
;;;199 }
000006 4770 BX lr
;;;200
ENDP
|L4.8|
DCD 0x420580a4
AREA ||i.WWDG_GetFlagStatus||, CODE, READONLY, ALIGN=2
WWDG_GetFlagStatus PROC
;;;265 */
;;;266 FlagStatus WWDG_GetFlagStatus(void)
000000 2000 MOVS r0,#0
;;;267 {
;;;268 FlagStatus bitstatus = RESET;
;;;269
;;;270 if ((WWDG->SR) != (uint32_t)RESET)
000002 4903 LDR r1,|L5.16|
000004 6809 LDR r1,[r1,#0]
000006 2900 CMP r1,#0
000008 d000 BEQ |L5.12|
;;;271 {
;;;272 bitstatus = SET;
00000a 2001 MOVS r0,#1
|L5.12|
;;;273 }
;;;274 else
;;;275 {
;;;276 bitstatus = RESET;
;;;277 }
;;;278 return bitstatus;
;;;279 }
00000c 4770 BX lr
;;;280
ENDP
00000e 0000 DCW 0x0000
|L5.16|
DCD 0x40002c08
AREA ||i.WWDG_SetCounter||, CODE, READONLY, ALIGN=2
WWDG_SetCounter PROC
;;;207 */
;;;208 void WWDG_SetCounter(uint8_t Counter)
000000 4902 LDR r1,|L6.12|
;;;209 {
;;;210 /* Check the parameters */
;;;211 assert_param(IS_WWDG_COUNTER(Counter));
;;;212 /* Write to T[6:0] bits to configure the counter value, no need to do
;;;213 a read-modify-write; writing a 0 to WDGA bit does nothing */
;;;214 WWDG->CR = Counter & BIT_MASK;
000002 f000007f AND r0,r0,#0x7f
000006 6008 STR r0,[r1,#0]
;;;215 }
000008 4770 BX lr
;;;216 /**
ENDP
00000a 0000 DCW 0x0000
|L6.12|
DCD 0x40002c00
AREA ||i.WWDG_SetPrescaler||, CODE, READONLY, ALIGN=2
WWDG_SetPrescaler PROC
;;;153 */
;;;154 void WWDG_SetPrescaler(uint32_t WWDG_Prescaler)
000000 4a03 LDR r2,|L7.16|
;;;155 {
;;;156 uint32_t tmpreg = 0;
;;;157 /* Check the parameters */
;;;158 assert_param(IS_WWDG_PRESCALER(WWDG_Prescaler));
;;;159 /* Clear WDGTB[1:0] bits */
;;;160 tmpreg = WWDG->CFR & CFR_WDGTB_MASK;
000002 6811 LDR r1,[r2,#0]
000004 f42171c0 BIC r1,r1,#0x180
;;;161 /* Set WDGTB[1:0] bits according to WWDG_Prescaler value */
;;;162 tmpreg |= WWDG_Prescaler;
000008 4301 ORRS r1,r1,r0
;;;163 /* Store the new value */
;;;164 WWDG->CFR = tmpreg;
00000a 6011 STR r1,[r2,#0]
;;;165 }
00000c 4770 BX lr
;;;166
ENDP
00000e 0000 DCW 0x0000
|L7.16|
DCD 0x40002c04
AREA ||i.WWDG_SetWindowValue||, CODE, READONLY, ALIGN=2
WWDG_SetWindowValue PROC
;;;172 */
;;;173 void WWDG_SetWindowValue(uint8_t WindowValue)
000000 b508 PUSH {r3,lr}
;;;174 {
;;;175 __IO uint32_t tmpreg = 0;
;;;176
;;;177 /* Check the parameters */
;;;178 assert_param(IS_WWDG_WINDOW_VALUE(WindowValue));
;;;179 /* Clear W[6:0] bits */
;;;180
;;;181 tmpreg = WWDG->CFR & CFR_W_MASK;
000002 4906 LDR r1,|L8.28|
000004 680a LDR r2,[r1,#0]
000006 f022027f BIC r2,r2,#0x7f
00000a 9200 STR r2,[sp,#0]
;;;182
;;;183 /* Set W[6:0] bits according to WindowValue value */
;;;184 tmpreg |= WindowValue & (uint32_t) BIT_MASK;
00000c 9a00 LDR r2,[sp,#0]
00000e f000007f AND r0,r0,#0x7f
000012 4310 ORRS r0,r0,r2
000014 9000 STR r0,[sp,#0]
;;;185
;;;186 /* Store the new value */
;;;187 WWDG->CFR = tmpreg;
000016 9800 LDR r0,[sp,#0]
000018 6008 STR r0,[r1,#0]
;;;188 }
00001a bd08 POP {r3,pc}
;;;189
ENDP
|L8.28|
DCD 0x40002c04
;*** Start embedded assembler ***
#line 1 "..\\..\\Libraries\\STM32F4xx_StdPeriph_Driver\\src\\stm32f4xx_wwdg.c"
AREA ||.rev16_text||, CODE
THUMB
EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____REV16|
#line 129 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____REV16| PROC
#line 130
rev16 r0, r0
bx lr
ENDP
AREA ||.revsh_text||, CODE
THUMB
EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____REVSH|
#line 144
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____REVSH| PROC
#line 145
revsh r0, r0
bx lr
ENDP
AREA ||.rrx_text||, CODE
THUMB
EXPORT |__asm___16_stm32f4xx_wwdg_c_9668c0ca____RRX|
#line 300
|__asm___16_stm32f4xx_wwdg_c_9668c0ca____RRX| PROC
#line 301
rrx r0, r0
bx lr
ENDP
;*** End embedded assembler ***