📄 gpio.lst
字号:
\ 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 + -