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