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

📄 stm32f10x_gpio.txt

📁 STM32F103ZET6+UCOSII+UCGUI源码
💻 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 -O3 -I..\..\include -I..\..\..\FWLib\library\inc -I..\..\..\USBLib\library\inc -I..\..\Config -I..\..\GUI\Core -I..\..\GUI\Font -I..\..\GUI\ConvertColor -I..\..\GUI\AntiAlias -I..\..\GUI\ConvertMono -I..\..\GUI\JPEG -I..\..\GUI\MemDev -I..\..\GUI\MultiLayer -I..\..\GUI\Widget -I..\..\GUI\WM -IC:\Keil\ARM\INC\ST\STM32F10x ..\..\..\FWLib\library\src\stm32f10x_gpio.c]
                          THUMB

                          AREA ||i.GPIO_AFIODeInit||, CODE, READONLY, ALIGN=1

                  GPIO_AFIODeInit PROC
;;;106    *******************************************************************************/
;;;107    void GPIO_AFIODeInit(void)
000000  b510              PUSH     {r4,lr}
;;;108    {
;;;109      RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, ENABLE);
000002  2101              MOVS     r1,#1
000004  4608              MOV      r0,r1
000006  f7fffffe          BL       RCC_APB2PeriphResetCmd
;;;110      RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, DISABLE);
00000a  2100              MOVS     r1,#0
00000c  e8bd4010          POP      {r4,lr}
000010  2001              MOVS     r0,#1
000012  f7ffbffe          B.W      RCC_APB2PeriphResetCmd
;;;111    }
;;;112    
                          ENDP


                          AREA ||i.GPIO_DeInit||, CODE, READONLY, ALIGN=2

                  GPIO_DeInit PROC
;;;50     *******************************************************************************/
;;;51     void GPIO_DeInit(GPIO_TypeDef* GPIOx)
000000  4a25              LDR      r2,|L2.152|
;;;52     {
000002  b510              PUSH     {r4,lr}
;;;53       /* Check the parameters */
;;;54       assert_param(IS_GPIO_ALL_PERIPH(GPIOx));
;;;55       
;;;56       switch (*(u32*)&GPIOx)
000004  1a81              SUBS     r1,r0,r2
000006  1513              ASRS     r3,r2,#20
000008  14d4              ASRS     r4,r2,#19
00000a  4290              CMP      r0,r2
00000c  d02e              BEQ      |L2.108|
00000e  dc0d              BGT      |L2.44|
000010  4922              LDR      r1,|L2.156|
000012  1840              ADDS     r0,r0,r1
000014  d01c              BEQ      |L2.80|
000016  4298              CMP      r0,r3
000018  d021              BEQ      |L2.94|
00001a  42a0              CMP      r0,r4
00001c  d13b              BNE      |L2.150|
;;;57       {
;;;58         case GPIOA_BASE:
;;;59           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
;;;60           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
;;;61           break;
;;;62     
;;;63         case GPIOB_BASE:
;;;64           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE);
;;;65           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE);
;;;66           break;
;;;67     
;;;68         case GPIOC_BASE:
;;;69           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, ENABLE);
00001e  2101              MOVS     r1,#1
000020  2010              MOVS     r0,#0x10
000022  f7fffffe          BL       RCC_APB2PeriphResetCmd
;;;70           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, DISABLE);
000026  2100              MOVS     r1,#0
000028  2010              MOVS     r0,#0x10
;;;71           break;
00002a  e00d              B        |L2.72|
                  |L2.44|
00002c  4299              CMP      r1,r3                 ;56
00002e  d024              BEQ      |L2.122|
000030  42a1              CMP      r1,r4                 ;56
000032  d029              BEQ      |L2.136|
000034  f5b16f40          CMP      r1,#0xc00             ;56
000038  d12d              BNE      |L2.150|
;;;72     
;;;73         case GPIOD_BASE:
;;;74           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, ENABLE);
;;;75           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, DISABLE);
;;;76           break;
;;;77           
;;;78         case GPIOE_BASE:
;;;79           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, ENABLE);
;;;80           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, DISABLE);
;;;81           break; 
;;;82     
;;;83         case GPIOF_BASE:
;;;84           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, ENABLE);
;;;85           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOF, DISABLE);
;;;86           break;
;;;87     
;;;88         case GPIOG_BASE:
;;;89           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, ENABLE);
00003a  2101              MOVS     r1,#1
00003c  020c              LSLS     r4,r1,#8
00003e  4620              MOV      r0,r4
000040  f7fffffe          BL       RCC_APB2PeriphResetCmd
;;;90           RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOG, DISABLE);
000044  2100              MOVS     r1,#0
000046  4620              MOV      r0,r4
                  |L2.72|
000048  e8bd4010          POP      {r4,lr}
00004c  f7ffbffe          B.W      RCC_APB2PeriphResetCmd
                  |L2.80|
000050  2101              MOVS     r1,#1                 ;59
000052  2004              MOVS     r0,#4                 ;59
000054  f7fffffe          BL       RCC_APB2PeriphResetCmd
000058  2100              MOVS     r1,#0                 ;60
00005a  2004              MOVS     r0,#4                 ;60
00005c  e7f4              B        |L2.72|
                  |L2.94|
00005e  2101              MOVS     r1,#1                 ;64
000060  2008              MOVS     r0,#8                 ;64
000062  f7fffffe          BL       RCC_APB2PeriphResetCmd
000066  2100              MOVS     r1,#0                 ;65
000068  2008              MOVS     r0,#8                 ;65
00006a  e7ed              B        |L2.72|
                  |L2.108|
00006c  2101              MOVS     r1,#1                 ;74
00006e  2020              MOVS     r0,#0x20              ;74
000070  f7fffffe          BL       RCC_APB2PeriphResetCmd
000074  2100              MOVS     r1,#0                 ;75
000076  2020              MOVS     r0,#0x20              ;75
000078  e7e6              B        |L2.72|
                  |L2.122|
00007a  2101              MOVS     r1,#1                 ;79
00007c  2040              MOVS     r0,#0x40              ;79
00007e  f7fffffe          BL       RCC_APB2PeriphResetCmd
000082  2100              MOVS     r1,#0                 ;80
000084  2040              MOVS     r0,#0x40              ;80
000086  e7df              B        |L2.72|
                  |L2.136|
000088  2101              MOVS     r1,#1                 ;84
00008a  2080              MOVS     r0,#0x80              ;84
00008c  f7fffffe          BL       RCC_APB2PeriphResetCmd
000090  2100              MOVS     r1,#0                 ;85
000092  2080              MOVS     r0,#0x80              ;85
000094  e7d8              B        |L2.72|
                  |L2.150|
;;;91           break;                       
;;;92     
;;;93         default:
;;;94           break;
;;;95       }
;;;96     }
000096  bd10              POP      {r4,pc}
;;;97     
                          ENDP

                  |L2.152|
                          DCD      0x40011400
                  |L2.156|
                          DCD      0xbffef800

                          AREA ||i.GPIO_EXTILineConfig||, CODE, READONLY, ALIGN=2

                  GPIO_EXTILineConfig PROC
;;;565    *******************************************************************************/
;;;566    void GPIO_EXTILineConfig(u8 GPIO_PortSource, u8 GPIO_PinSource)
000000  b510              PUSH     {r4,lr}
;;;567    {
;;;568      u32 tmp = 0x00;
;;;569    
;;;570      /* Check the parameters */
;;;571      assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));
;;;572      assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
;;;573      
;;;574      tmp = ((u32)0x0F) << (0x04 * (GPIO_PinSource & (u8)0x03));
000002  078a              LSLS     r2,r1,#30
;;;575    
;;;576      AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;
000004  f0210403          BIC      r4,r1,#3
000008  4906              LDR      r1,|L3.36|
00000a  0f12              LSRS     r2,r2,#28             ;574
00000c  4421              ADD      r1,r1,r4
00000e  230f              MOVS     r3,#0xf               ;574
000010  688c              LDR      r4,[r1,#8]
000012  4093              LSLS     r3,r3,r2              ;574
000014  439c              BICS     r4,r4,r3
000016  608c              STR      r4,[r1,#8]
;;;577      AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((u32)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (u8)0x03)));
000018  688b              LDR      r3,[r1,#8]
00001a  4090              LSLS     r0,r0,r2
00001c  4303              ORRS     r3,r3,r0
00001e  608b              STR      r3,[r1,#8]
;;;578    }
000020  bd10              POP      {r4,pc}
;;;579    
                          ENDP

000022  0000              DCW      0x0000
                  |L3.36|
                          DCD      0x40010000

                          AREA ||i.GPIO_EventOutputCmd||, CODE, READONLY, ALIGN=2

                  GPIO_EventOutputCmd PROC
;;;472    *******************************************************************************/
;;;473    void GPIO_EventOutputCmd(FunctionalState NewState)
000000  4901              LDR      r1,|L4.8|
;;;474    {
;;;475      /* Check the parameters */
;;;476      assert_param(IS_FUNCTIONAL_STATE(NewState));
;;;477      
;;;478      *(vu32 *) EVCR_EVOE_BB = (u32)NewState;
000002  61c8              STR      r0,[r1,#0x1c]
;;;479    }
000004  4770              BX       lr
;;;480    
                          ENDP

000006  0000              DCW      0x0000
                  |L4.8|
                          DCD      0x42200000

                          AREA ||i.GPIO_EventOutputConfig||, CODE, READONLY, ALIGN=2

                  GPIO_EventOutputConfig PROC
;;;447    *******************************************************************************/
;;;448    void GPIO_EventOutputConfig(u8 GPIO_PortSource, u8 GPIO_PinSource)
000000  b510              PUSH     {r4,lr}
;;;449    {
;;;450      u32 tmpreg = 0x00;
;;;451    
;;;452      /* Check the parameters */
;;;453      assert_param(IS_GPIO_EVENTOUT_PORT_SOURCE(GPIO_PortSource));
;;;454      assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
;;;455        
;;;456      tmpreg = AFIO->EVCR;
000002  4b05              LDR      r3,|L5.24|
000004  681a              LDR      r2,[r3,#0]
;;;457      /* Clear the PORT[6:4] and PIN[3:0] bits */
;;;458      tmpreg &= EVCR_PORTPINCONFIG_MASK;
000006  f64f7480          MOV      r4,#0xff80
00000a  4022              ANDS     r2,r2,r4
;;;459      tmpreg |= (u32)GPIO_PortSource << 0x04;
00000c  ea421000          ORR      r0,r2,r0,LSL #4
;;;460      tmpreg |= GPIO_PinSource;
000010  4308              ORRS     r0,r0,r1
;;;461    
;;;462      AFIO->EVCR = tmpreg;
000012  6018              STR      r0,[r3,#0]
;;;463    }
000014  bd10              POP      {r4,pc}
;;;464    
                          ENDP

000016  0000              DCW      0x0000
                  |L5.24|

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -