📄 stm32f10x_exti.lst
字号:
145 /* Disable the selected external lines */
146 *(__IO uint32_t *) tmp &= ~EXTI_InitStruct->EXTI_Line;
\ 0000007E 0A68 LDR R2,[R1, #+0]
\ 00000080 0368 LDR R3,[R0, #+0]
\ 00000082 9A43 BICS R2,R2,R3
\ 00000084 0A60 STR R2,[R1, #+0]
147 }
148 }
\ ??EXTI_Init_2:
\ 00000086 7047 BX LR ;; return
149
150 /**
151 * @brief Fills each EXTI_InitStruct member with its reset value.
152 * @param EXTI_InitStruct: pointer to a EXTI_InitTypeDef structure which will
153 * be initialized.
154 * @retval None
155 */
\ In section .text, align 2, keep-with-next
156 void EXTI_StructInit(EXTI_InitTypeDef* EXTI_InitStruct)
157 {
158 EXTI_InitStruct->EXTI_Line = EXTI_LINENONE;
\ EXTI_StructInit:
\ 00000000 0021 MOVS R1,#+0
\ 00000002 0160 STR R1,[R0, #+0]
159 EXTI_InitStruct->EXTI_Mode = EXTI_Mode_Interrupt;
\ 00000004 0021 MOVS R1,#+0
\ 00000006 0171 STRB R1,[R0, #+4]
160 EXTI_InitStruct->EXTI_Trigger = EXTI_Trigger_Falling;
\ 00000008 0C21 MOVS R1,#+12
\ 0000000A 4171 STRB R1,[R0, #+5]
161 EXTI_InitStruct->EXTI_LineCmd = DISABLE;
\ 0000000C 0021 MOVS R1,#+0
\ 0000000E 8171 STRB R1,[R0, #+6]
162 }
\ 00000010 7047 BX LR ;; return
163
164 /**
165 * @brief Generates a Software interrupt.
166 * @param EXTI_Line: specifies the EXTI lines to be enabled or disabled.
167 * This parameter can be any combination of EXTI_Linex where x can be (0..19).
168 * @retval None
169 */
\ In section .text, align 2, keep-with-next
170 void EXTI_GenerateSWInterrupt(uint32_t EXTI_Line)
171 {
172 /* Check the parameters */
173 assert_param(IS_EXTI_LINE(EXTI_Line));
174
175 EXTI->SWIER |= EXTI_Line;
\ EXTI_GenerateSWInterrupt:
\ 00000000 .... LDR.N R1,??DataTable6_6 ;; 0x40010410
\ 00000002 0968 LDR R1,[R1, #+0]
\ 00000004 0143 ORRS R1,R0,R1
\ 00000006 .... LDR.N R2,??DataTable6_6 ;; 0x40010410
\ 00000008 1160 STR R1,[R2, #+0]
176 }
\ 0000000A 7047 BX LR ;; return
177
178 /**
179 * @brief Checks whether the specified EXTI line flag is set or not.
180 * @param EXTI_Line: specifies the EXTI line flag to check.
181 * This parameter can be:
182 * @arg EXTI_Linex: External interrupt line x where x(0..19)
183 * @retval The new state of EXTI_Line (SET or RESET).
184 */
\ In section .text, align 2, keep-with-next
185 FlagStatus EXTI_GetFlagStatus(uint32_t EXTI_Line)
186 {
\ EXTI_GetFlagStatus:
\ 00000000 0100 MOVS R1,R0
187 FlagStatus bitstatus = RESET;
\ 00000002 0020 MOVS R0,#+0
188 /* Check the parameters */
189 assert_param(IS_GET_EXTI_LINE(EXTI_Line));
190
191 if ((EXTI->PR & EXTI_Line) != (uint32_t)RESET)
\ 00000004 .... LDR.N R2,??DataTable6_4 ;; 0x40010414
\ 00000006 1268 LDR R2,[R2, #+0]
\ 00000008 0A42 TST R2,R1
\ 0000000A 02D0 BEQ.N ??EXTI_GetFlagStatus_0
192 {
193 bitstatus = SET;
\ 0000000C 0122 MOVS R2,#+1
\ 0000000E 1000 MOVS R0,R2
\ 00000010 01E0 B.N ??EXTI_GetFlagStatus_1
194 }
195 else
196 {
197 bitstatus = RESET;
\ ??EXTI_GetFlagStatus_0:
\ 00000012 0022 MOVS R2,#+0
\ 00000014 1000 MOVS R0,R2
198 }
199 return bitstatus;
\ ??EXTI_GetFlagStatus_1:
\ 00000016 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000018 7047 BX LR ;; return
200 }
201
202 /**
203 * @brief Clears the EXTI抯 line pending flags.
204 * @param EXTI_Line: specifies the EXTI lines flags to clear.
205 * This parameter can be any combination of EXTI_Linex where x can be (0..19).
206 * @retval None
207 */
\ In section .text, align 2, keep-with-next
208 void EXTI_ClearFlag(uint32_t EXTI_Line)
209 {
210 /* Check the parameters */
211 assert_param(IS_EXTI_LINE(EXTI_Line));
212
213 EXTI->PR = EXTI_Line;
\ EXTI_ClearFlag:
\ 00000000 .... LDR.N R1,??DataTable6_4 ;; 0x40010414
\ 00000002 0860 STR R0,[R1, #+0]
214 }
\ 00000004 7047 BX LR ;; return
215
216 /**
217 * @brief Checks whether the specified EXTI line is asserted or not.
218 * @param EXTI_Line: specifies the EXTI line to check.
219 * This parameter can be:
220 * @arg EXTI_Linex: External interrupt line x where x(0..19)
221 * @retval The new state of EXTI_Line (SET or RESET).
222 */
\ In section .text, align 2, keep-with-next
223 ITStatus EXTI_GetITStatus(uint32_t EXTI_Line)
224 {
\ EXTI_GetITStatus:
\ 00000000 0100 MOVS R1,R0
225 ITStatus bitstatus = RESET;
\ 00000002 0020 MOVS R0,#+0
226 uint32_t enablestatus = 0;
\ 00000004 0022 MOVS R2,#+0
227 /* Check the parameters */
228 assert_param(IS_GET_EXTI_LINE(EXTI_Line));
229
230 enablestatus = EXTI->IMR & EXTI_Line;
\ 00000006 .... LDR.N R3,??DataTable6 ;; 0x40010400
\ 00000008 1B68 LDR R3,[R3, #+0]
\ 0000000A 0B40 ANDS R3,R1,R3
\ 0000000C 1A00 MOVS R2,R3
231 if (((EXTI->PR & EXTI_Line) != (uint32_t)RESET) && (enablestatus != (uint32_t)RESET))
\ 0000000E .... LDR.N R3,??DataTable6_4 ;; 0x40010414
\ 00000010 1B68 LDR R3,[R3, #+0]
\ 00000012 0B42 TST R3,R1
\ 00000014 04D0 BEQ.N ??EXTI_GetITStatus_0
\ 00000016 002A CMP R2,#+0
\ 00000018 02D0 BEQ.N ??EXTI_GetITStatus_0
232 {
233 bitstatus = SET;
\ 0000001A 0123 MOVS R3,#+1
\ 0000001C 1800 MOVS R0,R3
\ 0000001E 01E0 B.N ??EXTI_GetITStatus_1
234 }
235 else
236 {
237 bitstatus = RESET;
\ ??EXTI_GetITStatus_0:
\ 00000020 0023 MOVS R3,#+0
\ 00000022 1800 MOVS R0,R3
238 }
239 return bitstatus;
\ ??EXTI_GetITStatus_1:
\ 00000024 C0B2 UXTB R0,R0 ;; ZeroExt R0,R0,#+24,#+24
\ 00000026 7047 BX LR ;; return
240 }
241
242 /**
243 * @brief Clears the EXTI抯 line pending bits.
244 * @param EXTI_Line: specifies the EXTI lines to clear.
245 * This parameter can be any combination of EXTI_Linex where x can be (0..19).
246 * @retval None
247 */
\ In section .text, align 2, keep-with-next
248 void EXTI_ClearITPendingBit(uint32_t EXTI_Line)
249 {
250 /* Check the parameters */
251 assert_param(IS_EXTI_LINE(EXTI_Line));
252
253 EXTI->PR = EXTI_Line;
\ EXTI_ClearITPendingBit:
\ 00000000 .... LDR.N R1,??DataTable6_4 ;; 0x40010414
\ 00000002 0860 STR R0,[R1, #+0]
254 }
\ 00000004 7047 BX LR ;; return
\ In section .text, align 4, keep-with-next
\ ??DataTable6:
\ 00000000 00040140 DC32 0x40010400
\ In section .text, align 4, keep-with-next
\ ??DataTable6_1:
\ 00000000 04040140 DC32 0x40010404
\ In section .text, align 4, keep-with-next
\ ??DataTable6_2:
\ 00000000 08040140 DC32 0x40010408
\ In section .text, align 4, keep-with-next
\ ??DataTable6_3:
\ 00000000 0C040140 DC32 0x4001040c
\ In section .text, align 4, keep-with-next
\ ??DataTable6_4:
\ 00000000 14040140 DC32 0x40010414
\ In section .text, align 4, keep-with-next
\ ??DataTable6_5:
\ 00000000 FFFF0F00 DC32 0xfffff
\ In section .text, align 4, keep-with-next
\ ??DataTable6_6:
\ 00000000 10040140 DC32 0x40010410
255
256 /**
257 * @}
258 */
259
260 /**
261 * @}
262 */
263
264 /**
265 * @}
266 */
267
268 /******************* (C) COPYRIGHT 2010 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 0
EXTI_StructInit 0
Section sizes:
Function/Label Bytes
-------------- -----
EXTI_DeInit 32
EXTI_Init 136
EXTI_StructInit 18
EXTI_GenerateSWInterrupt 12
EXTI_GetFlagStatus 26
EXTI_ClearFlag 6
EXTI_GetITStatus 40
EXTI_ClearITPendingBit 6
??DataTable6 4
??DataTable6_1 4
??DataTable6_2 4
??DataTable6_3 4
??DataTable6_4 4
??DataTable6_5 4
??DataTable6_6 4
304 bytes in section .text
304 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -