📄 stm32f10x_gpio.lst
字号:
\ 00000000 F0B4 PUSH {R4-R7}
548 uint32_t tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00;
\ 00000002 0022 MOVS R2,#+0
\ 00000004 0023 MOVS R3,#+0
\ 00000006 0025 MOVS R5,#+0
\ 00000008 0024 MOVS R4,#+0
549
550 /* Check the parameters */
551 assert_param(IS_GPIO_REMAP(GPIO_Remap));
552 assert_param(IS_FUNCTIONAL_STATE(NewState));
553
554 if((GPIO_Remap & 0x80000000) == 0x80000000)
\ 0000000A 0028 CMP R0,#+0
\ 0000000C 03D5 BPL.N ??GPIO_PinRemapConfig_0
555 {
556 tmpreg = AFIO->MAPR2;
\ 0000000E .... LDR.N R6,??DataTable5_9 ;; 0x4001001c
\ 00000010 3668 LDR R6,[R6, #+0]
\ 00000012 3500 MOVS R5,R6
\ 00000014 02E0 B.N ??GPIO_PinRemapConfig_1
557 }
558 else
559 {
560 tmpreg = AFIO->MAPR;
\ ??GPIO_PinRemapConfig_0:
\ 00000016 .... LDR.N R6,??DataTable5_10 ;; 0x40010004
\ 00000018 3668 LDR R6,[R6, #+0]
\ 0000001A 3500 MOVS R5,R6
561 }
562
563 tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10;
\ ??GPIO_PinRemapConfig_1:
\ 0000001C C0F30346 UBFX R6,R0,#+16,#+4
\ 00000020 3400 MOVS R4,R6
564 tmp = GPIO_Remap & LSB_MASK;
\ 00000022 86B2 UXTH R6,R0 ;; ZeroExt R6,R0,#+16,#+16
\ 00000024 3200 MOVS R2,R6
565
566 if ((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK))
\ 00000026 10F44016 ANDS R6,R0,#0x300000
\ 0000002A B6F5401F CMP R6,#+3145728
\ 0000002E 08D1 BNE.N ??GPIO_PinRemapConfig_2
567 {
568 tmpreg &= DBGAFR_SWJCFG_MASK;
\ 00000030 35F07065 BICS R5,R5,#0xF000000
569 AFIO->MAPR &= DBGAFR_SWJCFG_MASK;
\ 00000034 .... LDR.N R6,??DataTable5_10 ;; 0x40010004
\ 00000036 3668 LDR R6,[R6, #+0]
\ 00000038 36F07066 BICS R6,R6,#0xF000000
\ 0000003C .... LDR.N R7,??DataTable5_10 ;; 0x40010004
\ 0000003E 3E60 STR R6,[R7, #+0]
\ 00000040 10E0 B.N ??GPIO_PinRemapConfig_3
570 }
571 else if ((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK)
\ ??GPIO_PinRemapConfig_2:
\ 00000042 C602 LSLS R6,R0,#+11
\ 00000044 06D5 BPL.N ??GPIO_PinRemapConfig_4
572 {
573 tmp1 = ((uint32_t)0x03) << tmpmask;
\ 00000046 0326 MOVS R6,#+3
\ 00000048 A640 LSLS R6,R6,R4
\ 0000004A 3300 MOVS R3,R6
574 tmpreg &= ~tmp1;
\ 0000004C 9D43 BICS R5,R5,R3
575 tmpreg |= ~DBGAFR_SWJCFG_MASK;
\ 0000004E 55F07065 ORRS R5,R5,#0xF000000
\ 00000052 07E0 B.N ??GPIO_PinRemapConfig_3
576 }
577 else
578 {
579 tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15)*0x10));
\ ??GPIO_PinRemapConfig_4:
\ 00000054 460D LSRS R6,R0,#+21
\ 00000056 F6B2 UXTB R6,R6 ;; ZeroExt R6,R6,#+24,#+24
\ 00000058 3601 LSLS R6,R6,#+4
\ 0000005A 12FA06F6 LSLS R6,R2,R6
\ 0000005E B543 BICS R5,R5,R6
580 tmpreg |= ~DBGAFR_SWJCFG_MASK;
\ 00000060 55F07065 ORRS R5,R5,#0xF000000
581 }
582
583 if (NewState != DISABLE)
\ ??GPIO_PinRemapConfig_3:
\ 00000064 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 00000066 0029 CMP R1,#+0
\ 00000068 05D0 BEQ.N ??GPIO_PinRemapConfig_5
584 {
585 tmpreg |= (tmp << ((GPIO_Remap >> 0x15)*0x10));
\ 0000006A 460D LSRS R6,R0,#+21
\ 0000006C F6B2 UXTB R6,R6 ;; ZeroExt R6,R6,#+24,#+24
\ 0000006E 3601 LSLS R6,R6,#+4
\ 00000070 12FA06F6 LSLS R6,R2,R6
\ 00000074 3543 ORRS R5,R6,R5
586 }
587
588 if((GPIO_Remap & 0x80000000) == 0x80000000)
\ ??GPIO_PinRemapConfig_5:
\ 00000076 0028 CMP R0,#+0
\ 00000078 02D5 BPL.N ??GPIO_PinRemapConfig_6
589 {
590 AFIO->MAPR2 = tmpreg;
\ 0000007A .... LDR.N R6,??DataTable5_9 ;; 0x4001001c
\ 0000007C 3560 STR R5,[R6, #+0]
\ 0000007E 01E0 B.N ??GPIO_PinRemapConfig_7
591 }
592 else
593 {
594 AFIO->MAPR = tmpreg;
\ ??GPIO_PinRemapConfig_6:
\ 00000080 .... LDR.N R6,??DataTable5_10 ;; 0x40010004
\ 00000082 3560 STR R5,[R6, #+0]
595 }
596 }
\ ??GPIO_PinRemapConfig_7:
\ 00000084 F0BC POP {R4-R7}
\ 00000086 7047 BX LR ;; return
597
598 /**
599 * @brief Selects the GPIO pin used as EXTI Line.
600 * @param GPIO_PortSource: selects the GPIO port to be used as source for EXTI lines.
601 * This parameter can be GPIO_PortSourceGPIOx where x can be (A..G).
602 * @param GPIO_PinSource: specifies the EXTI line to be configured.
603 * This parameter can be GPIO_PinSourcex where x can be (0..15).
604 * @retval None
605 */
\ In section .text, align 2, keep-with-next
606 void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
607 {
\ GPIO_EXTILineConfig:
\ 00000000 30B4 PUSH {R4,R5}
608 uint32_t tmp = 0x00;
\ 00000002 0022 MOVS R2,#+0
609 /* Check the parameters */
610 assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));
611 assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
612
613 tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03));
\ 00000004 0F23 MOVS R3,#+15
\ 00000006 11F00304 ANDS R4,R1,#0x3
\ 0000000A E4B2 UXTB R4,R4 ;; ZeroExt R4,R4,#+24,#+24
\ 0000000C A400 LSLS R4,R4,#+2
\ 0000000E A340 LSLS R3,R3,R4
\ 00000010 1A00 MOVS R2,R3
614 AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;
\ 00000012 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 00000014 8B10 ASRS R3,R1,#+2
\ 00000016 .... LDR.N R4,??DataTable5_11 ;; 0x40010008
\ 00000018 54F82330 LDR R3,[R4, R3, LSL #+2]
\ 0000001C 9343 BICS R3,R3,R2
\ 0000001E C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 00000020 8C10 ASRS R4,R1,#+2
\ 00000022 .... LDR.N R5,??DataTable5_11 ;; 0x40010008
\ 00000024 45F82430 STR R3,[R5, R4, LSL #+2]
615 AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)));
\ 00000028 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 0000002A 8B10 ASRS R3,R1,#+2
\ 0000002C .... LDR.N R4,??DataTable5_11 ;; 0x40010008
\ 0000002E 54F82330 LDR R3,[R4, R3, LSL #+2]
\ 00000032 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000034 11F00304 ANDS R4,R1,#0x3
\ 00000038 E4B2 UXTB R4,R4 ;; ZeroExt R4,R4,#+24,#+24
\ 0000003A A400 LSLS R4,R4,#+2
\ 0000003C 10FA04F4 LSLS R4,R0,R4
\ 00000040 2343 ORRS R3,R4,R3
\ 00000042 C9B2 UXTB R1,R1 ;; ZeroExt R1,R1,#+24,#+24
\ 00000044 8C10 ASRS R4,R1,#+2
\ 00000046 .... LDR.N R5,??DataTable5_11 ;; 0x40010008
\ 00000048 45F82430 STR R3,[R5, R4, LSL #+2]
616 }
\ 0000004C 30BC POP {R4,R5}
\ 0000004E 7047 BX LR ;; return
617
618 /**
619 * @brief Selects the Ethernet media interface.
620 * @note This function applies only to STM32 Connectivity line devices.
621 * @param GPIO_ETH_MediaInterface: specifies the Media Interface mode.
622 * This parameter can be one of the following values:
623 * @arg GPIO_ETH_MediaInterface_MII: MII mode
624 * @arg GPIO_ETH_MediaInterface_RMII: RMII mode
625 * @retval None
626 */
\ In section .text, align 2, keep-with-next
627 void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface)
628 {
629 assert_param(IS_GPIO_ETH_MEDIA_INTERFACE(GPIO_ETH_MediaInterface));
630
631 /* Configure MII_RMII selection bit */
632 *(__IO uint32_t *) MAPR_MII_RMII_SEL_BB = GPIO_ETH_MediaInterface;
\ GPIO_ETH_MediaInterfaceConfig:
\ 00000000 .... LDR.N R1,??DataTable5_12 ;; 0x422000dc
\ 00000002 0860 STR R0,[R1, #+0]
633 }
\ 00000004 7047 BX LR ;; return
\ In section .text, align 4, keep-with-next
\ ??DataTable5:
\ 00000000 00080140 DC32 0x40010800
\ In section .text, align 4, keep-with-next
\ ??DataTable5_1:
\ 00000000 000C0140 DC32 0x40010c00
\ In section .text, align 4, keep-with-next
\ ??DataTable5_2:
\ 00000000 00100140 DC32 0x40011000
\ In section .text, align 4, keep-with-next
\ ??DataTable5_3:
\ 00000000 00140140 DC32 0x40011400
\ In section .text, align 4, keep-with-next
\ ??DataTable5_4:
\ 00000000 00180140 DC32 0x40011800
\ In section .text, align 4, keep-with-next
\ ??DataTable5_5:
\ 00000000 001C0140 DC32 0x40011c00
\ In section .text, align 4, keep-with-next
\ ??DataTable5_6:
\ 00000000 00200140 DC32 0x40012000
\ In section .text, align 4, keep-with-next
\ ??DataTable5_7:
\ 00000000 00000140 DC32 0x40010000
\ In section .text, align 4, keep-with-next
\ ??DataTable5_8:
\ 00000000 1C002042 DC32 0x4220001c
\
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -