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

📄 gpio.lst

📁 IAPBootLoader源程序是单片机ARM的在系统编程方法1
💻 LST
字号:
##############################################################################
#                                                                            #
# IAR ARM ANSI C/C++ Compiler V4.40A/W32               17/Jan/2007  16:16:24 #
# Copyright 1999-2005 IAR Systems. All rights reserved.                      #
#                                                                            #
#    Cpu mode        =  arm                                                  #
#    Endian          =  little                                               #
#    Stack alignment =  4                                                    #
#    Source file     =  D:\lilian\STR71X\application note\IAP using          #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\source\gpio.c #
#    Command line    =  "D:\lilian\STR71X\application note\IAP using         #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\source\gpio.c #
#                       " -lC "D:\lilian\STR71X\application note\IAP using   #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\Debug\Li #
#                       st\" -lA "D:\lilian\STR71X\application note\IAP      #
#                       using UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\De #
#                       bug\List\" -o "D:\lilian\STR71X\application          #
#                       note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2. #
#                       0\user\Debug\Obj\" -z2 --no_cse --no_unroll          #
#                       --no_inline --no_code_motion --no_tbaa               #
#                       --no_clustering --no_scheduling --debug --cpu_mode   #
#                       arm --endian little --cpu ARM7TDMI --stack_align 4   #
#                       -e --fpu None --dlib_config "C:\Program Files\IAR    #
#                       Systems\Embedded Workbench                           #
#                       4.0\arm\LIB\dl4tpannl8n.h" -I                        #
#                       "D:\lilian\STR71X\application note\IAP using         #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\..\inclu #
#                       de\" -I "D:\lilian\STR71X\application note\IAP       #
#                       using UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\.. #
#                       \common\" -I ROJ_DIR$\ -I "C:\Program Files\IAR      #
#                       Systems\Embedded Workbench 4.0\arm\INC\"             #
#    List file       =  D:\lilian\STR71X\application note\IAP using          #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\Debug\Li #
#                       st\gpio.lst                                          #
#    Object file     =  D:\lilian\STR71X\application note\IAP using          #
#                       UART\an2078_IAR(forum)\an2078\IAP_V2.0\user\Debug\Ob #
#                       j\gpio.r79                                           #
#                                                                            #
#                                                                            #
##############################################################################

D:\lilian\STR71X\application note\IAP using UART\an2078_IAR(forum)\an2078\IAP_V2.0\source\gpio.c
      1          /******************** (C) COPYRIGHT 2006 STMicroelectronics ********************
      2          * File Name          : gpio.c
      3          * Author             : MCD Application Team
      4          * Date First Issued  : 06/08/2003
      5          * Description        : This file provides all the GPIO software functions.
      6          ********************************************************************************
      7          * History:
      8          *  02/01/2006 : IAP Version 2.0
      9          *  11/24/2004 : IAP Version 1.0
     10          *******************************************************************************
     11           THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH
     12           CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
     13           AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT, INDIRECT
     14           OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
     15           OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION
     16           CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
     17          *******************************************************************************/
     18          
     19          #include "gpio.h"
     20          
     21          /*******************************************************************************
     22          * Function Name  : GPIO_Config
     23          * Description    : Configure the GPIO port pins.
     24          * Input 1        : GPIOx (x can be 0,1 or 2) the desired port.
     25          * Input 2        : Port_Pins : pins placements.
     26          * Input 3        : Pins Mode(GPIO_HI_AIN_TRI,GPIO_IN_TRI_TTL,GPIO_IN_TRI_CMOS,
     27          *                   GPIO_IPUPD_WP,GPIO_OUT_OD,GPIO_OUT_PP,GPIO_AF_OD,GPIO_AF_PP).
     28          * Output         : None
     29          * Return         : None
     30          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     31          void GPIO_Config (GPIO_TypeDef *GPIOx, u16 Port_Pins, GpioPinMode_TypeDef GPIO_Mode)
     32          {
     33            switch (GPIO_Mode)
   \                     GPIO_Config:
   \   00000000   0230B0E1           MOVS     R3,R2
   \   00000004   070053E3           CMP      R3,#+7
   \   00000008   5300008A           BHI      ??GPIO_Config_1
   \   0000000C   01CF8FE2           ADR      R12,??GPIO_Config_0
   \   00000010   03C0DCE7           LDRB     R12,[R12, R3]
   \   00000014   0CF18FE0           ADD      PC,PC,R12, LSL #+2
   \                     ??GPIO_Config_0:
   \   00000018   010B151F           DC8      +1,+11,+21,+31
   \   0000001C   29333D47           DC8      +41,+51,+61,+71
     34            {
     35              case GPIO_HI_AIN_TRI:
     36                GPIOx->PC0&=~Port_Pins;
   \                     ??GPIO_Config_2:
   \   00000020   B030D0E1           LDRH     R3,[R0, #+0]
   \   00000024   0130D3E1           BICS     R3,R3,R1
   \   00000028   B030C0E1           STRH     R3,[R0, #+0]
     37                GPIOx->PC1&=~Port_Pins;
   \   0000002C   B430D0E1           LDRH     R3,[R0, #+4]
   \   00000030   0130D3E1           BICS     R3,R3,R1
   \   00000034   B430C0E1           STRH     R3,[R0, #+4]
     38                GPIOx->PC2&=~Port_Pins;
   \   00000038   B830D0E1           LDRH     R3,[R0, #+8]
   \   0000003C   0130D3E1           BICS     R3,R3,R1
   \   00000040   B830C0E1           STRH     R3,[R0, #+8]
   \   00000044   440000EA           B        ??GPIO_Config_1
     39                break;
     40          
     41              case GPIO_IN_TRI_TTL:
     42                GPIOx->PC0|=Port_Pins;
   \                     ??GPIO_Config_3:
   \   00000048   B030D0E1           LDRH     R3,[R0, #+0]
   \   0000004C   033091E1           ORRS     R3,R1,R3
   \   00000050   B030C0E1           STRH     R3,[R0, #+0]
     43                GPIOx->PC1&=~Port_Pins;
   \   00000054   B430D0E1           LDRH     R3,[R0, #+4]
   \   00000058   0130D3E1           BICS     R3,R3,R1
   \   0000005C   B430C0E1           STRH     R3,[R0, #+4]
     44                GPIOx->PC2&=~Port_Pins;
   \   00000060   B830D0E1           LDRH     R3,[R0, #+8]
   \   00000064   0130D3E1           BICS     R3,R3,R1
   \   00000068   B830C0E1           STRH     R3,[R0, #+8]
   \   0000006C   3A0000EA           B        ??GPIO_Config_1
     45                break;
     46          
     47              case GPIO_IN_TRI_CMOS:
     48                GPIOx->PC0&=~Port_Pins;
   \                     ??GPIO_Config_4:
   \   00000070   B030D0E1           LDRH     R3,[R0, #+0]
   \   00000074   0130D3E1           BICS     R3,R3,R1
   \   00000078   B030C0E1           STRH     R3,[R0, #+0]
     49                GPIOx->PC1|=Port_Pins;
   \   0000007C   B430D0E1           LDRH     R3,[R0, #+4]
   \   00000080   033091E1           ORRS     R3,R1,R3
   \   00000084   B430C0E1           STRH     R3,[R0, #+4]
     50                GPIOx->PC2&=~Port_Pins;
   \   00000088   B830D0E1           LDRH     R3,[R0, #+8]
   \   0000008C   0130D3E1           BICS     R3,R3,R1
   \   00000090   B830C0E1           STRH     R3,[R0, #+8]
   \   00000094   300000EA           B        ??GPIO_Config_1
     51                break;
     52          
     53              case GPIO_IPUPD_WP:
     54                GPIOx->PC0|=Port_Pins;
   \                     ??GPIO_Config_5:
   \   00000098   B030D0E1           LDRH     R3,[R0, #+0]
   \   0000009C   033091E1           ORRS     R3,R1,R3
   \   000000A0   B030C0E1           STRH     R3,[R0, #+0]
     55                GPIOx->PC1|=Port_Pins;
   \   000000A4   B430D0E1           LDRH     R3,[R0, #+4]
   \   000000A8   033091E1           ORRS     R3,R1,R3
   \   000000AC   B430C0E1           STRH     R3,[R0, #+4]
     56                GPIOx->PC2&=~Port_Pins;
   \   000000B0   B830D0E1           LDRH     R3,[R0, #+8]
   \   000000B4   0130D3E1           BICS     R3,R3,R1
   \   000000B8   B830C0E1           STRH     R3,[R0, #+8]
   \   000000BC   260000EA           B        ??GPIO_Config_1
     57                break;
     58          
     59              case GPIO_OUT_OD:
     60                GPIOx->PC0&=~Port_Pins;
   \                     ??GPIO_Config_6:
   \   000000C0   B030D0E1           LDRH     R3,[R0, #+0]
   \   000000C4   0130D3E1           BICS     R3,R3,R1
   \   000000C8   B030C0E1           STRH     R3,[R0, #+0]
     61                GPIOx->PC1&=~Port_Pins;
   \   000000CC   B430D0E1           LDRH     R3,[R0, #+4]
   \   000000D0   0130D3E1           BICS     R3,R3,R1
   \   000000D4   B430C0E1           STRH     R3,[R0, #+4]
     62                GPIOx->PC2|=Port_Pins;
   \   000000D8   B830D0E1           LDRH     R3,[R0, #+8]
   \   000000DC   033091E1           ORRS     R3,R1,R3
   \   000000E0   B830C0E1           STRH     R3,[R0, #+8]
   \   000000E4   1C0000EA           B        ??GPIO_Config_1
     63                break;
     64          
     65              case GPIO_OUT_PP:
     66                GPIOx->PC0|=Port_Pins;
   \                     ??GPIO_Config_7:
   \   000000E8   B030D0E1           LDRH     R3,[R0, #+0]
   \   000000EC   033091E1           ORRS     R3,R1,R3
   \   000000F0   B030C0E1           STRH     R3,[R0, #+0]
     67                GPIOx->PC1&=~Port_Pins;
   \   000000F4   B430D0E1           LDRH     R3,[R0, #+4]
   \   000000F8   0130D3E1           BICS     R3,R3,R1
   \   000000FC   B430C0E1           STRH     R3,[R0, #+4]
     68                GPIOx->PC2|=Port_Pins;
   \   00000100   B830D0E1           LDRH     R3,[R0, #+8]
   \   00000104   033091E1           ORRS     R3,R1,R3
   \   00000108   B830C0E1           STRH     R3,[R0, #+8]
   \   0000010C   120000EA           B        ??GPIO_Config_1
     69                break;
     70          
     71              case GPIO_AF_OD:
     72                GPIOx->PC0&=~Port_Pins;
   \                     ??GPIO_Config_8:
   \   00000110   B030D0E1           LDRH     R3,[R0, #+0]
   \   00000114   0130D3E1           BICS     R3,R3,R1
   \   00000118   B030C0E1           STRH     R3,[R0, #+0]
     73                GPIOx->PC1|=Port_Pins;
   \   0000011C   B430D0E1           LDRH     R3,[R0, #+4]
   \   00000120   033091E1           ORRS     R3,R1,R3
   \   00000124   B430C0E1           STRH     R3,[R0, #+4]
     74                GPIOx->PC2|=Port_Pins;
   \   00000128   B830D0E1           LDRH     R3,[R0, #+8]
   \   0000012C   033091E1           ORRS     R3,R1,R3
   \   00000130   B830C0E1           STRH     R3,[R0, #+8]
   \   00000134   080000EA           B        ??GPIO_Config_1
     75                break;
     76          
     77              case GPIO_AF_PP:
     78                GPIOx->PC0|=Port_Pins;
   \                     ??GPIO_Config_9:
   \   00000138   B030D0E1           LDRH     R3,[R0, #+0]
   \   0000013C   033091E1           ORRS     R3,R1,R3
   \   00000140   B030C0E1           STRH     R3,[R0, #+0]
     79                GPIOx->PC1|=Port_Pins;
   \   00000144   B430D0E1           LDRH     R3,[R0, #+4]
   \   00000148   033091E1           ORRS     R3,R1,R3
   \   0000014C   B430C0E1           STRH     R3,[R0, #+4]
     80                GPIOx->PC2|=Port_Pins;
   \   00000150   B830D0E1           LDRH     R3,[R0, #+8]
   \   00000154   033091E1           ORRS     R3,R1,R3
   \   00000158   B830C0E1           STRH     R3,[R0, #+8]
     81                break;
     82            }
     83          }
   \                     ??GPIO_Config_1:
   \   0000015C   0EF0A0E1           MOV      PC,LR            ;; return
     84          
     85          /******************* (C) COPYRIGHT 2006 STMicroelectronics *****END OF FILE****/

   Maximum stack usage in bytes:

     Function    CSTACK
     --------    ------
     GPIO_Config     0


   Segment part sizes:

     Function/Label Bytes
     -------------- -----
     GPIO_Config     352

 
 352 bytes in segment CODE
 
 352 bytes of CODE memory

Errors: none
Warnings: none

⌨️ 快捷键说明

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