📄 gpio.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 + -