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

📄 stm32f10x_gpio.lst

📁 编译环境是 iar EWARM ,STM32 下的UCOSII
💻 LST
📖 第 1 页 / 共 4 页
字号:
    462            tmpreg |= GPIO_PinSource;
    463          
    464            AFIO->EVCR = tmpreg;
   \   00000006   044C               LDR.N    R4,??GPIO_EventOutputConfig_0+0x4  ;; 0xff80
   \   00000008   1C40               ANDS     R4,R4,R3
   \   0000000A   54EA0010           ORRS     R0,R4,R0, LSL #+4
   \   0000000E   0143               ORRS     R1,R1,R0
   \   00000010   1160               STR      R1,[R2, #+0]
    465          }
   \   00000012   10BD               POP      {R4,PC}          ;; return
   \                     ??GPIO_EventOutputConfig_0:
   \   00000014   00000140           DC32     0x40010000
   \   00000018   80FF0000           DC32     0xff80
    466          
    467          /*******************************************************************************
    468          * Function Name  : GPIO_EventOutputCmd
    469          * Description    : Enables or disables the Event Output.
    470          * Input          : - NewState: new state of the Event output.
    471          *                    This parameter can be: ENABLE or DISABLE.
    472          * Output         : None
    473          * Return         : None
    474          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    475          void GPIO_EventOutputCmd(FunctionalState NewState)
    476          {
    477            /* Check the parameters */
    478            assert_param(IS_FUNCTIONAL_STATE(NewState));
    479            
    480            *(vu32 *) EVCR_EVOE_BB = (u32)NewState;
   \                     GPIO_EventOutputCmd:
   \   00000000   0149               LDR.N    R1,??GPIO_EventOutputCmd_0  ;; 0x4220001c
   \   00000002   0860               STR      R0,[R1, #+0]
    481          }
   \   00000004   7047               BX       LR               ;; return
   \   00000006   00BF               Nop      
   \                     ??GPIO_EventOutputCmd_0:
   \   00000008   1C002042           DC32     0x4220001c
    482          
    483          /*******************************************************************************
    484          * Function Name  : GPIO_PinRemapConfig
    485          * Description    : Changes the mapping of the specified pin.
    486          * Input          : - GPIO_Remap: selects the pin to remap.
    487          *                    This parameter can be one of the following values:
    488          *                       - GPIO_Remap_SPI1
    489          *                       - GPIO_Remap_I2C1
    490          *                       - GPIO_Remap_USART1
    491          *                       - GPIO_Remap_USART2
    492          *                       - GPIO_PartialRemap_USART3
    493          *                       - GPIO_FullRemap_USART3
    494          *                       - GPIO_PartialRemap_TIM1
    495          *                       - GPIO_FullRemap_TIM1
    496          *                       - GPIO_PartialRemap1_TIM2
    497          *                       - GPIO_PartialRemap2_TIM2
    498          *                       - GPIO_FullRemap_TIM2
    499          *                       - GPIO_PartialRemap_TIM3
    500          *                       - GPIO_FullRemap_TIM3
    501          *                       - GPIO_Remap_TIM4
    502          *                       - GPIO_Remap1_CAN
    503          *                       - GPIO_Remap2_CAN
    504          *                       - GPIO_Remap_PD01
    505          *                       - GPIO_Remap_TIM5CH4_LSI
    506          *                       - GPIO_Remap_ADC1_ETRGINJ
    507          *                       - GPIO_Remap_ADC1_ETRGREG
    508          *                       - GPIO_Remap_ADC2_ETRGINJ
    509          *                       - GPIO_Remap_ADC2_ETRGREG
    510          *                       - GPIO_Remap_SWJ_NoJTRST
    511          *                       - GPIO_Remap_SWJ_JTAGDisable
    512          *                       - GPIO_Remap_SWJ_Disable
    513          *                  - NewState: new state of the port pin remapping.
    514          *                    This parameter can be: ENABLE or DISABLE.
    515          * Output         : None
    516          * Return         : None
    517          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    518          void GPIO_PinRemapConfig(u32 GPIO_Remap, FunctionalState NewState)
    519          {
   \                     GPIO_PinRemapConfig:
   \   00000000   70B5               PUSH     {R4-R6,LR}
    520            u32 tmp = 0x00, tmp1 = 0x00, tmpreg = 0x00, tmpmask = 0x00;
    521          
    522            /* Check the parameters */
    523            assert_param(IS_GPIO_REMAP(GPIO_Remap));
    524            assert_param(IS_FUNCTIONAL_STATE(NewState));  
    525            
    526            tmpreg = AFIO->MAPR;
   \   00000002   164A               LDR.N    R2,??GPIO_PinRemapConfig_0  ;; 0x40010004
   \   00000004   1368               LDR      R3,[R2, #+0]
    527          
    528            tmpmask = (GPIO_Remap & DBGAFR_POSITION_MASK) >> 0x10;
   \   00000006   10F47024           ANDS     R4,R0,#0xF0000
   \   0000000A   2500               MOVS     R5,R4
   \   0000000C   2D0C               LSRS     R5,R5,#+16
    529            tmp = GPIO_Remap & LSB_MASK;
   \   0000000E   84B2               UXTH     R4,R0
    530          
    531            if ((GPIO_Remap & (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK)) == (DBGAFR_LOCATION_MASK | DBGAFR_NUMBITS_MASK))
   \   00000010   10F44016           ANDS     R6,R0,#0x300000
   \   00000014   B6F5401F           CMP      R6,#+3145728
   \   00000018   06D1               BNE.N    ??GPIO_PinRemapConfig_1
    532            {
    533              tmpreg &= DBGAFR_SWJCFG_MASK;
   \   0000001A   7FF07065           MVNS     R5,#+251658240
   \   0000001E   2B40               ANDS     R3,R3,R5
    534              AFIO->MAPR &= DBGAFR_SWJCFG_MASK;
   \   00000020   1668               LDR      R6,[R2, #+0]
   \   00000022   3540               ANDS     R5,R5,R6
   \   00000024   1560               STR      R5,[R2, #+0]
   \   00000026   0FE0               B.N      ??GPIO_PinRemapConfig_2
    535            }
    536            else if ((GPIO_Remap & DBGAFR_NUMBITS_MASK) == DBGAFR_NUMBITS_MASK)
   \                     ??GPIO_PinRemapConfig_1:
   \   00000028   C602               LSLS     R6,R0,#+11
   \   0000002A   05D5               BPL.N    ??GPIO_PinRemapConfig_3
    537            {
    538              tmp1 = ((u32)0x03) << tmpmask;
    539              tmpreg &= ~tmp1;
    540              tmpreg |= ~DBGAFR_SWJCFG_MASK;
   \   0000002C   0326               MOVS     R6,#+3
   \   0000002E   AE40               LSLS     R6,R6,R5
   \   00000030   B343               BICS     R3,R3,R6
   \   00000032   53F07063           ORRS     R3,R3,#0xF000000
   \   00000036   07E0               B.N      ??GPIO_PinRemapConfig_2
    541            }
    542            else
    543            {
    544              tmpreg &= ~(tmp << ((GPIO_Remap >> 0x15)*0x10));
    545              tmpreg |= ~DBGAFR_SWJCFG_MASK;
   \                     ??GPIO_PinRemapConfig_3:
   \   00000038   0500               MOVS     R5,R0
   \   0000003A   6D0D               LSRS     R5,R5,#+21
   \   0000003C   2D01               LSLS     R5,R5,#+4
   \   0000003E   14FA05F5           LSLS     R5,R4,R5
   \   00000042   AB43               BICS     R3,R3,R5
   \   00000044   53F07063           ORRS     R3,R3,#0xF000000
    546            }
    547          
    548            if (NewState != DISABLE)
   \                     ??GPIO_PinRemapConfig_2:
   \   00000048   0029               CMP      R1,#+0
   \   0000004A   05D0               BEQ.N    ??GPIO_PinRemapConfig_4
    549            {
    550              tmpreg |= (tmp << ((GPIO_Remap >> 0x15)*0x10));
   \   0000004C   1900               MOVS     R1,R3
   \   0000004E   2300               MOVS     R3,R4
   \   00000050   400D               LSRS     R0,R0,#+21
   \   00000052   0001               LSLS     R0,R0,#+4
   \   00000054   8340               LSLS     R3,R3,R0
   \   00000056   0B43               ORRS     R3,R3,R1
    551            }
    552          
    553            AFIO->MAPR = tmpreg;
   \                     ??GPIO_PinRemapConfig_4:
   \   00000058   1360               STR      R3,[R2, #+0]
    554          }
   \   0000005A   70BD               POP      {R4-R6,PC}       ;; return
   \                     ??GPIO_PinRemapConfig_0:
   \   0000005C   04000140           DC32     0x40010004
    555          
    556          /*******************************************************************************
    557          * Function Name  : GPIO_EXTILineConfig
    558          * Description    : Selects the GPIO pin used as EXTI Line.
    559          * Input          : - GPIO_PortSource: selects the GPIO port to be used as
    560          *                    source for EXTI lines.
    561          *                    This parameter can be GPIO_PortSourceGPIOx where x can be
    562          *                    (A..G).
    563          *                  - GPIO_PinSource: specifies the EXTI line to be configured.
    564          *                   This parameter can be GPIO_PinSourcex where x can be (0..15).
    565          * Output         : None
    566          * Return         : None
    567          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    568          void GPIO_EXTILineConfig(u8 GPIO_PortSource, u8 GPIO_PinSource)
    569          {
   \                     GPIO_EXTILineConfig:
   \   00000000   10B5               PUSH     {R4,LR}
   \   00000002   0A00               MOVS     R2,R1
   \   00000004   9210               ASRS     R2,R2,#+2
   \   00000006   084B               LDR.N    R3,??GPIO_EXTILineConfig_0  ;; 0x40010008
   \   00000008   13EB8202           ADDS     R2,R3,R2, LSL #+2
   \   0000000C   8907               LSLS     R1,R1,#+30
   \   0000000E   890F               LSRS     R1,R1,#+30
   \   00000010   8900               LSLS     R1,R1,#+2
   \   00000012   1368               LDR      R3,[R2, #+0]
   \   00000014   0F24               MOVS     R4,#+15
   \   00000016   8C40               LSLS     R4,R4,R1
   \   00000018   A343               BICS     R3,R3,R4
   \   0000001A   1360               STR      R3,[R2, #+0]
    570            u32 tmp = 0x00;
    571          
    572            /* Check the parameters */
    573            assert_param(IS_GPIO_EXTI_PORT_SOURCE(GPIO_PortSource));
    574            assert_param(IS_GPIO_PIN_SOURCE(GPIO_PinSource));
    575            
    576            tmp = ((u32)0x0F) << (0x04 * (GPIO_PinSource & (u8)0x03));
    577          
    578            AFIO->EXTICR[GPIO_PinSource >> 0x02] &= ~tmp;
    579            AFIO->EXTICR[GPIO_PinSource >> 0x02] |= (((u32)GPIO_PortSource) << (0x04 * (GPIO_PinSource & (u8)0x03)));
   \   0000001C   1368               LDR      R3,[R2, #+0]
   \   0000001E   8840               LSLS     R0,R0,R1
   \   00000020   1843               ORRS     R0,R0,R3
   \   00000022   1060               STR      R0,[R2, #+0]
    580          }
   \   00000024   10BD               POP      {R4,PC}          ;; return
   \   00000026   00BF               Nop      
   \                     ??GPIO_EXTILineConfig_0:
   \   00000028   08000140           DC32     0x40010008
    581          
    582          /******************* (C) COPYRIGHT 2008 STMicroelectronics *****END OF FILE****/

   Maximum stack usage in bytes:

     Function               CSTACK
     --------               ------
     GPIO_AFIODeInit            4
     GPIO_DeInit                4
     GPIO_EXTILineConfig        8
     GPIO_EventOutputCmd        0
     GPIO_EventOutputConfig     8
     GPIO_Init                 24
     GPIO_PinLockConfig         0
     GPIO_PinRemapConfig       16
     GPIO_ReadInputData         0
     GPIO_ReadInputDataBit      4
     GPIO_ReadOutputData        0
     GPIO_ReadOutputDataBit     4
     GPIO_ResetBits             0
     GPIO_SetBits               0
     GPIO_StructInit            0
     GPIO_Write                 0
     GPIO_WriteBit              0


   Segment part sizes:

     Function/Label         Bytes
     --------------         -----
     GPIO_DeInit             204
     GPIO_AFIODeInit          20
     GPIO_Init               172
     GPIO_StructInit          20
     GPIO_ReadInputDataBit    16
     GPIO_ReadInputData        6
     GPIO_ReadOutputDataBit   16
     GPIO_ReadOutputData       6
     GPIO_SetBits              4
     GPIO_ResetBits            4
     GPIO_WriteBit            12
     GPIO_Write                4
     GPIO_PinLockConfig       16
     GPIO_EventOutputConfig   28
     GPIO_EventOutputCmd      12
     GPIO_PinRemapConfig      96
     GPIO_EXTILineConfig      44
      Others                   8

 
 688 bytes in segment CODE
 
 680 bytes of CODE memory (+ 8 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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