📄 stm32f10x_exti.lst
字号:
101 * Return : None
102 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
103 void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
104 {
105 EXTI_InitStruct->EXTI_Line = EXTI_LineNone;
\ EXTI_StructInit:
\ 00000000 0021 MOVS R1,#+0
\ 00000002 0160 STR R1,[R0, #+0]
106 EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt;
\ 00000004 0A00 MOVS R2,R1
\ 00000006 0271 STRB R2,[R0, #+4]
107 EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling;
\ 00000008 0C22 MOVS R2,#+12
\ 0000000A 4271 STRB R2,[R0, #+5]
108 EXTI_InitStruct->EXTI_LineCmd = DISABLE;
\ 0000000C 8171 STRB R1,[R0, #+6]
109 }
\ 0000000E 7047 BX LR ;; return
110
111 /*******************************************************************************
112 * Function Name : EXTI_GenerateSWInterrupt
113 * Description : Generates a Software interrupt.
114 * Input : - EXTI_Line: specifies the EXTI lines to be enabled or
115 * disabled.
116 * This parameter can be:
117 * - EXTI_Linex: External interrupt line x where x(0..18)
118 * Output : None
119 * Return : None
120 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
121 void EXTI_GenerateSWInterrupt(u32 EXTI_Line)
122 {
123 /* Check the parameters */
124 assert(IS_EXTI_LINE(EXTI_Line));
125
126 EXTI->SWIER |= EXTI_Line;
\ EXTI_GenerateSWInterrupt:
\ 00000000 0249 LDR.N R1,??EXTI_GenerateSWInterrupt_0 ;; 0x40010410
\ 00000002 0A68 LDR R2,[R1, #+0]
\ 00000004 1043 ORRS R0,R0,R2
\ 00000006 0860 STR R0,[R1, #+0]
127 }
\ 00000008 7047 BX LR ;; return
\ 0000000A 00BF Nop
\ ??EXTI_GenerateSWInterrupt_0:
\ 0000000C 10040140 DC32 0x40010410
128
129 /*******************************************************************************
130 * Function Name : EXTI_GetFlagStatus
131 * Description : Checks whether the specified EXTI line flag is set or not.
132 * Input : - EXTI_Line: specifies the EXTI lines flag to check.
133 * This parameter can be:
134 * - EXTI_Linex: External interrupt line x where x(0..18)
135 * Output : None
136 * Return : The new state of EXTI_Line (SET or RESET).
137 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
138 FlagStatus EXTI_GetFlagStatus(u32 EXTI_Line)
139 {
140 FlagStatus bitstatus = RESET;
141
142 /* Check the parameters */
143 assert(IS_GET_EXTI_LINE(EXTI_Line));
144
145 if ((EXTI->PR & EXTI_Line) != (u32)RESET)
\ EXTI_GetFlagStatus:
\ 00000000 .... LDR.N R1,??DataTable7 ;; 0x40010414
\ 00000002 0968 LDR R1,[R1, #+0]
\ 00000004 0840 ANDS R0,R0,R1
\ 00000006 01D0 BEQ.N ??EXTI_GetFlagStatus_0
146 {
147 bitstatus = SET;
\ 00000008 0120 MOVS R0,#+1
\ 0000000A 7047 BX LR
148 }
149 else
150 {
151 bitstatus = RESET;
\ ??EXTI_GetFlagStatus_0:
\ 0000000C 0020 MOVS R0,#+0
152 }
153 return bitstatus;
\ 0000000E 7047 BX LR ;; return
154 }
155
156 /*******************************************************************************
157 * Function Name : EXTI_ClearFlag
158 * Description : Clears the EXTI抯 line pending flags.
159 * Input : - EXTI_Line: specifies the EXTI lines flags to clear.
160 * This parameter can be:
161 * - EXTI_Linex: External interrupt line x where x(0..18)
162 * Output : None
163 * Return : None
164 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
165 void EXTI_ClearFlag(u32 EXTI_Line)
166 {
167 /* Check the parameters */
168 assert(IS_EXTI_LINE(EXTI_Line));
169
170 EXTI->PR = EXTI_Line;
\ EXTI_ClearFlag:
\ 00000000 .... LDR.N R1,??DataTable7 ;; 0x40010414
\ 00000002 0860 STR R0,[R1, #+0]
171 }
\ 00000004 7047 BX LR ;; return
172
173 /*******************************************************************************
174 * Function Name : EXTI_GetITStatus
175 * Description : Checks whether the specified EXTI line is asserted or not.
176 * Input : - EXTI_Line: specifies the EXTI lines to check.
177 * This parameter can be:
178 * - EXTI_Linex: External interrupt line x where x(0..18)
179 * Output : None
180 * Return : The new state of EXTI_Line (SET or RESET).
181 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
182 ITStatus EXTI_GetITStatus(u32 EXTI_Line)
183 {
184 ITStatus bitstatus = RESET;
185 u32 enablestatus = 0;
186
187 /* Check the parameters */
188 assert(IS_GET_EXTI_LINE(EXTI_Line));
189
190 enablestatus = EXTI->IMR & EXTI_Line;
\ EXTI_GetITStatus:
\ 00000000 .... LDR.N R1,??DataTable5 ;; 0x40010400
\ 00000002 0968 LDR R1,[R1, #+0]
\ 00000004 0140 ANDS R1,R1,R0
191
192 if (((EXTI->PR & EXTI_Line) != (u32)RESET) && enablestatus)
\ 00000006 .... LDR.N R2,??DataTable7 ;; 0x40010414
\ 00000008 1268 LDR R2,[R2, #+0]
\ 0000000A 1040 ANDS R0,R0,R2
\ 0000000C 03D0 BEQ.N ??EXTI_GetITStatus_0
\ 0000000E 0029 CMP R1,#+0
\ 00000010 01D0 BEQ.N ??EXTI_GetITStatus_0
193 {
194 bitstatus = SET;
\ 00000012 0120 MOVS R0,#+1
\ 00000014 7047 BX LR
195 }
196 else
197 {
198 bitstatus = RESET;
\ ??EXTI_GetITStatus_0:
\ 00000016 0020 MOVS R0,#+0
199 }
200 return bitstatus;
\ 00000018 7047 BX LR ;; return
201 }
202
203 /*******************************************************************************
204 * Function Name : EXTI_ClearITPendingBit
205 * Description : Clears the EXTI抯 line pending bits.
206 * Input : - EXTI_Line: specifies the EXTI lines to clear.
207 * This parameter can be:
208 * - EXTI_Linex: External interrupt line x where x(0..18)
209 * Output : None
210 * Return : None
211 *******************************************************************************/
\ In segment CODE, align 4, keep-with-next
212 void EXTI_ClearITPendingBit(u32 EXTI_Line)
213 {
214 /* Check the parameters */
215 assert(IS_EXTI_LINE(EXTI_Line));
216
217 EXTI->PR = EXTI_Line;
\ EXTI_ClearITPendingBit:
\ 00000000 .... LDR.N R1,??DataTable7 ;; 0x40010414
\ 00000002 0860 STR R0,[R1, #+0]
218 }
\ 00000004 7047 BX LR ;; return
\ In segment CODE, align 4, keep-with-next
\ ??DataTable5:
\ 00000000 00040140 DC32 0x40010400
\ In segment CODE, align 4, keep-with-next
\ ??DataTable7:
\ 00000000 14040140 DC32 0x40010414
219
220 /******************* (C) COPYRIGHT 2007 STMicroelectronics *****END OF FILE****/
Maximum stack usage in bytes:
Function CSTACK
-------- ------
EXTI_ClearFlag 0
EXTI_ClearITPendingBit 0
EXTI_DeInit 0
EXTI_GenerateSWInterrupt 0
EXTI_GetFlagStatus 0
EXTI_GetITStatus 0
EXTI_Init 12
EXTI_StructInit 0
Segment part sizes:
Function/Label Bytes
-------------- -----
EXTI_DeInit 32
EXTI_Init 96
EXTI_StructInit 16
EXTI_GenerateSWInterrupt 16
EXTI_GetFlagStatus 16
EXTI_ClearFlag 6
EXTI_GetITStatus 26
EXTI_ClearITPendingBit 6
??DataTable5 4
??DataTable7 4
222 bytes in segment CODE
222 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -