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

📄 gpio.lst

📁 本代码已经经过修改
💻 LST
📖 第 1 页 / 共 2 页
字号:
   \   0000005A   1340               AND         R3,R2
   \   0000005C   8380               STRH        R3,[R0, #+0x4]
     62                GPIOx->PC2|=Port_Pins;
   \   0000005E   13E0               B           ??GPIO_Config_9
     63                break;
     64          
     65              case GPIO_OUT_PP:
     66                GPIOx->PC0|=Port_Pins;
   \                     ??GPIO_Config_10:
   \   00000060   0288               LDRH        R2,[R0, #+0]
   \   00000062   0A43               ORR         R2,R1
   \   00000064   0280               STRH        R2,[R0, #+0]
     67                GPIOx->PC1&=~Port_Pins;
   \   00000066   8288               LDRH        R2,[R0, #+0x4]
   \   00000068   1340               AND         R3,R2
   \   0000006A   8380               STRH        R3,[R0, #+0x4]
     68                GPIOx->PC2|=Port_Pins;
   \   0000006C   0CE0               B           ??GPIO_Config_9
     69                break;
     70          
     71              case GPIO_AF_OD:
     72                GPIOx->PC0&=~Port_Pins;
   \                     ??GPIO_Config_11:
   \   0000006E   0288               LDRH        R2,[R0, #+0]
   \   00000070   1340               AND         R3,R2
   \   00000072   0380               STRH        R3,[R0, #+0]
     73                GPIOx->PC1|=Port_Pins;
   \   00000074   8288               LDRH        R2,[R0, #+0x4]
   \   00000076   0A43               ORR         R2,R1
   \   00000078   8280               STRH        R2,[R0, #+0x4]
     74                GPIOx->PC2|=Port_Pins;
   \   0000007A   05E0               B           ??GPIO_Config_9
     75                break;
     76          
     77              case GPIO_AF_PP:
     78                GPIOx->PC0|=Port_Pins;
   \                     ??GPIO_Config_12:
   \   0000007C   0288               LDRH        R2,[R0, #+0]
   \   0000007E   0A43               ORR         R2,R1
   \   00000080   0280               STRH        R2,[R0, #+0]
     79                GPIOx->PC1|=Port_Pins;
   \   00000082   8288               LDRH        R2,[R0, #+0x4]
   \   00000084   0A43               ORR         R2,R1
   \   00000086   8280               STRH        R2,[R0, #+0x4]
     80                GPIOx->PC2|=Port_Pins;
   \                     ??GPIO_Config_9:
   \   00000088   0289               LDRH        R2,[R0, #+0x8]
   \   0000008A   1143               ORR         R1,R2
   \   0000008C   0181               STRH        R1,[R0, #+0x8]
     81                break;
     82            }
     83          }
   \                     ??GPIO_Config_1:
   \   0000008E   10BC               POP         {R4}
   \   00000090   00B0               ADD         SP,#+0
   \   00000092   7047               BX          LR                 ;; return
     84          
     85          /*******************************************************************************
     86          * Function Name  : GPIO_BitWrite
     87          * Description    : Set or reset the selected port pin
     88          * Input 1        : Selected GPIO port
     89          * Input 2        : Pin number
     90          * Input 3        : bit value
     91          * Output         : None
     92          * Return         : None
     93          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
     94          void GPIO_BitWrite(GPIO_TypeDef *GPIOx, u8 Port_Pin, u8 Port_Val)
     95          {
   \                     GPIO_BitWrite:
   \   00000000   0123               MOV         R3,#+0x1
   \   00000002   8B40               LSL         R3,R1
   \   00000004   D107               LSL         R1,R2,#+0x1F
   \   00000006   8189               LDRH        R1,[R0, #+0xC]
   \   00000008   02D5               BPL         ??GPIO_BitWrite_0
     96            if (Port_Val&0x01) GPIOx->PD |= 1<<Port_Pin; else GPIOx->PD &= ~(1<<Port_Pin);
   \   0000000A   0B43               ORR         R3,R1
   \   0000000C   8381               STRH        R3,[R0, #+0xC]
   \   0000000E   02E0               B           ??GPIO_BitWrite_1
   \                     ??GPIO_BitWrite_0:
   \   00000010   DA43               MVN         R2,R3
   \   00000012   0A40               AND         R2,R1
   \   00000014   8281               STRH        R2,[R0, #+0xC]
     97          }
   \                     ??GPIO_BitWrite_1:
   \   00000016   00B0               ADD         SP,#+0
   \   00000018   7047               BX          LR                 ;; return
     98          
     99          /*******************************************************************************
    100          * Function Name  : GPIO_ByteWrite
    101          * Description    : Write byte value to the selected PD register
    102          * Input 1        : Selected GPIO port
    103          * Input 2        : GPIO_MSB or GPIO_LSB
    104          * Input 3        : Byte value
    105          * Output         : None
    106          * Return         : None
    107          *******************************************************************************/

   \                                 In segment CODE, align 4, keep-with-next
    108          void GPIO_ByteWrite(GPIO_TypeDef *GPIOx, u8 Port_Byte, u8 Port_Val)
    109          {
    110            GPIOx->PD = Port_Byte ? (GPIOx->PD&0x00FF) | ((u16)Port_Val<<8)
    111                                  : (GPIOx->PD&0xFF00) | Port_Val;
   \                     GPIO_ByteWrite:
   \   00000000   0029               CMP         R1,#+0
   \   00000002   8189               LDRH        R1,[R0, #+0xC]
   \   00000004   04D0               BEQ         ??GPIO_ByteWrite_0
   \   00000006   0906               LSL         R1,R1,#+0x18
   \   00000008   090E               LSR         R1,R1,#+0x18
   \   0000000A   1202               LSL         R2,R2,#+0x8
   \   0000000C   0A43               ORR         R2,R1
   \   0000000E   03E0               B           ??GPIO_ByteWrite_1
   \                     ??GPIO_ByteWrite_0:
   \   00000010   FF23               MOV         R3,#+0xFF
   \   00000012   1B02               LSL         R3,R3,#+0x8        ;; #+0xFF00
   \   00000014   0B40               AND         R3,R1
   \   00000016   1A43               ORR         R2,R3
   \                     ??GPIO_ByteWrite_1:
   \   00000018   8281               STRH        R2,[R0, #+0xC]
    112          }
   \   0000001A   00B0               ADD         SP,#+0
   \   0000001C   7047               BX          LR                 ;; return
    113          
    114          /******************* (C) COPYRIGHT 2003 STMicroelectronics *****END OF FILE****/

   Maximum stack usage in bytes:

     Function       CSTACK
     --------       ------
     GPIO_BitWrite      4
     GPIO_ByteWrite     4
     GPIO_Config        8


   Segment part sizes:

     Function/Label Bytes
     -------------- -----
     GPIO_Config     148
     GPIO_BitWrite    26
     GPIO_ByteWrite   30
      Others          24

 
 228 bytes in segment CODE
 
 204 bytes of CODE memory (+ 24 bytes shared)

Errors: none
Warnings: none

⌨️ 快捷键说明

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