📄 stm32f10x_tim.lst
字号:
259 if (TIM_OCInitStruct->TIM_Channel == TIM_Channel_3)
\ 0000007A 2A46 MOV R2,R5
\ 0000007C 022A CMP R2,#+2
\ 0000007E 028C LDRH R2,[R0, #+32]
\ 00000080 0CD1 BNE.N ??TIM_OCInit_7
260 {
261 /* Disable the Channel 3: Reset the CCE Bit */
262 TIMx->CCER &= CCER_CC3E_Reset;
\ 00000082 .... LDR.N R5,??DataTable2 ;; 0xfeff
\ 00000084 1540 ANDS R5,R5,R2
\ 00000086 0584 STRH R5,[R0, #+32]
263
264 /* Select the Output Compare Mode */
265 tmpccmrx |= TIM_OCInitStruct->TIM_OCMode;
\ 00000088 0D88 LDRH R5,[R1, #+0]
\ 0000008A 2543 ORRS R5,R5,R4
266
267 /* Set the Capture Compare Register value */
268 TIMx->CCR3 = TIM_OCInitStruct->TIM_Pulse;
\ 0000008C 8A88 LDRH R2,[R1, #+4]
\ 0000008E 8287 STRH R2,[R0, #+60]
269
270 /* Set the Capture Compare Enable Bit */
271 tmpccer |= CCER_CC3E_Set;
272
273 /* Set the Capture Compare Polarity */
274 tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 8;
\ 00000090 C988 LDRH R1,[R1, #+6]
\ 00000092 0902 LSLS R1,R1,#+8
\ 00000094 51F48072 ORRS R2,R1,#0x100
\ 00000098 1A43 ORRS R2,R2,R3
\ 0000009A 0DE0 B.N ??TIM_OCInit_8
275 }
276 else /* TIM_Channel_4 */
277 {
278 /* Disable the Channel 4: Reset the CCE Bit */
279 TIMx->CCER &= CCER_CC4E_Reset;
\ ??TIM_OCInit_7:
\ 0000009C .... LDR.N R5,??DataTable3 ;; 0xefff
\ 0000009E 1540 ANDS R5,R5,R2
\ 000000A0 0584 STRH R5,[R0, #+32]
280
281 /* Select the Output Compare Mode */
282 tmpccmrx |= (u32)TIM_OCInitStruct->TIM_OCMode << 8;
\ 000000A2 0A88 LDRH R2,[R1, #+0]
\ 000000A4 54EA0225 ORRS R5,R4,R2, LSL #+8
283
284 /* Set the Capture Compare Register value */
285 TIMx->CCR4 = TIM_OCInitStruct->TIM_Pulse;
\ 000000A8 8A88 LDRH R2,[R1, #+4]
\ 000000AA A0F84020 STRH R2,[R0, #+64]
286
287 /* Set the Capture Compare Enable Bit */
288 tmpccer |= CCER_CC4E_Set;
289
290 /* Set the Capture Compare Polarity */
291 tmpccer |= (u32)TIM_OCInitStruct->TIM_OCPolarity << 12;
\ 000000AE C988 LDRH R1,[R1, #+6]
\ 000000B0 0903 LSLS R1,R1,#+12
\ 000000B2 51F48052 ORRS R2,R1,#0x1000
\ 000000B6 1A43 ORRS R2,R2,R3
292 }
293
294 TIMx->CCMR2 = (u16)tmpccmrx;
\ ??TIM_OCInit_8:
\ 000000B8 8583 STRH R5,[R0, #+28]
295 }
296 }
297
298 TIMx->CCER = (u16)tmpccer;
\ ??TIM_OCInit_5:
\ 000000BA 0284 STRH R2,[R0, #+32]
299 }
\ 000000BC 30BD POP {R4,R5,PC} ;; return
\ 000000BE 00BF Nop
\ ??TIM_OCInit_0:
\ 000000C0 ........ DC32 Tab_OCModeMask
300
301 /*******************************************************************************
302 * Function Name : TIM_ICInit
303 * Description : Initializes the TIMx peripheral according to the specified
304 * parameters in the TIM_ICInitStruct.
305 * Input : - TIMx: where x can be 2, 3 or 4 to select the TIM peripheral.
306 * - TIM_ICInitStruct: pointer to a TIM_ICInitTypeDef structure
307 * that contains the configuration information for the specified
308 * TIM peripheral.
309 * Output : None
310 * Return : None
311 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
312 void TIM_ICInit(TIM_TypeDef* TIMx, TIM_ICInitTypeDef* TIM_ICInitStruct)
313 {
\ TIM_ICInit:
\ 00000000 30B5 PUSH {R4,R5,LR}
\ 00000002 0400 MOVS R4,R0
\ 00000004 0D00 MOVS R5,R1
314 /* Check the parameters */
315 assert(IS_TIM_IC_MODE(TIM_ICInitStruct->TIM_ICMode));
316 assert(IS_TIM_CHANNEL(TIM_ICInitStruct->TIM_Channel));
317 assert(IS_TIM_IC_POLARITY(TIM_ICInitStruct->TIM_ICPolarity));
318 assert(IS_TIM_IC_SELECTION(TIM_ICInitStruct->TIM_ICSelection));
319 assert(IS_TIM_IC_PRESCALER(TIM_ICInitStruct->TIM_ICPrescaler));
320 assert(IS_TIM_IC_FILTER(TIM_ICInitStruct->TIM_ICFilter));
321
322 if (TIM_ICInitStruct->TIM_ICMode == TIM_ICMode_ICAP)
\ 00000006 2888 LDRH R0,[R5, #+0]
\ 00000008 0728 CMP R0,#+7
\ 0000000A 2FD1 BNE.N ??TIM_ICInit_0
323 {
324 if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_1)
\ 0000000C 6888 LDRH R0,[R5, #+2]
\ 0000000E 0028 CMP R0,#+0
\ 00000010 0AD1 BNE.N ??TIM_ICInit_1
325 {
326 /* TI1 Configuration */
327 TI1_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
328 TIM_ICInitStruct->TIM_ICSelection,
329 TIM_ICInitStruct->TIM_ICFilter);
\ 00000012 AB7A LDRB R3,[R5, #+10]
\ 00000014 EA88 LDRH R2,[R5, #+6]
\ 00000016 A988 LDRH R1,[R5, #+4]
\ 00000018 2000 MOVS R0,R4
\ 0000001A ........ BL TI1_Config
330
331 /* Set the Input Capture Prescaler value */
332 TIM_SetIC1Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
\ 0000001E 2989 LDRH R1,[R5, #+8]
\ 00000020 2000 MOVS R0,R4
\ 00000022 ........ BL TIM_SetIC1Prescaler
\ 00000026 30BD POP {R4,R5,PC}
333 }
334 else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_2)
\ ??TIM_ICInit_1:
\ 00000028 0128 CMP R0,#+1
\ 0000002A 0AD1 BNE.N ??TIM_ICInit_2
335 {
336 /* TI2 Configuration */
337 TI2_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
338 TIM_ICInitStruct->TIM_ICSelection,
339 TIM_ICInitStruct->TIM_ICFilter);
\ 0000002C AB7A LDRB R3,[R5, #+10]
\ 0000002E EA88 LDRH R2,[R5, #+6]
\ 00000030 A988 LDRH R1,[R5, #+4]
\ 00000032 2000 MOVS R0,R4
\ 00000034 ........ BL TI2_Config
340
341 /* Set the Input Capture Prescaler value */
342 TIM_SetIC2Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
\ 00000038 2989 LDRH R1,[R5, #+8]
\ 0000003A 2000 MOVS R0,R4
\ 0000003C ........ BL TIM_SetIC2Prescaler
\ 00000040 30BD POP {R4,R5,PC}
343 }
344 else if (TIM_ICInitStruct->TIM_Channel == TIM_Channel_3)
\ ??TIM_ICInit_2:
\ 00000042 0228 CMP R0,#+2
\ 00000044 AB7A LDRB R3,[R5, #+10]
\ 00000046 EA88 LDRH R2,[R5, #+6]
\ 00000048 A988 LDRH R1,[R5, #+4]
\ 0000004A 07D1 BNE.N ??TIM_ICInit_3
345 {
346 /* TI3 Configuration */
347 TI3_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
348 TIM_ICInitStruct->TIM_ICSelection,
349 TIM_ICInitStruct->TIM_ICFilter);
\ 0000004C 2000 MOVS R0,R4
\ 0000004E ........ BL TI3_Config
350
351 /* Set the Input Capture Prescaler value */
352 TIM_SetIC3Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
\ 00000052 2989 LDRH R1,[R5, #+8]
\ 00000054 2000 MOVS R0,R4
\ 00000056 ........ BL TIM_SetIC3Prescaler
\ 0000005A 30BD POP {R4,R5,PC}
353 }
354 else /* TIM_Channel_4 */
355 {
356 /* TI4 Configuration */
357 TI4_Config(TIMx, TIM_ICInitStruct->TIM_ICPolarity,
358 TIM_ICInitStruct->TIM_ICSelection,
359 TIM_ICInitStruct->TIM_ICFilter);
\ ??TIM_ICInit_3:
\ 0000005C 2000 MOVS R0,R4
\ 0000005E ........ BL TI4_Config
360
361 /* Set the Input Capture Prescaler value */
362 TIM_SetIC4Prescaler(TIMx, TIM_ICInitStruct->TIM_ICPrescaler);
\ 00000062 2989 LDRH R1,[R5, #+8]
\ 00000064 2000 MOVS R0,R4
\ 00000066 ........ BL TIM_SetIC4Prescaler
\ 0000006A 30BD POP {R4,R5,PC}
363 }
364 }
365 else
366 {
367 PWMI_Config(TIMx, TIM_ICInitStruct);
\ ??TIM_ICInit_0:
\ 0000006C 2000 MOVS R0,R4
\ 0000006E ........ BL PWMI_Config
368 }
369 }
\ 00000072 30BD POP {R4,R5,PC} ;; return
370
371 /*******************************************************************************
372 * Function Name : TIM_TimeBaseStructInit
373 * Description : Fills each TIM_TimeBaseInitStruct member with its default value.
374 * Input : - TIM_TimeBaseInitStruct: pointer to a TIM_TimeBaseInitTypeDef
375 * structure which will be initialized.
376 * Output : None
377 * Return : None
378 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
379 void TIM_TimeBaseStructInit(TIM_TimeBaseInitTypeDef* TIM_TimeBaseInitStruct)
380 {
381 /* Set the default configuration */
382 TIM_TimeBaseInitStruct->TIM_Period = TIM_Period_Reset_Mask;
\ TIM_TimeBaseStructInit:
\ 00000000 0021 MOVS R1,#+0
\ 00000002 0180 STRH R1,[R0, #+0]
383 TIM_TimeBaseInitStruct->TIM_Prescaler = TIM_Prescaler_Reset_Mask;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -