📄 stm32f10x_gpio.lst
字号:
462 tmpreg |= GPIO_PinSource;
463
464 AFIO->EVCR = tmpreg;
\ 00000006 044C LDR.N R4,??GPIO_EventOutputConfig_0+0x4 ;; 0xff80
\ 00000008 1C40 ANDS R4,R4,R3
\ 0000000A 54EA0010 ORRS R0,R4,R0, LSL #+4
\ 0000000E 0143 ORRS R1,R1,R0
\ 00000010 1160 STR R1,[R2, #+0]
465 }
\ 00000012 10BD POP {R4,PC} ;; return
\ ??GPIO_EventOutputConfig_0:
\ 00000014 00000140 DC32 0x40010000
\ 00000018 80FF0000 DC32 0xff80
466
467 /*******************************************************************************
468 * Function Name : GPIO_EventOutputCmd
469 * Description : Enables or disables the Event Output.
470 * Input : - NewState: new state of the Event output.
471 * This parameter can be: ENABLE or DISABLE.
472 * Output : None
473 * Return : None
474 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
475 void GPIO_EventOutputCmd(FunctionalState NewState)
476 {
477 /* Check the parameters */
478 assert_param(IS_FUNCTIONAL_STATE(NewState));
479
480 *(vu32 *) EVCR_EVOE_BB = (u32)NewState;
\ GPIO_EventOutputCmd:
\ 00000000 0149 LDR.N R1,??GPIO_EventOutputCmd_0 ;; 0x4220001c
\ 00000002 0860 STR R0,[R1, #+0]
481 }
\ 00000004 7047 BX LR ;; return
\ 00000006 00BF Nop
\ ??GPIO_EventOutputCmd_0:
\ 00000008 1C002042 DC32 0x4220001c
482
483 /*******************************************************************************
484 * Function Name : GPIO_PinRemapConfig
485 * Description : Changes the mapping of the specified pin.
486 * Input : - GPIO_Remap: selects the pin to remap.
487 * This parameter can be one of the following values:
488 * - GPIO_Remap_SPI1
489 * - GPIO_Remap_I2C1
490 * - GPIO_Remap_USART1
491 * - GPIO_Remap_USART2
492 * - GPIO_PartialRemap_USART3
493 * - GPIO_FullRemap_USART3
494 * - GPIO_PartialRemap_TIM1
495 * - GPIO_FullRemap_TIM1
496 * - GPIO_PartialRemap1_TIM2
497 * - GPIO_PartialRemap2_TIM2
498 * - GPIO_FullRemap_TIM2
499 * - GPIO_PartialRemap_TIM3
500 * - GPIO_FullRemap_TIM3
501 * - GPIO_Remap_TIM4
502 * - GPIO_Remap1_CAN
503 * - GPIO_Remap2_CAN
504 * - GPIO_Remap_PD01
505 * - GPIO_Remap_TIM5CH4_LSI
506 * - GPIO_Remap_ADC1_ETRGINJ
507 * - GPIO_Remap_ADC1_ETRGREG
508 * - GPIO_Remap_ADC2_ETRGINJ
509 * - GPIO_Remap_ADC2_ETRGREG
510 * - GPIO_Remap_SWJ_NoJTRST
511 * - GPIO_Remap_SWJ_JTAGDisable
512 * - GPIO_Remap_SWJ_Disable
513 * - NewState: new state of the port pin remapping.
514 * This parameter can be: ENABLE or DISABLE.
515 * Output : None
516 * Return : None
517 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
518 void GPIO_PinRemapConfig(u32 GPIO_Remap, FunctionalState NewState)
519 {
\ GPIO_PinRemapConfig:
\ 00000000 70B5 PUSH {R4-R6,LR}
520 u32 tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00;
521
522 /* Check the parameters */
523 assert_param(IS_GPIO_REMAP(GPIO_Remap));
524 assert_param(IS_FUNCTIONAL_STATE(NewState));
525
526 tmpreg = AFIO->MAPR;
\ 00000002 164A LDR.N R2,??GPIO_PinRemapConfig_0 ;; 0x40010004
\ 00000004 1368 LDR R3,[R2, #+0]
527
528 tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10;
\ 00000006 10F47024 ANDS R4,R0,#0xF0000
\ 0000000A 2500 MOVS R5,R4
\ 0000000C 2D0C LSRS R5,R5,#+16
529 tmp = GPIO_Remap & LSB_MASK;
\ 0000000E 84B2 UXTH R4,R0
530
531 if ((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK))
\ 00000010 10F44016 ANDS R6,R0,#0x300000
\ 00000014 B6F5401F CMP R6,#+3145728
\ 00000018 06D1 BNE.N ??GPIO_PinRemapConfig_1
532 {
533 tmpreg &= DBGAFR_SWJCFG_MASK;
\ 0000001A 7FF07065 MVNS R5,#+251658240
\ 0000001E 2B40 ANDS R3,R3,R5
534 AFIO->MAPR &= DBGAFR_SWJCFG_MASK;
\ 00000020 1668 LDR R6,[R2, #+0]
\ 00000022 3540 ANDS R5,R5,R6
\ 00000024 1560 STR R5,[R2, #+0]
\ 00000026 0FE0 B.N ??GPIO_PinRemapConfig_2
535 }
536 else if ((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK)
\ ??GPIO_PinRemapConfig_1:
\ 00000028 C602 LSLS R6,R0,#+11
\ 0000002A 05D5 BPL.N ??GPIO_PinRemapConfig_3
537 {
538 tmp1 = ((u32)0x03) << tmpmask;
539 tmpreg &= ~tmp1;
540 tmpreg |= ~DBGAFR_SWJCFG_MASK;
\ 0000002C 0326 MOVS R6,#+3
\ 0000002E AE40 LSLS R6,R6,R5
\ 00000030 B343 BICS R3,R3,R6
\ 00000032 53F07063 ORRS R3,R3,#0xF000000
\ 00000036 07E0 B.N ??GPIO_PinRemapConfig_2
541 }
542 else
543 {
544 tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15)*0x10));
545 tmpreg |= ~DBGAFR_SWJCFG_MASK;
\ ??GPIO_PinRemapConfig_3:
\ 00000038 0500 MOVS R5,R0
\ 0000003A 6D0D LSRS R5,R5,#+21
\ 0000003C 2D01 LSLS R5,R5,#+4
\ 0000003E 14FA05F5 LSLS R5,R4,R5
\ 00000042 AB43 BICS R3,R3,R5
\ 00000044 53F07063 ORRS R3,R3,#0xF000000
546 }
547
548 if (NewState != DISABLE)
\ ??GPIO_PinRemapConfig_2:
\ 00000048 0029 CMP R1,#+0
\ 0000004A 05D0 BEQ.N ??GPIO_PinRemapConfig_4
549 {
550 tmpreg |= (tmp << ((GPIO_Remap >> 0x15)*0x10));
\ 0000004C 1900 MOVS R1,R3
\ 0000004E 2300 MOVS R3,R4
\ 00000050 400D LSRS R0,R0,#+21
\ 00000052 0001 LSLS R0,R0,#+4
\ 00000054 8340 LSLS R3,R3,R0
\ 00000056 0B43 ORRS R3,R3,R1
551 }
552
553 AFIO->MAPR = tmpreg;
\ ??GPIO_PinRemapConfig_4:
\ 00000058 1360 STR R3,[R2, #+0]
554 }
\ 0000005A 70BD POP {R4-R6,PC} ;; return
\ ??GPIO_PinRemapConfig_0:
\ 0000005C 04000140 DC32 0x40010004
555
556 /*******************************************************************************
557 * Function Name : GPIO_EXTILineConfig
558 * Description : Selects the GPIO pin used as EXTI Line.
559 * Input : - GPIO_PortSource: selects the GPIO port to be used as
560 * source for EXTI lines.
561 * This parameter can be GPIO_PortSourceGPIOx where x can be
562 * (A..G).
563 * - GPIO_PinSource: specifies the EXTI line to be configured.
564 * This parameter can be GPIO_PinSourcex where x can be (0..15).
565 * Output : None
566 * Return : None
567 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
568 void GPIO_EXTILineConfig(u8 GPIO_PortSource, u8 GPIO_PinSource)
569 {
\ GPIO_EXTILineConfig:
\ 00000000 10B5 PUSH {R4,LR}
\ 00000002 0A00 MOVS R2,R1
\ 00000004 9210 ASRS R2,R2,#+2
\ 00000006 084B LDR.N R3,??GPIO_EXTILineConfig_0 ;; 0x40010008
\ 00000008 13EB8202 ADDS R2,R3,R2, LSL #+2
\ 0000000C 8907 LSLS R1,R1,#+30
\ 0000000E 890F LSRS R1,R1,#+30
\ 00000010 8900 LSLS R1,R1,#+2
\ 00000012 1368 LDR R3,[R2, #+0]
\ 00000014 0F24 MOVS R4,#+15
\ 00000016 8C40 LSLS R4,R4,R1
\ 00000018 A343 BICS R3,R3,R4
\ 0000001A 1360 STR R3,[R2, #+0]
570 u32 tmp = 0x00;
571
572 /* Check the parameters */
573 assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));
574 assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
575
576 tmp = ((u32)0x0F) << (0x04 * (GPIO_PinSource & (u8)0x03));
577
578 AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;
579 AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((u32)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (u8)0x03)));
\ 0000001C 1368 LDR R3,[R2, #+0]
\ 0000001E 8840 LSLS R0,R0,R1
\ 00000020 1843 ORRS R0,R0,R3
\ 00000022 1060 STR R0,[R2, #+0]
580 }
\ 00000024 10BD POP {R4,PC} ;; return
\ 00000026 00BF Nop
\ ??GPIO_EXTILineConfig_0:
\ 00000028 08000140 DC32 0x40010008
581
582 /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/
Maximum stack usage in bytes:
Function CSTACK
-------- ------
GPIO_AFIODeInit 4
GPIO_DeInit 4
GPIO_EXTILineConfig 8
GPIO_EventOutputCmd 0
GPIO_EventOutputConfig 8
GPIO_Init 24
GPIO_PinLockConfig 0
GPIO_PinRemapConfig 16
GPIO_ReadInputData 0
GPIO_ReadInputDataBit 4
GPIO_ReadOutputData 0
GPIO_ReadOutputDataBit 4
GPIO_ResetBits 0
GPIO_SetBits 0
GPIO_StructInit 0
GPIO_Write 0
GPIO_WriteBit 0
Segment part sizes:
Function/Label Bytes
-------------- -----
GPIO_DeInit 204
GPIO_AFIODeInit 20
GPIO_Init 172
GPIO_StructInit 20
GPIO_ReadInputDataBit 16
GPIO_ReadInputData 6
GPIO_ReadOutputDataBit 16
GPIO_ReadOutputData 6
GPIO_SetBits 4
GPIO_ResetBits 4
GPIO_WriteBit 12
GPIO_Write 4
GPIO_PinLockConfig 16
GPIO_EventOutputConfig 28
GPIO_EventOutputCmd 12
GPIO_PinRemapConfig 96
GPIO_EXTILineConfig 44
Others 8
688 bytes in segment CODE
680 bytes of CODE memory (+ 8 bytes shared)
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -