📄 stm32f10x_exti.lst
字号:
108 * Description : Generates a Software interrupt.
109 * Input : - EXTI_Line: specifies the EXTI lines to be enabled or
110 * disabled.
111 * This parameter can be:
112 * - EXTI_Linex: External interrupt line x where x(0..18)
113 * Output : None
114 * Return : None
115 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
116 void EXTI_GenerateSWInterrupt(u32 EXTI_Line)
117 {
118 /* Check the parameters */
119 assert_param(IS_EXTI_LINE(EXTI_Line));
120
121 EXTI->SWIER |= EXTI_Line;
\ EXTI_GenerateSWInterrupt:
\ 00000000 0249 LDR.N R1,??EXTI_GenerateSWInterrupt_0 ;; 0x40010410
\ 00000002 0968 LDR R1,[R1, #+0]
\ 00000004 0143 ORRS R1,R1,R0
\ 00000006 014A LDR.N R2,??EXTI_GenerateSWInterrupt_0 ;; 0x40010410
\ 00000008 1160 STR R1,[R2, #+0]
122 }
\ 0000000A 7047 BX LR ;; return
\ ??EXTI_GenerateSWInterrupt_0:
\ 0000000C 10040140 DC32 0x40010410
123
124 /*******************************************************************************
125 * Function Name : EXTI_GetFlagStatus
126 * Description : Checks whether the specified EXTI line flag is set or not.
127 * Input : - EXTI_Line: specifies the EXTI lines flag to check.
128 * This parameter can be:
129 * - EXTI_Linex: External interrupt line x where x(0..18)
130 * Output : None
131 * Return : The new state of EXTI_Line (SET or RESET).
132 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
133 FlagStatus EXTI_GetFlagStatus(u32 EXTI_Line)
134 {
\ EXTI_GetFlagStatus:
\ 00000000 0100 MOVS R1,R0
135 FlagStatus bitstatus = RESET;
\ 00000002 0022 MOVS R2,#+0
\ 00000004 1000 MOVS R0,R2
136
137 /* Check the parameters */
138 assert_param(IS_GET_EXTI_LINE(EXTI_Line));
139
140 if ((EXTI->PR & EXTI_Line) != (u32)RESET)
\ 00000006 .... LDR.N R2,??DataTable22 ;; 0x40010414
\ 00000008 1268 LDR R2,[R2, #+0]
\ 0000000A 0A40 ANDS R2,R2,R1
\ 0000000C 521E SUBS R2,R2,#+1
\ 0000000E 9241 SBCS R2,R2,R2
\ 00000010 D243 MVNS R2,R2
\ 00000012 D20F LSRS R2,R2,#+31
\ 00000014 1000 MOVS R0,R2
141 {
142 bitstatus = SET;
143 }
144 else
145 {
146 bitstatus = RESET;
147 }
148 return bitstatus;
\ 00000016 C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 00000018 7047 BX LR ;; return
149 }
150
151 /*******************************************************************************
152 * Function Name : EXTI_ClearFlag
153 * Description : Clears the EXTI抯 line pending flags.
154 * Input : - EXTI_Line: specifies the EXTI lines flags to clear.
155 * This parameter can be:
156 * - EXTI_Linex: External interrupt line x where x(0..18)
157 * Output : None
158 * Return : None
159 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
160 void EXTI_ClearFlag(u32 EXTI_Line)
161 {
162 /* Check the parameters */
163 assert_param(IS_EXTI_LINE(EXTI_Line));
164
165 EXTI->PR = EXTI_Line;
\ EXTI_ClearFlag:
\ 00000000 .... LDR.N R1,??DataTable22 ;; 0x40010414
\ 00000002 0860 STR R0,[R1, #+0]
166 }
\ 00000004 7047 BX LR ;; return
167
168 /*******************************************************************************
169 * Function Name : EXTI_GetITStatus
170 * Description : Checks whether the specified EXTI line is asserted or not.
171 * Input : - EXTI_Line: specifies the EXTI lines to check.
172 * This parameter can be:
173 * - EXTI_Linex: External interrupt line x where x(0..18)
174 * Output : None
175 * Return : The new state of EXTI_Line (SET or RESET).
176 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
177 ITStatus EXTI_GetITStatus(u32 EXTI_Line)
178 {
\ EXTI_GetITStatus:
\ 00000000 0100 MOVS R1,R0
179 ITStatus bitstatus = RESET;
\ 00000002 0023 MOVS R3,#+0
\ 00000004 1800 MOVS R0,R3
180 u32 enablestatus = 0;
\ 00000006 0023 MOVS R3,#+0
\ 00000008 1A00 MOVS R2,R3
181
182 /* Check the parameters */
183 assert_param(IS_GET_EXTI_LINE(EXTI_Line));
184
185 enablestatus = EXTI->IMR & EXTI_Line;
\ 0000000A .... LDR.N R3,??DataTable20 ;; 0x40010400
\ 0000000C 1B68 LDR R3,[R3, #+0]
\ 0000000E 0B40 ANDS R3,R3,R1
\ 00000010 1A00 MOVS R2,R3
186
187 if (((EXTI->PR & EXTI_Line) != (u32)RESET) && enablestatus)
\ 00000012 .... LDR.N R3,??DataTable22 ;; 0x40010414
\ 00000014 1B68 LDR R3,[R3, #+0]
\ 00000016 0B40 ANDS R3,R3,R1
\ 00000018 002B CMP R3,#+0
\ 0000001A 05D0 BEQ.N ??EXTI_GetITStatus_0
\ 0000001C 1000 MOVS R0,R2
\ 0000001E 401E SUBS R0,R0,#+1
\ 00000020 8041 SBCS R0,R0,R0
\ 00000022 C043 MVNS R0,R0
\ 00000024 C00F LSRS R0,R0,#+31
\ 00000026 01E0 B.N ??EXTI_GetITStatus_1
188 {
189 bitstatus = SET;
190 }
191 else
192 {
193 bitstatus = RESET;
\ ??EXTI_GetITStatus_0:
\ 00000028 0023 MOVS R3,#+0
\ 0000002A 1800 MOVS R0,R3
194 }
195 return bitstatus;
\ ??EXTI_GetITStatus_1:
\ 0000002C C0B2 UXTB R0,R0 ;; ZeroExtS R0,R0,#+24,#+24
\ 0000002E 7047 BX LR ;; return
196 }
197
198 /*******************************************************************************
199 * Function Name : EXTI_ClearITPendingBit
200 * Description : Clears the EXTI抯 line pending bits.
201 * Input : - EXTI_Line: specifies the EXTI lines to clear.
202 * This parameter can be:
203 * - EXTI_Linex: External interrupt line x where x(0..18)
204 * Output : None
205 * Return : None
206 *******************************************************************************/
\ In section .XML, align 4, keep-with-next
207 void EXTI_ClearITPendingBit(u32 EXTI_Line)
208 {
209 /* Check the parameters */
210 assert_param(IS_EXTI_LINE(EXTI_Line));
211
212 EXTI->PR = EXTI_Line;
\ EXTI_ClearITPendingBit:
\ 00000000 .... LDR.N R1,??DataTable22 ;; 0x40010414
\ 00000002 0860 STR R0,[R1, #+0]
213 }
\ 00000004 7047 BX LR ;; return
\ In section .XML, align 4, keep-with-next
\ ??DataTable11:
\ 00000000 08040140 DC32 0x40010408
\ In section .XML, align 4, keep-with-next
\ ??DataTable13:
\ 00000000 0C040140 DC32 0x4001040c
\ In section .XML, align 4, keep-with-next
\ ??DataTable20:
\ 00000000 00040140 DC32 0x40010400
\ In section .XML, align 4, keep-with-next
\ ??DataTable22:
\ 00000000 14040140 DC32 0x40010414
214
215 /******************* (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 0
EXTI_StructInit 0
Section sizes:
Function/Label Bytes
-------------- -----
EXTI_DeInit 40
EXTI_Init 114
EXTI_StructInit 18
EXTI_GenerateSWInterrupt 16
EXTI_GetFlagStatus 26
EXTI_ClearFlag 6
EXTI_GetITStatus 48
EXTI_ClearITPendingBit 6
??DataTable11 4
??DataTable13 4
??DataTable20 4
??DataTable22 4
290 bytes in section .XML
290 bytes of CODE memory
Errors: none
Warnings: none
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -