⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 stm32f10x_gpio.txt

📁 STM32手持式示波器源代码
💻 TXT
📖 第 1 页 / 共 3 页
字号:
; 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 + -