📄 stm32f10x_tim.lst
字号:
248 TIM_OC2Init:
249 .LFB29:
357:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
358:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /**
359:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * @brief Initializes the TIMx Channel2 according to the specified
360:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * parameters in the TIM_OCInitStruct.
361:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * @param TIMx: where x can be 1, 2, 3, 4, 5 or 8 to select the TIM
362:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * peripheral.
363:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * @param TIM_OCInitStruct: pointer to a TIM_OCInitTypeDef structure
364:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * that contains the configuration information for the specified
365:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * TIM peripheral.
366:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** * @retval : None
367:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** */
368:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** void TIM_OC2Init(TIM_TypeDef* TIMx, TIM_OCInitTypeDef* TIM_OCInitStruct)
369:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** {
250 .loc 1 369 0
251 @ args = 0, pretend = 0, frame = 8
252 @ frame_needed = 0, uses_anonymous_args = 0
253 .LVL35:
254 0000 73B5 push {r0, r1, r4, r5, r6, lr}
255 .LCFI2:
256 .LVL36:
257 .loc 1 369 0
258 0002 0190 str r0, [sp, #4]
259 .LVL37:
370:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** uint16_t tmpccmrx = 0, tmpccer = 0, tmpcr2 = 0;
371:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
372:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Check the parameters */
373:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_123458_PERIPH(TIMx));
374:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_OC_MODE(TIM_OCInitStruct->TIM_OCMode));
375:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_OUTPUT_STATE(TIM_OCInitStruct->TIM_OutputState));
376:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_OC_POLARITY(TIM_OCInitStruct->TIM_OCPolarity));
377:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Disable the Channel 2: Reset the CC2E Bit */
378:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** TIMx->CCER &= CCER_CC2E_Reset;
260 .loc 1 378 0
261 0004 038C ldrh r3, [r0, #32]
262 .LVL38:
263 .loc 1 369 0
264 0006 0C46 mov r4, r1
265 .LVL39:
266 .loc 1 378 0
267 0008 23F01003 bic r3, r3, #16
268 000c 1B04 lsls r3, r3, #16
269 000e 1B0C lsrs r3, r3, #16
270 0010 0384 strh r3, [r0, #32] @ movhi
379:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
380:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Get the TIMx CCER register value */
381:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer = TIMx->CCER;
271 .loc 1 381 0
272 0012 0199 ldr r1, [sp, #4]
273 .LVL40:
382:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Get the TIMx CR2 register value */
383:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpcr2 = TIMx->CR2;
384:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
385:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Get the TIMx CCMR1 register value */
386:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccmrx = TIMx->CCMR1;
387:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
388:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Reset the Output Compare Mode Bits */
389:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccmrx &= CCMR_OC24M_Mask;
390:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
391:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Select the Output Compare Mode */
392:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccmrx |= (uint16_t)(TIM_OCInitStruct->TIM_OCMode << 8);
274 .loc 1 392 0
275 0014 2688 ldrh r6, [r4, #0]
276 .loc 1 381 0
277 0016 0B8C ldrh r3, [r1, #32]
278 .loc 1 383 0
279 0018 8A88 ldrh r2, [r1, #4]
393:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
394:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Reset the Output Polarity level */
395:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer &= CCER_CC2P_Reset;
280 .loc 1 395 0
281 001a 23F02003 bic r3, r3, #32
282 .LVL41:
283 .loc 1 383 0
284 001e 1FFA82FC uxth ip, r2
285 .LVL42:
286 .loc 1 386 0
287 0022 0A8B ldrh r2, [r1, #24]
288 .loc 1 395 0
289 0024 1B04 lsls r3, r3, #16
290 .LVL43:
291 .loc 1 386 0
292 0026 95B2 uxth r5, r2
293 .LVL44:
396:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Set the Output Compare Polarity */
397:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCPolarity << 4);
294 .loc 1 397 0
295 0028 2289 ldrh r2, [r4, #8]
296 .loc 1 395 0
297 002a 1B0C lsrs r3, r3, #16
298 .LVL45:
299 .loc 1 397 0
300 002c 43EA0213 orr r3, r3, r2, lsl #4
301 .LVL46:
398:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
399:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Set the Output State */
400:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputState << 4);
302 .loc 1 400 0
303 0030 6288 ldrh r2, [r4, #2]
304 .loc 1 397 0
305 0032 9BB2 uxth r3, r3
306 .LVL47:
307 .loc 1 400 0
308 0034 43EA0213 orr r3, r3, r2, lsl #4
309 .LVL48:
310 0038 98B2 uxth r0, r3
311 .LVL49:
401:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
402:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Set the Capture Compare Register value */
403:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** TIMx->CCR2 = TIM_OCInitStruct->TIM_Pulse;
312 .loc 1 403 0
313 003a E388 ldrh r3, [r4, #6]
314 003c 0B87 strh r3, [r1, #56] @ movhi
404:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
405:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** if((*(uint32_t*)&TIMx == TIM1_BASE) || (*(uint32_t*)&TIMx == TIM8_BASE))
315 .loc 1 405 0
316 003e 019A ldr r2, [sp, #4]
317 0040 184B ldr r3, .L17
318 0042 9A42 cmp r2, r3
319 0044 03D0 beq .L14
320 .LVL50:
321 0046 03F50063 add r3, r3, #2048
322 004a 9A42 cmp r2, r3
323 004c 1BD1 bne .L15
324 .L14:
406:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** {
407:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_OUTPUTN_STATE(TIM_OCInitStruct->TIM_OutputNState));
408:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_OCN_POLARITY(TIM_OCInitStruct->TIM_OCNPolarity));
409:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_OCNIDLE_STATE(TIM_OCInitStruct->TIM_OCNIdleState));
410:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** assert_param(IS_TIM_OCIDLE_STATE(TIM_OCInitStruct->TIM_OCIdleState));
411:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
412:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Reset the Output N Polarity level */
413:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer &= CCER_CC2NP_Reset;
414:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Set the Output N Polarity */
415:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OCNPolarity << 4);
325 .loc 1 415 0
326 004e 6389 ldrh r3, [r4, #10]
327 .loc 1 413 0
328 0050 4FF67F72 movw r2, #65407
329 .LVL51:
330 0054 00EA0202 and r2, r0, r2
331 .LVL52:
332 .loc 1 415 0
333 0058 42EA0312 orr r2, r2, r3, lsl #4
334 .LVL53:
416:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Reset the Output N State */
417:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer &= CCER_CC2NE_Reset;
335 .loc 1 417 0
336 005c 4FF6BF73 movw r3, #65471
337 .LVL54:
338 0060 02EA0303 and r3, r2, r3
339 .LVL55:
418:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c ****
419:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Set the Output N State */
420:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpccer |= (uint16_t)(TIM_OCInitStruct->TIM_OutputNState << 4);
340 .loc 1 420 0
341 0064 A288 ldrh r2, [r4, #4]
342 0066 43EA0213 orr r3, r3, r2, lsl #4
343 .LVL56:
344 006a 98B2 uxth r0, r3
345 .LVL57:
421:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Reset the Ouput Compare and Output Compare N IDLE State */
422:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpcr2 &= CR2_OIS2_Reset;
423:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpcr2 &= CR2_OIS2N_Reset;
424:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Set the Output Idle state */
425:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCIdleState << 2);
346 .loc 1 425 0
347 006c A289 ldrh r2, [r4, #12]
348 .loc 1 423 0
349 006e 47F2FF33 movw r3, #29695
350 .LVL58:
351 0072 0CEA0303 and r3, ip, r3
352 .LVL59:
353 .loc 1 425 0
354 0076 43EA8203 orr r3, r3, r2, lsl #2
355 .LVL60:
426:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Set the Output N Idle state */
427:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** tmpcr2 |= (uint16_t)(TIM_OCInitStruct->TIM_OCNIdleState << 2);
356 .loc 1 427 0
357 007a E289 ldrh r2, [r4, #14]
358 .loc 1 425 0
359 007c 9BB2 uxth r3, r3
360 .LVL61:
361 .loc 1 427 0
362 007e 43EA8203 orr r3, r3, r2, lsl #2
363 .LVL62:
364 0082 1FFA83FC uxth ip, r3
365 .LVL63:
366 .L15:
428:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** }
429:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** /* Write to TIMx CR2 */
430:lib/STM32F10x_StdPeriph_Driver/src/stm32f10x_tim.c **** TIMx->CR2 = tmpcr2;
367 .loc 1 430 0
368 0086 019B ldr r3, [sp, #4]
369 0088 A3F804C0 strh ip, [r3, #4] @ movhi
370 .loc 1 389 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -