bsp_timer.txt
19.5 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
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
; 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\bsp_timer.o --asm_dir=.\Flash\List\ --list_dir=.\Flash\List\ --depend=.\flash\obj\bsp_timer.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\bsp_timer.crf ..\..\User\bsp\BSP\bsp_timer.c]
THUMB
AREA ||i.TIM1_Init||, CODE, READONLY, ALIGN=2
TIM1_Init PROC
;;;132
;;;133 void TIM1_Init(void)
000000 b51f PUSH {r0-r4,lr}
;;;134 {
;;;135 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
;;;136 NVIC_InitTypeDef NVIC_InitStructure;
;;;137
;;;138 RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);
000002 2101 MOVS r1,#1
000004 4608 MOV r0,r1
000006 f7fffffe BL RCC_APB2PeriphClockCmd
;;;139 TIM_TimeBaseInitStructure.TIM_ClockDivision = TIM_CKD_DIV1;
00000a 2000 MOVS r0,#0
00000c f8ad000c STRH r0,[sp,#0xc]
;;;140 TIM_TimeBaseInitStructure.TIM_CounterMode = TIM_CounterMode_Up;
000010 f8ad0006 STRH r0,[sp,#6]
;;;141 TIM_TimeBaseInitStructure.TIM_Period = 0x20d0;
000014 f24201d0 MOV r1,#0x20d0
000018 9102 STR r1,[sp,#8]
;;;142 TIM_TimeBaseInitStructure.TIM_Prescaler = 0x2710;
00001a f2427110 MOV r1,#0x2710
00001e f8ad1004 STRH r1,[sp,#4]
;;;143 TIM_TimeBaseInitStructure.TIM_RepetitionCounter = 0x00;
000022 f88d000e STRB r0,[sp,#0xe]
;;;144
;;;145 NVIC_InitStructure.NVIC_IRQChannel=TIM1_UP_TIM10_IRQn; //定时器3中断
000026 2119 MOVS r1,#0x19
000028 f88d1000 STRB r1,[sp,#0]
;;;146 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=0x00; //抢占优先级1
00002c f88d0001 STRB r0,[sp,#1]
;;;147 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0x00; //子优先级3
000030 f88d0002 STRB r0,[sp,#2]
;;;148 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
000034 2001 MOVS r0,#1
000036 f88d0003 STRB r0,[sp,#3]
;;;149 NVIC_Init(&NVIC_InitStructure);
00003a 4668 MOV r0,sp
00003c f7fffffe BL NVIC_Init
;;;150
;;;151 TIM_TimeBaseInit(TIM1,&TIM_TimeBaseInitStructure);
000040 4c09 LDR r4,|L1.104|
000042 a901 ADD r1,sp,#4
000044 4620 MOV r0,r4
000046 f7fffffe BL TIM_TimeBaseInit
;;;152 TIM_ClearFlag(TIM1,TIM_FLAG_Update); //必须先清除配置时候产生的更新标志
00004a 2101 MOVS r1,#1
00004c 4620 MOV r0,r4
00004e f7fffffe BL TIM_ClearFlag
;;;153 TIM_ITConfig(TIM1,TIM_IT_Update,ENABLE); //使能中断,中断事件为定时器工薪事件
000052 2201 MOVS r2,#1
000054 4611 MOV r1,r2
000056 4620 MOV r0,r4
000058 f7fffffe BL TIM_ITConfig
;;;154 TIM_Cmd(TIM1,ENABLE); //使能定时器
00005c 2101 MOVS r1,#1
00005e 4620 MOV r0,r4
000060 f7fffffe BL TIM_Cmd
;;;155 }
000064 bd1f POP {r0-r4,pc}
;;;156 int32_t bsp_GetRunTime(void)
ENDP
000066 0000 DCW 0x0000
|L1.104|
DCD 0x40010000
AREA ||i.TIM3_IRQHandler||, CODE, READONLY, ALIGN=2
TIM3_IRQHandler PROC
;;;32
;;;33 void TIM3_IRQHandler(void) //TIM3_IRQHandler
000000 b510 PUSH {r4,lr}
;;;34 {
;;;35 CPU_SR_ALLOC();
;;;36
;;;37 CPU_CRITICAL_ENTER();
000002 f7fffffe BL CPU_SR_Save
000006 4604 MOV r4,r0
;;;38 OSIntEnter();
000008 f7fffffe BL OSIntEnter
;;;39 CPU_CRITICAL_EXIT();
00000c 4620 MOV r0,r4
00000e f7fffffe BL CPU_SR_Restore
;;;40 if (TIM_GetITStatus(TIM3, TIM_IT_Update) != RESET)
000012 4c07 LDR r4,|L2.48|
000014 2101 MOVS r1,#1
000016 4620 MOV r0,r4
000018 f7fffffe BL TIM_GetITStatus
00001c b118 CBZ r0,|L2.38|
;;;41 {
;;;42 TIM_ClearITPendingBit(TIM3, TIM_IT_Update);
00001e 2101 MOVS r1,#1
000020 4620 MOV r0,r4
000022 f7fffffe BL TIM_ClearITPendingBit
|L2.38|
;;;43 }
;;;44 OSIntExit();
000026 e8bd4010 POP {r4,lr}
00002a f7ffbffe B.W OSIntExit
;;;45 }
;;;46
ENDP
00002e 0000 DCW 0x0000
|L2.48|
DCD 0x40000400
AREA ||i.TIM3_Int_Init||, CODE, READONLY, ALIGN=2
TIM3_Int_Init PROC
;;;5
;;;6 void TIM3_Int_Init(u16 arr,u16 psc)
000000 b57f PUSH {r0-r6,lr}
;;;7 {
000002 4604 MOV r4,r0
000004 460d MOV r5,r1
;;;8 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
;;;9 NVIC_InitTypeDef NVIC_InitStructure;
;;;10
;;;11 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3,ENABLE); ///使能TIM3时钟
000006 2101 MOVS r1,#1
000008 2002 MOVS r0,#2
00000a f7fffffe BL RCC_APB1PeriphClockCmd
;;;12
;;;13 TIM_TimeBaseInitStructure.TIM_Period = arr; //自动重装载值
00000e 9402 STR r4,[sp,#8]
;;;14 TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //定时器分频
000010 f8ad5004 STRH r5,[sp,#4]
;;;15 TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
000014 2400 MOVS r4,#0
000016 f8ad4006 STRH r4,[sp,#6]
;;;16 TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
00001a f8ad400c STRH r4,[sp,#0xc]
;;;17
;;;18 TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStructure);//初始化TIM3
00001e 4d12 LDR r5,|L3.104|
000020 a901 ADD r1,sp,#4
000022 4628 MOV r0,r5
000024 f7fffffe BL TIM_TimeBaseInit
;;;19 TIM_ARRPreloadConfig(TIM3, ENABLE);
000028 2101 MOVS r1,#1
00002a 4628 MOV r0,r5
00002c f7fffffe BL TIM_ARRPreloadConfig
;;;20
;;;21 TIM_ITConfig(TIM3,TIM_IT_Update,ENABLE); //允许定时器3更新中断
000030 2201 MOVS r2,#1
000032 4611 MOV r1,r2
000034 4628 MOV r0,r5
000036 f7fffffe BL TIM_ITConfig
;;;22
;;;23 NVIC_InitStructure.NVIC_IRQChannel=TIM3_IRQn; //定时器3中断
00003a 211d MOVS r1,#0x1d
00003c f88d1000 STRB r1,[sp,#0]
;;;24 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=14; //抢占优先级1
000040 210e MOVS r1,#0xe
000042 f88d1001 STRB r1,[sp,#1]
;;;25 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; //子优先级3
000046 f88d4002 STRB r4,[sp,#2]
;;;26 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
00004a 2101 MOVS r1,#1
00004c f88d1003 STRB r1,[sp,#3]
;;;27 NVIC_Init(&NVIC_InitStructure);
000050 4668 MOV r0,sp
000052 f7fffffe BL NVIC_Init
;;;28
;;;29 TIM_Cmd(TIM3,ENABLE); //使能定时器3
000056 2101 MOVS r1,#1
000058 4628 MOV r0,r5
00005a f7fffffe BL TIM_Cmd
;;;30 TIM_SetCounter(TIM3,0);//清空计时器
00005e 2100 MOVS r1,#0
000060 4628 MOV r0,r5
000062 f7fffffe BL TIM_SetCounter
;;;31 }
000066 bd7f POP {r0-r6,pc}
;;;32
ENDP
|L3.104|
DCD 0x40000400
AREA ||i.TIM4_IRQHandler||, CODE, READONLY, ALIGN=2
TIM4_IRQHandler PROC
;;;74
;;;75 void TIM4_IRQHandler(void) //TIM3_IRQHandler
000000 b510 PUSH {r4,lr}
;;;76 {
;;;77 CPU_SR_ALLOC();
;;;78
;;;79 CPU_CRITICAL_ENTER();
000002 f7fffffe BL CPU_SR_Save
000006 4604 MOV r4,r0
;;;80 OSIntEnter();
000008 f7fffffe BL OSIntEnter
;;;81 CPU_CRITICAL_EXIT();
00000c 4620 MOV r0,r4
00000e f7fffffe BL CPU_SR_Restore
;;;82 if (TIM_GetITStatus(TIM4, TIM_IT_Update) != RESET)
000012 4c07 LDR r4,|L4.48|
000014 2101 MOVS r1,#1
000016 4620 MOV r0,r4
000018 f7fffffe BL TIM_GetITStatus
00001c b118 CBZ r0,|L4.38|
;;;83 {
;;;84 TIM_ClearITPendingBit(TIM4, TIM_IT_Update);
00001e 2101 MOVS r1,#1
000020 4620 MOV r0,r4
000022 f7fffffe BL TIM_ClearITPendingBit
|L4.38|
;;;85 }
;;;86 OSIntExit();
000026 e8bd4010 POP {r4,lr}
00002a f7ffbffe B.W OSIntExit
;;;87 }
;;;88
ENDP
00002e 0000 DCW 0x0000
|L4.48|
DCD 0x40000800
AREA ||i.TIM4_Int_Init||, CODE, READONLY, ALIGN=2
TIM4_Int_Init PROC
;;;47
;;;48 void TIM4_Int_Init(u16 arr,u16 psc)
000000 b57f PUSH {r0-r6,lr}
;;;49 {
000002 4604 MOV r4,r0
000004 460d MOV r5,r1
;;;50 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
;;;51 NVIC_InitTypeDef NVIC_InitStructure;
;;;52
;;;53 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM4,ENABLE); ///使能TIM3时钟
000006 2101 MOVS r1,#1
000008 2004 MOVS r0,#4
00000a f7fffffe BL RCC_APB1PeriphClockCmd
;;;54
;;;55 TIM_TimeBaseInitStructure.TIM_Period = arr; //自动重装载值
00000e 9402 STR r4,[sp,#8]
;;;56 TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //定时器分频
000010 f8ad5004 STRH r5,[sp,#4]
;;;57 TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
000014 2400 MOVS r4,#0
000016 f8ad4006 STRH r4,[sp,#6]
;;;58 TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
00001a f8ad400c STRH r4,[sp,#0xc]
;;;59
;;;60 TIM_TimeBaseInit(TIM4,&TIM_TimeBaseInitStructure);//初始化TIM3
00001e 4d12 LDR r5,|L5.104|
000020 a901 ADD r1,sp,#4
000022 4628 MOV r0,r5
000024 f7fffffe BL TIM_TimeBaseInit
;;;61 TIM_ARRPreloadConfig(TIM4, ENABLE);
000028 2101 MOVS r1,#1
00002a 4628 MOV r0,r5
00002c f7fffffe BL TIM_ARRPreloadConfig
;;;62
;;;63 TIM_ITConfig(TIM4,TIM_IT_Update,ENABLE); //允许定时器3更新中断
000030 2201 MOVS r2,#1
000032 4611 MOV r1,r2
000034 4628 MOV r0,r5
000036 f7fffffe BL TIM_ITConfig
;;;64
;;;65 NVIC_InitStructure.NVIC_IRQChannel=TIM4_IRQn; //定时器3中断
00003a 211e MOVS r1,#0x1e
00003c f88d1000 STRB r1,[sp,#0]
;;;66 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=14; //抢占优先级1
000040 210e MOVS r1,#0xe
000042 f88d1001 STRB r1,[sp,#1]
;;;67 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; //子优先级3
000046 f88d4002 STRB r4,[sp,#2]
;;;68 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
00004a 2101 MOVS r1,#1
00004c f88d1003 STRB r1,[sp,#3]
;;;69 NVIC_Init(&NVIC_InitStructure);
000050 4668 MOV r0,sp
000052 f7fffffe BL NVIC_Init
;;;70
;;;71 TIM_Cmd(TIM4,ENABLE); //使能定时器3
000056 2101 MOVS r1,#1
000058 4628 MOV r0,r5
00005a f7fffffe BL TIM_Cmd
;;;72 TIM_SetCounter(TIM4,0);//清空计时器
00005e 2100 MOVS r1,#0
000060 4628 MOV r0,r5
000062 f7fffffe BL TIM_SetCounter
;;;73 }
000066 bd7f POP {r0-r6,pc}
;;;74
ENDP
|L5.104|
DCD 0x40000800
AREA ||i.TIM7_IRQHandler||, CODE, READONLY, ALIGN=2
TIM7_IRQHandler PROC
;;;116
;;;117 void TIM7_IRQHandler(void) //TIM3_IRQHandler
000000 b510 PUSH {r4,lr}
;;;118 {
;;;119 CPU_SR_ALLOC();
;;;120
;;;121 CPU_CRITICAL_ENTER();
000002 f7fffffe BL CPU_SR_Save
000006 4604 MOV r4,r0
;;;122 OSIntEnter();
000008 f7fffffe BL OSIntEnter
;;;123 CPU_CRITICAL_EXIT();
00000c 4620 MOV r0,r4
00000e f7fffffe BL CPU_SR_Restore
;;;124 if (TIM_GetITStatus(TIM7, TIM_IT_Update) != RESET)
000012 4c07 LDR r4,|L6.48|
000014 2101 MOVS r1,#1
000016 4620 MOV r0,r4
000018 f7fffffe BL TIM_GetITStatus
00001c b118 CBZ r0,|L6.38|
;;;125 {
;;;126 TIM_ClearITPendingBit(TIM7, TIM_IT_Update);
00001e 2101 MOVS r1,#1
000020 4620 MOV r0,r4
000022 f7fffffe BL TIM_ClearITPendingBit
|L6.38|
;;;127 }
;;;128 OSIntExit();
000026 e8bd4010 POP {r4,lr}
00002a f7ffbffe B.W OSIntExit
;;;129 }
;;;130
ENDP
00002e 0000 DCW 0x0000
|L6.48|
DCD 0x40001400
AREA ||i.TIM7_Int_Init||, CODE, READONLY, ALIGN=2
TIM7_Int_Init PROC
;;;89
;;;90 void TIM7_Int_Init(u16 arr,u16 psc)
000000 b57f PUSH {r0-r6,lr}
;;;91 {
000002 4604 MOV r4,r0
000004 460d MOV r5,r1
;;;92 TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStructure;
;;;93 NVIC_InitTypeDef NVIC_InitStructure;
;;;94
;;;95 RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM7,ENABLE); ///使能TIM3时钟
000006 2101 MOVS r1,#1
000008 2020 MOVS r0,#0x20
00000a f7fffffe BL RCC_APB1PeriphClockCmd
;;;96
;;;97 TIM_TimeBaseInitStructure.TIM_Period = arr; //自动重装载值
00000e 9402 STR r4,[sp,#8]
;;;98 TIM_TimeBaseInitStructure.TIM_Prescaler=psc; //定时器分频
000010 f8ad5004 STRH r5,[sp,#4]
;;;99 TIM_TimeBaseInitStructure.TIM_CounterMode=TIM_CounterMode_Up; //向上计数模式
000014 2400 MOVS r4,#0
000016 f8ad4006 STRH r4,[sp,#6]
;;;100 TIM_TimeBaseInitStructure.TIM_ClockDivision=TIM_CKD_DIV1;
00001a f8ad400c STRH r4,[sp,#0xc]
;;;101
;;;102 TIM_TimeBaseInit(TIM7,&TIM_TimeBaseInitStructure);//初始化TIM3
00001e 4d12 LDR r5,|L7.104|
000020 a901 ADD r1,sp,#4
000022 4628 MOV r0,r5
000024 f7fffffe BL TIM_TimeBaseInit
;;;103 TIM_ARRPreloadConfig(TIM7, ENABLE);
000028 2101 MOVS r1,#1
00002a 4628 MOV r0,r5
00002c f7fffffe BL TIM_ARRPreloadConfig
;;;104
;;;105 TIM_ITConfig(TIM7,TIM_IT_Update,ENABLE); //允许定时器3更新中断
000030 2201 MOVS r2,#1
000032 4611 MOV r1,r2
000034 4628 MOV r0,r5
000036 f7fffffe BL TIM_ITConfig
;;;106
;;;107 NVIC_InitStructure.NVIC_IRQChannel=TIM7_IRQn; //定时器3中断
00003a 2137 MOVS r1,#0x37
00003c f88d1000 STRB r1,[sp,#0]
;;;108 NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority=14; //抢占优先级1
000040 210e MOVS r1,#0xe
000042 f88d1001 STRB r1,[sp,#1]
;;;109 NVIC_InitStructure.NVIC_IRQChannelSubPriority=0; //子优先级3
000046 f88d4002 STRB r4,[sp,#2]
;;;110 NVIC_InitStructure.NVIC_IRQChannelCmd=ENABLE;
00004a 2101 MOVS r1,#1
00004c f88d1003 STRB r1,[sp,#3]
;;;111 NVIC_Init(&NVIC_InitStructure);
000050 4668 MOV r0,sp
000052 f7fffffe BL NVIC_Init
;;;112
;;;113 TIM_Cmd(TIM7,ENABLE); //使能定时器3
000056 2101 MOVS r1,#1
000058 4628 MOV r0,r5
00005a f7fffffe BL TIM_Cmd
;;;114 TIM_SetCounter(TIM7,0);//清空计时器
00005e 2100 MOVS r1,#0
000060 4628 MOV r0,r5
000062 f7fffffe BL TIM_SetCounter
;;;115 }
000066 bd7f POP {r0-r6,pc}
;;;116
ENDP
|L7.104|
DCD 0x40001400
AREA ||i.bsp_GetRunTime||, CODE, READONLY, ALIGN=1
bsp_GetRunTime PROC
;;;155 }
;;;156 int32_t bsp_GetRunTime(void)
000000 b508 PUSH {r3,lr}
;;;157 {
;;;158 OS_ERR err;
;;;159 return OSTimeGet(&err);
000002 4668 MOV r0,sp
000004 f7fffffe BL OSTimeGet
;;;160 }
000008 bd08 POP {r3,pc}
;;;161
ENDP
;*** Start embedded assembler ***
#line 1 "..\\..\\User\\bsp\\BSP\\bsp_timer.c"
AREA ||.rev16_text||, CODE
THUMB
EXPORT |__asm___11_bsp_timer_c_d8d71895____REV16|
#line 129 "..\\..\\Libraries\\CMSIS\\Include\\core_cmInstr.h"
|__asm___11_bsp_timer_c_d8d71895____REV16| PROC
#line 130
rev16 r0, r0
bx lr
ENDP
AREA ||.revsh_text||, CODE
THUMB
EXPORT |__asm___11_bsp_timer_c_d8d71895____REVSH|
#line 144
|__asm___11_bsp_timer_c_d8d71895____REVSH| PROC
#line 145
revsh r0, r0
bx lr
ENDP
AREA ||.rrx_text||, CODE
THUMB
EXPORT |__asm___11_bsp_timer_c_d8d71895____RRX|
#line 300
|__asm___11_bsp_timer_c_d8d71895____RRX| PROC
#line 301
rrx r0, r0
bx lr
ENDP
;*** End embedded assembler ***