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

📄 stm32f10x_gpio.lst

📁 完成数据的采集
💻 LST
📖 第 1 页 / 共 4 页
字号:
###############################################################################
#                                                                             #
#                                                       30/Jul/2008  14:37:39 #
# IAR ARM ANSI C/C++ Compiler V5.11.0.20622/W32 EVALUATION                    #
# Copyright 1999-2007 IAR Systems. All rights reserved.                       #
#                                                                             #
#    Cpu mode     =  thumb                                                    #
#    Endian       =  little                                                   #
#    Source file  =  E:\library\src\stm32f10x_gpio.c                          #
#    Command line =  E:\library\src\stm32f10x_gpio.c -D EMB_FLASH -lCN        #
#                    E:\ELE\yten\pro\Debug\List\ -lb                          #
#                    E:\ELE\yten\pro\Debug\List\ -o                           #
#                    E:\ELE\yten\pro\Debug\Obj\ --no_cse --no_unroll          #
#                    --no_inline --no_code_motion --no_tbaa --no_clustering   #
#                    --no_scheduling --debug --endian little --cpu Cortex-M3  #
#                    -e --fpu None --dlib_config "C:\Program Files\IAR        #
#                    Systems\Embedded Workbench 5.0                           #
#                    Evaluation\ARM\INC\DLib_Config_Normal.h" -I              #
#                    E:\ELE\yten\pro\ -I E:\ELE\yten\pro\..\LIBRARY\INC\ -I   #
#                    "C:\Program Files\IAR Systems\Embedded Workbench 5.0     #
#                    Evaluation\ARM\INC\" --section .text=.XML -On            #
#    List file    =  E:\ELE\yten\pro\Debug\List\stm32f10x_gpio.lst            #
#    Object file  =  E:\ELE\yten\pro\Debug\Obj\stm32f10x_gpio.o               #
#                                                                             #
#                                                                             #
###############################################################################

E:\library\src\stm32f10x_gpio.c
      1          /******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
      2          * File Name          : stm32f10x_gpio.c
      3          * Author             : MCD Application Team
      4          * Version            : V1.0
      5          * Date               : 10/08/2007
      6          * Description        : This file provides all the GPIO firmware functions.
      7          ********************************************************************************
      8          * THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
      9          * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
     10          * AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
     11          * INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
     12          * CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
     13          * INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
     14          *******************************************************************************/
     15          
     16          /* Includes ------------------------------------------------------------------*/
     17          #include "stm32f10x_gpio.h"
     18          #include "stm32f10x_rcc.h"
     19          
     20          /* Private typedef -----------------------------------------------------------*/
     21          /* Private define ------------------------------------------------------------*/
     22          /* ------------ RCC registers bit address in the alias region ----------- */
     23          #define AFIO_OFFSET                 (AFIO_BASE - PERIPH_BASE)
     24          
     25          /* --- EVENTCR Register ---*/
     26          /* Alias word address of EVOE bit */
     27          #define EVCR_OFFSET                 (AFIO_OFFSET + 0x00)
     28          #define EVOE_BitNumber              ((u8)0x07)
     29          #define EVCR_EVOE_BB                (PERIPH_BB_BASE + (EVCR_OFFSET * 32) + (EVOE_BitNumber * 4))
     30          
     31          #define EVCR_PORTPINCONFIG_MASK     ((u16)0xFF80)
     32          #define LSB_MASK                    ((u16)0xFFFF)
     33          #define DBGAFR_POSITION_MASK        ((u32)0x000F0000)
     34          #define DBGAFR_SWJCFG_MASK          ((u32)0xF8FFFFFF)
     35          #define DBGAFR_LOCATION_MASK        ((u32)0x00200000)
     36          #define DBGAFR_NUMBITS_MASK         ((u32)0x00100000)
     37          
     38          /* Private macro -------------------------------------------------------------*/
     39          /* Private variables ---------------------------------------------------------*/
     40          /* Private function prototypes -----------------------------------------------*/
     41          /* Private functions ---------------------------------------------------------*/
     42          
     43          /*******************************************************************************
     44          * Function Name  : GPIO_DeInit
     45          * Description    : Deinitializes the GPIOx peripheral registers to their default
     46          *                  reset values.
     47          * Input          : - GPIOx: where x can be (A..E) to select the GPIO peripheral.
     48          * Output         : None
     49          * Return         : None
     50          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
     51          void GPIO_DeInit(GPIO_TypeDef* GPIOx)
     52          {
   \                     GPIO_DeInit:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0400               MOVS     R4,R0
     53            switch (*(u32*)&GPIOx)
   \   00000004   2000               MOVS     R0,R4
   \   00000006   2049               LDR.N    R1,??GPIO_DeInit_0  ;; 0x40010800
   \   00000008   401A               SUBS     R0,R0,R1
   \   0000000A   10D0               BEQ.N    ??GPIO_DeInit_1
   \   0000000C   5FF48061           MOVS     R1,#+1024
   \   00000010   401A               SUBS     R0,R0,R1
   \   00000012   15D0               BEQ.N    ??GPIO_DeInit_2
   \   00000014   5FF48061           MOVS     R1,#+1024
   \   00000018   401A               SUBS     R0,R0,R1
   \   0000001A   1AD0               BEQ.N    ??GPIO_DeInit_3
   \   0000001C   5FF48061           MOVS     R1,#+1024
   \   00000020   401A               SUBS     R0,R0,R1
   \   00000022   1FD0               BEQ.N    ??GPIO_DeInit_4
   \   00000024   5FF48061           MOVS     R1,#+1024
   \   00000028   401A               SUBS     R0,R0,R1
   \   0000002A   24D0               BEQ.N    ??GPIO_DeInit_5
   \   0000002C   2BE0               B.N      ??GPIO_DeInit_6
     54            {
     55              case GPIOA_BASE:
     56                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, ENABLE);
   \                     ??GPIO_DeInit_1:
   \   0000002E   0121               MOVS     R1,#+1
   \   00000030   0420               MOVS     R0,#+4
   \   00000032   ........           BL       RCC_APB2PeriphResetCmd
     57                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOA, DISABLE);
   \   00000036   0021               MOVS     R1,#+0
   \   00000038   0420               MOVS     R0,#+4
   \   0000003A   ........           BL       RCC_APB2PeriphResetCmd
   \   0000003E   22E0               B.N      ??GPIO_DeInit_6
     58                break;
     59          
     60              case GPIOB_BASE:
     61                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, ENABLE);
   \                     ??GPIO_DeInit_2:
   \   00000040   0121               MOVS     R1,#+1
   \   00000042   0820               MOVS     R0,#+8
   \   00000044   ........           BL       RCC_APB2PeriphResetCmd
     62                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOB, DISABLE);
   \   00000048   0021               MOVS     R1,#+0
   \   0000004A   0820               MOVS     R0,#+8
   \   0000004C   ........           BL       RCC_APB2PeriphResetCmd
   \   00000050   19E0               B.N      ??GPIO_DeInit_6
     63                break;
     64          
     65              case GPIOC_BASE:
     66                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, ENABLE);
   \                     ??GPIO_DeInit_3:
   \   00000052   0121               MOVS     R1,#+1
   \   00000054   1020               MOVS     R0,#+16
   \   00000056   ........           BL       RCC_APB2PeriphResetCmd
     67                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOC, DISABLE);
   \   0000005A   0021               MOVS     R1,#+0
   \   0000005C   1020               MOVS     R0,#+16
   \   0000005E   ........           BL       RCC_APB2PeriphResetCmd
   \   00000062   10E0               B.N      ??GPIO_DeInit_6
     68                break;
     69          
     70              case GPIOD_BASE:
     71                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, ENABLE);
   \                     ??GPIO_DeInit_4:
   \   00000064   0121               MOVS     R1,#+1
   \   00000066   2020               MOVS     R0,#+32
   \   00000068   ........           BL       RCC_APB2PeriphResetCmd
     72                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOD, DISABLE);
   \   0000006C   0021               MOVS     R1,#+0
   \   0000006E   2020               MOVS     R0,#+32
   \   00000070   ........           BL       RCC_APB2PeriphResetCmd
   \   00000074   07E0               B.N      ??GPIO_DeInit_6
     73                break;
     74          
     75              case GPIOE_BASE:
     76                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, ENABLE);
   \                     ??GPIO_DeInit_5:
   \   00000076   0121               MOVS     R1,#+1
   \   00000078   4020               MOVS     R0,#+64
   \   0000007A   ........           BL       RCC_APB2PeriphResetCmd
     77                RCC_APB2PeriphResetCmd(RCC_APB2Periph_GPIOE, DISABLE);
   \   0000007E   0021               MOVS     R1,#+0
   \   00000080   4020               MOVS     R0,#+64
   \   00000082   ........           BL       RCC_APB2PeriphResetCmd
     78                break;
     79          
     80              default:
     81                break;
     82            }
     83          }
   \                     ??GPIO_DeInit_6:
   \   00000086   10BD               POP      {R4,PC}          ;; return
   \                     ??GPIO_DeInit_0:
   \   00000088   00080140           DC32     0x40010800
     84          
     85          /*******************************************************************************
     86          * Function Name  : GPIO_AFIODeInit
     87          * Description    : Deinitializes the Alternate Functions (remap, event control
     88          *                  and EXTI configuration) registers to their default reset
     89          *                  values.
     90          * Input          : None
     91          * Output         : None
     92          * Return         : None
     93          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
     94          void GPIO_AFIODeInit(void)
     95          {
   \                     GPIO_AFIODeInit:
   \   00000000   01B5               PUSH     {R0,LR}
     96            RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, ENABLE);
   \   00000002   0121               MOVS     R1,#+1
   \   00000004   0120               MOVS     R0,#+1
   \   00000006   ........           BL       RCC_APB2PeriphResetCmd
     97            RCC_APB2PeriphResetCmd(RCC_APB2Periph_AFIO, DISABLE);
   \   0000000A   0021               MOVS     R1,#+0
   \   0000000C   0120               MOVS     R0,#+1
   \   0000000E   ........           BL       RCC_APB2PeriphResetCmd
     98          }
   \   00000012   01B0               ADD      SP,SP,#+4
   \   00000014   00BD               POP      {PC}             ;; return
     99          
    100          /*******************************************************************************
    101          * Function Name  : GPIO_Init
    102          * Description    : Initializes the GPIOx peripheral according to the specified
    103          *                  parameters in the GPIO_InitStruct.
    104          * Input          : - GPIOx: where x can be (A..E) to select the GPIO peripheral.
    105          *                  - GPIO_InitStruct: pointer to a GPIO_InitTypeDef structure that
    106          *                    contains the configuration information for the specified GPIO
    107          *                    peripheral.
    108          * Output         : None
    109          * Return         : None
    110          *******************************************************************************/

   \                                 In section .XML, align 4, keep-with-next
    111          void GPIO_Init( GPIO_TypeDef* GPIOx, GPIO_InitTypeDef* GPIO_InitStruct)
    112          {
   \                     GPIO_Init:
   \   00000000   F3B4               PUSH     {R0,R1,R4-R7}
    113            u32 currentmode = 0x00, currentpin = 0x00, pinpos = 0x00, pos = 0x00;
   \   00000002   0026               MOVS     R6,#+0
   \   00000004   3500               MOVS     R5,R6
   \   00000006   0026               MOVS     R6,#+0
   \   00000008   0096               STR      R6,[SP, #+0]
   \   0000000A   0026               MOVS     R6,#+0
   \   0000000C   3200               MOVS     R2,R6
   \   0000000E   0026               MOVS     R6,#+0
   \   00000010   3300               MOVS     R3,R6
    114            u32 tmpreg = 0x00, pinmask = 0x00;
   \   00000012   0026               MOVS     R6,#+0
   \   00000014   3400               MOVS     R4,R6
   \   00000016   0026               MOVS     R6,#+0
   \   00000018   0196               STR      R6,[SP, #+4]
    115          
    116            /* Check the parameters */
    117            assert_param(IS_GPIO_MODE(GPIO_InitStruct->GPIO_Mode));
    118            assert_param(IS_GPIO_PIN(GPIO_InitStruct->GPIO_Pin));
    119          
    120          /*---------------------------- GPIO Mode Configuration -----------------------*/
    121            currentmode = ((u32)GPIO_InitStruct->GPIO_Mode) & ((u32)0x0F);
   \   0000001A   CE78               LDRB     R6,[R1, #+3]
   \   0000001C   3607               LSLS     R6,R6,#+28       ;; ZeroExtS R6,R6,#+28,#+28
   \   0000001E   360F               LSRS     R6,R6,#+28
   \   00000020   3500               MOVS     R5,R6
    122          
    123            if ((((u32)GPIO_InitStruct->GPIO_Mode) & ((u32)0x10)) != 0x00)
   \   00000022   CE78               LDRB     R6,[R1, #+3]
   \   00000024   F606               LSLS     R6,R6,#+27
   \   00000026   02D5               BPL.N    ??GPIO_Init_0
    124            {
    125              /* Check the parameters */
    126              assert_param(IS_GPIO_SPEED(GPIO_InitStruct->GPIO_Speed));
    127              /* Output mode */
    128              currentmode |= (u32)GPIO_InitStruct->GPIO_Speed;
   \   00000028   2E00               MOVS     R6,R5
   \   0000002A   8D78               LDRB     R5,[R1, #+2]
   \   0000002C   3543               ORRS     R5,R5,R6
    129            }
    130          
    131          /*---------------------------- GPIO CRL Configuration ------------------------*/
    132            /* Configure the eight low port pins */
    133            if (((u32)GPIO_InitStruct->GPIO_Pin & ((u32)0x00FF)) != 0x00)
   \                     ??GPIO_Init_0:
   \   0000002E   0E88               LDRH     R6,[R1, #+0]
   \   00000030   3606               LSLS     R6,R6,#+24
   \   00000032   29D0               BEQ.N    ??GPIO_Init_1
    134            {
    135              tmpreg = GPIOx->CRL;
   \   00000034   0668               LDR      R6,[R0, #+0]
   \   00000036   3400               MOVS     R4,R6

⌨️ 快捷键说明

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