📄 stm32f10x_gpio.txt
字号:
; generated by ARM C/C++ Compiler with , RVCT4.0 [Build 524] for uVision
; commandline ArmCC [--split_sections --debug -c --asm --interleave -o.\Obj\stm32f10x_gpio.o --depend=.\Obj\stm32f10x_gpio.d --device=DARMSTM --apcs=interwork -O0 -Otime -I..\..\Libraries\CMSIS\Core\CM3 -I..\..\Libraries\STM32F10x_StdPeriph_Driver\inc -I..\..\Source\inc -Id:\Keil\ARM\INC\ST\STM32F10x -D__MICROLIB -DSTM32F10X_HD -DUSE_STDPERIPH_DRIVER ..\..\Libraries\STM32F10x_StdPeriph_Driver\src\stm32f10x_gpio.c]
THUMB
AREA ||i.GPIO_AFIODeInit||, CODE, READONLY, ALIGN=1
GPIO_AFIODeInit PROC
;;;157 */
;;;158 void GPIO_AFIODeInit(void)
000000 b510 PUSH {r4,lr}
;;;159 {
;;;160 RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, ENABLE);
000002 2101 MOVS r1,#1
000004 4608 MOV r0,r1
000006 f7fffffe BL RCC_APB2PeriphResetCmd
;;;161 RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, DISABLE);
00000a 2100 MOVS r1,#0
00000c 2001 MOVS r0,#1
00000e f7fffffe BL RCC_APB2PeriphResetCmd
;;;162 }
000012 bd10 POP {r4,pc}
;;;163
ENDP
AREA ||i.GPIO_DeInit||, CODE, READONLY, ALIGN=2
GPIO_DeInit PROC
;;;106 */
;;;107 void GPIO_DeInit(GPIO_TypeDef* GPIOx)
000000 b510 PUSH {r4,lr}
;;;108 {
000002 4604 MOV r4,r0
;;;109 /* Check the parameters */
;;;110 assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
;;;111
;;;112 if (GPIOx == GPIOA)
000004 4829 LDR r0,|L2.172|
000006 4284 CMP r4,r0
000008 d108 BNE |L2.28|
;;;113 {
;;;114 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
00000a 2101 MOVS r1,#1
00000c 2004 MOVS r0,#4
00000e f7fffffe BL RCC_APB2PeriphResetCmd
;;;115 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
000012 2100 MOVS r1,#0
000014 2004 MOVS r0,#4
000016 f7fffffe BL RCC_APB2PeriphResetCmd
00001a e046 B |L2.170|
|L2.28|
;;;116 }
;;;117 else if (GPIOx == GPIOB)
00001c 4824 LDR r0,|L2.176|
00001e 4284 CMP r4,r0
000020 d108 BNE |L2.52|
;;;118 {
;;;119 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE);
000022 2101 MOVS r1,#1
000024 2008 MOVS r0,#8
000026 f7fffffe BL RCC_APB2PeriphResetCmd
;;;120 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE);
00002a 2100 MOVS r1,#0
00002c 2008 MOVS r0,#8
00002e f7fffffe BL RCC_APB2PeriphResetCmd
000032 e03a B |L2.170|
|L2.52|
;;;121 }
;;;122 else if (GPIOx == GPIOC)
000034 481f LDR r0,|L2.180|
000036 4284 CMP r4,r0
000038 d108 BNE |L2.76|
;;;123 {
;;;124 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, ENABLE);
00003a 2101 MOVS r1,#1
00003c 2010 MOVS r0,#0x10
00003e f7fffffe BL RCC_APB2PeriphResetCmd
;;;125 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, DISABLE);
000042 2100 MOVS r1,#0
000044 2010 MOVS r0,#0x10
000046 f7fffffe BL RCC_APB2PeriphResetCmd
00004a e02e B |L2.170|
|L2.76|
;;;126 }
;;;127 else if (GPIOx == GPIOD)
00004c 481a LDR r0,|L2.184|
00004e 4284 CMP r4,r0
000050 d108 BNE |L2.100|
;;;128 {
;;;129 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, ENABLE);
000052 2101 MOVS r1,#1
000054 2020 MOVS r0,#0x20
000056 f7fffffe BL RCC_APB2PeriphResetCmd
;;;130 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, DISABLE);
00005a 2100 MOVS r1,#0
00005c 2020 MOVS r0,#0x20
00005e f7fffffe BL RCC_APB2PeriphResetCmd
000062 e022 B |L2.170|
|L2.100|
;;;131 }
;;;132 else if (GPIOx == GPIOE)
000064 4815 LDR r0,|L2.188|
000066 4284 CMP r4,r0
000068 d108 BNE |L2.124|
;;;133 {
;;;134 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, ENABLE);
00006a 2101 MOVS r1,#1
00006c 2040 MOVS r0,#0x40
00006e f7fffffe BL RCC_APB2PeriphResetCmd
;;;135 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, DISABLE);
000072 2100 MOVS r1,#0
000074 2040 MOVS r0,#0x40
000076 f7fffffe BL RCC_APB2PeriphResetCmd
00007a e016 B |L2.170|
|L2.124|
;;;136 }
;;;137 else if (GPIOx == GPIOF)
00007c 4810 LDR r0,|L2.192|
00007e 4284 CMP r4,r0
000080 d108 BNE |L2.148|
;;;138 {
;;;139 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, ENABLE);
000082 2101 MOVS r1,#1
000084 2080 MOVS r0,#0x80
000086 f7fffffe BL RCC_APB2PeriphResetCmd
;;;140 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, DISABLE);
00008a 2100 MOVS r1,#0
00008c 2080 MOVS r0,#0x80
00008e f7fffffe BL RCC_APB2PeriphResetCmd
000092 e00a B |L2.170|
|L2.148|
;;;141 }
;;;142 else
;;;143 {
;;;144 if (GPIOx == GPIOG)
000094 480b LDR r0,|L2.196|
000096 4284 CMP r4,r0
000098 d107 BNE |L2.170|
;;;145 {
;;;146 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, ENABLE);
00009a 2101 MOVS r1,#1
00009c 1580 ASRS r0,r0,#22
00009e f7fffffe BL RCC_APB2PeriphResetCmd
;;;147 RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, DISABLE);
0000a2 2100 MOVS r1,#0
0000a4 15a0 ASRS r0,r4,#22
0000a6 f7fffffe BL RCC_APB2PeriphResetCmd
|L2.170|
;;;148 }
;;;149 }
;;;150 }
0000aa bd10 POP {r4,pc}
;;;151
ENDP
|L2.172|
DCD 0x40010800
|L2.176|
DCD 0x40010c00
|L2.180|
DCD 0x40011000
|L2.184|
DCD 0x40011400
|L2.188|
DCD 0x40011800
|L2.192|
DCD 0x40011c00
|L2.196|
DCD 0x40012000
AREA ||i.GPIO_ETH_MediaInterfaceConfig||, CODE, READONLY, ALIGN=2
GPIO_ETH_MediaInterfaceConfig PROC
;;;596 */
;;;597 void GPIO_ETH_MediaInterfaceConfig(uint32_t GPIO_ETH_MediaInterface)
000000 4901 LDR r1,|L3.8|
;;;598 {
;;;599 assert_param(IS_GPIO_ETH_MEDIA_INTERFACE(GPIO_ETH_MediaInterface));
;;;600
;;;601 /* Configure MII_RMII selection bit */
;;;602 *(__IO uint32_t *) MAPR_MII_RMII_SEL_BB = GPIO_ETH_MediaInterface;
000002 6008 STR r0,[r1,#0]
;;;603 }
000004 4770 BX lr
;;;604
ENDP
000006 0000 DCW 0x0000
|L3.8|
DCD 0x422000dc
AREA ||i.GPIO_EXTILineConfig||, CODE, READONLY, ALIGN=2
GPIO_EXTILineConfig PROC
;;;575 */
;;;576 void GPIO_EXTILineConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
000000 b530 PUSH {r4,r5,lr}
;;;577 {
;;;578 uint32_t tmp = 0x00;
000002 2200 MOVS r2,#0
;;;579 /* Check the parameters */
;;;580 assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));
;;;581 assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
;;;582
;;;583 tmp = ((uint32_t)0x0F) << (0x04 * (GPIO_PinSource & (uint8_t)0x03));
000004 078b LSLS r3,r1,#30
000006 0f1c LSRS r4,r3,#28
000008 230f MOVS r3,#0xf
00000a fa03f204 LSL r2,r3,r4
;;;584 AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;
00000e 4b0a LDR r3,|L4.56|
000010 108c ASRS r4,r1,#2
000012 f8534024 LDR r4,[r3,r4,LSL #2]
000016 4394 BICS r4,r4,r2
000018 108d ASRS r5,r1,#2
00001a f8434025 STR r4,[r3,r5,LSL #2]
;;;585 AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((uint32_t)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (uint8_t)0x03)));
00001e 108c ASRS r4,r1,#2
000020 f8533024 LDR r3,[r3,r4,LSL #2]
000024 078c LSLS r4,r1,#30
000026 0f24 LSRS r4,r4,#28
000028 fa00f404 LSL r4,r0,r4
00002c 4323 ORRS r3,r3,r4
00002e 4c02 LDR r4,|L4.56|
000030 108d ASRS r5,r1,#2
000032 f8443025 STR r3,[r4,r5,LSL #2]
;;;586 }
000036 bd30 POP {r4,r5,pc}
;;;587
ENDP
|L4.56|
DCD 0x40010008
AREA ||i.GPIO_EventOutputCmd||, CODE, READONLY, ALIGN=2
GPIO_EventOutputCmd PROC
;;;481 */
;;;482 void GPIO_EventOutputCmd(FunctionalState NewState)
000000 4901 LDR r1,|L5.8|
;;;483 {
;;;484 /* Check the parameters */
;;;485 assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;486
;;;487 *(__IO uint32_t *) EVCR_EVOE_BB = (uint32_t)NewState;
000002 61c8 STR r0,[r1,#0x1c]
;;;488 }
000004 4770 BX lr
;;;489
ENDP
000006 0000 DCW 0x0000
|L5.8|
DCD 0x42200000
AREA ||i.GPIO_EventOutputConfig||, CODE, READONLY, ALIGN=2
GPIO_EventOutputConfig PROC
;;;460 */
;;;461 void GPIO_EventOutputConfig(uint8_t GPIO_PortSource, uint8_t GPIO_PinSource)
000000 2200 MOVS r2,#0
;;;462 {
;;;463 uint32_t tmpreg = 0x00;
;;;464 /* Check the parameters */
;;;465 assert_param(IS_GPIO_EVENTOUT_PORT_SOURCE(GPIO_PortSource));
;;;466 assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
;;;467
;;;468 tmpreg = AFIO->EVCR;
000002 4b05 LDR r3,|L6.24|
000004 681a LDR r2,[r3,#0]
;;;469 /* Clear the PORT[6:4] and PIN[3:0] bits */
;;;470 tmpreg &= EVCR_PORTPINCONFIG_MASK;
000006 f64f7380 MOV r3,#0xff80
00000a 401a ANDS r2,r2,r3
;;;471 tmpreg |= (uint32_t)GPIO_PortSource << 0x04;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -