📄 usb_core.lst
字号:
258 0022 527A ldrb r2, [r2, #9] @ zero_extendqisi2
259 0024 12F0200F tst r2, #32
260 0028 03D0 beq .L29
176:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
177:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** SetBit(StatusInfo0, 1);
261 .loc 1 177 0
262 002a 0378 ldrb r3, [r0, #0] @ zero_extendqisi2
263 002c 43F00203 orr r3, r3, #2
264 0030 0370 strb r3, [r0, #0]
265 .L29:
178:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
179:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
180:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* Bus-powered */
181:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (ValBit(Feature, 6))
266 .loc 1 181 0
267 0032 12F0400F tst r2, #64
268 0036 1B4A ldr r2, .L40+4
182:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
183:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** ClrBit(StatusInfo0, 0);
269 .loc 1 183 0
270 0038 15BF itete ne
271 003a 1378 ldrbne r3, [r2, #0] @ zero_extendqisi2
184:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
185:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else /* Self-powered */
186:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
187:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** SetBit(StatusInfo0, 0);
272 .loc 1 187 0
273 003c 1378 ldrbeq r3, [r2, #0] @ zero_extendqisi2
274 .loc 1 183 0
275 003e 23F00103 bicne r3, r3, #1
276 .loc 1 187 0
277 0042 43F00103 orreq r3, r3, #1
278 0046 1370 strb r3, [r2, #0]
279 0048 24E0 b .L31
280 .L28:
281 .LBE2:
188:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
189:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
190:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*Interface Status*/
191:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else if (Type_Recipient == (STANDARD_REQUEST | INTERFACE_RECIPIENT))
282 .loc 1 191 0
283 004a 012B cmp r3, #1
284 004c 27D0 beq .L27
192:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
193:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return (uint8_t *)&StatusInfo;
194:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
195:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*Get EndPoint Status*/
196:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else if (Type_Recipient == (STANDARD_REQUEST | ENDPOINT_RECIPIENT))
285 .loc 1 196 0
286 004e 022B cmp r3, #2
287 0050 01D0 beq .L33
288 0052 0020 movs r0, #0
289 0054 23E0 b .L27
290 .L33:
291 .LBB3:
197:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
198:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint8_t Related_Endpoint;
199:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint8_t wIndex0 = pInformation->USBwIndex0;
292 .loc 1 199 0
293 0056 5379 ldrb r3, [r2, #5] @ zero_extendqisi2
294 .LVL10:
200:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
201:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** Related_Endpoint = (wIndex0 & 0x0f);
295 .loc 1 201 0
296 0058 03F00F02 and r2, r3, #15
297 .LVL11:
202:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (ValBit(wIndex0, 7))
298 .loc 1 202 0
299 005c 13F0800F tst r3, #128
300 0060 4FEA8202 lsl r2, r2, #2
301 .LVL12:
302 0064 08D0 beq .L34
203:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
204:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* IN endpoint */
205:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (_GetTxStallStatus(Related_Endpoint))
303 .loc 1 205 0
304 0066 02F18043 add r3, r2, #1073741824
305 .LVL13:
306 006a 03F5B843 add r3, r3, #23552
307 006e 1B68 ldr r3, [r3, #0]
308 0070 03F03003 and r3, r3, #48
309 0074 102B cmp r3, #16
310 0076 08E0 b .L39
311 .LVL14:
312 .L34:
206:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
207:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** SetBit(StatusInfo0, 0); /* IN Endpoint stalled */
208:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
209:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
210:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else
211:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
212:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* OUT endpoint */
213:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (_GetRxStallStatus(Related_Endpoint))
313 .loc 1 213 0
314 0078 02F18043 add r3, r2, #1073741824
315 .LVL15:
316 007c 03F5B843 add r3, r3, #23552
317 0080 1B68 ldr r3, [r3, #0]
318 0082 03F44053 and r3, r3, #12288
319 0086 B3F5805F cmp r3, #4096
320 .L39:
321 008a 03D1 bne .L31
214:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
215:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** SetBit(StatusInfo0, 0); /* OUT Endpoint stalled */
322 .loc 1 215 0
323 008c 0378 ldrb r3, [r0, #0] @ zero_extendqisi2
324 008e 43F00103 orr r3, r3, #1
325 0092 0370 strb r3, [r0, #0]
326 .L31:
327 .LBE3:
216:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
217:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
218:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
219:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
220:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else
221:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
222:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return NULL;
223:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
224:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** pUser_Standard_Requests->User_GetStatus();
328 .loc 1 224 0
329 0094 044B ldr r3, .L40+8
330 0096 1B68 ldr r3, [r3, #0]
331 0098 1B69 ldr r3, [r3, #16]
332 009a 9847 blx r3
333 009c 0148 ldr r0, .L40+4
334 .LVL16:
335 .L27:
336 .LVL17:
225:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return (uint8_t *)&StatusInfo;
226:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
337 .loc 1 226 0
338 009e 10BD pop {r4, pc}
339 .L41:
340 .align 2
341 .L40:
342 00a0 00000000 .word pInformation
343 00a4 00000000 .word StatusInfo
344 00a8 00000000 .word pUser_Standard_Requests
345 .LFE30:
347 .section .text.Standard_SetEndPointFeature,"ax",%progbits
348 .align 2
349 .global Standard_SetEndPointFeature
350 .thumb
351 .thumb_func
353 Standard_SetEndPointFeature:
354 .LFB32:
227:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
228:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*******************************************************************************
229:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Function Name : Standard_ClearFeature.
230:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description : Clear or disable a specific feature.
231:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Input : None.
232:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Output : None.
233:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return : - Return USB_SUCCESS, if the request is performed.
234:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * - Return USB_UNSUPPORT, if the request is invalid.
235:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *******************************************************************************/
236:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** RESULT Standard_ClearFeature(void)
237:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
238:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint32_t Type_Rec = Type_Recipient;
239:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint32_t Status;
240:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
241:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
242:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (Type_Rec == (STANDARD_REQUEST | DEVICE_RECIPIENT))
243:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {/*Device Clear Feature*/
244:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** ClrBit(pInformation->Current_Feature, 5);
245:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return USB_SUCCESS;
246:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
247:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else if (Type_Rec == (STANDARD_REQUEST | ENDPOINT_RECIPIENT))
248:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {/*EndPoint Clear Feature*/
249:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** DEVICE* pDev;
250:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint32_t Related_Endpoint;
251:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint32_t wIndex0;
252:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint32_t rEP;
253:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
254:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if ((pInformation->USBwValue != ENDPOINT_STALL)
255:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** || (pInformation->USBwIndex1 != 0))
256:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
257:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return USB_UNSUPPORT;
258:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
259:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
260:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** pDev = &Device_Table;
261:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** wIndex0 = pInformation->USBwIndex0;
262:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** rEP = wIndex0 & ~0x80;
263:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** Related_Endpoint = ENDP0 + rEP;
264:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
265:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (ValBit(pInformation->USBwIndex0, 7))
266:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
267:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*Get Status of endpoint & stall the request if the related_ENdpoint
268:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** is Disabled*/
269:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** Status = _GetEPTxStatus(Related_Endpoint);
270:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
271:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** else
272:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
273:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** Status = _GetEPRxStatus(Related_Endpoint);
274:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
275:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
276:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if ((rEP >= pDev->Total_Endpoint) || (Status == 0)
277:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** || (pInformation->Current_Configuration == 0))
278:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
279:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** return USB_UNSUPPORT;
280:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
281:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
282:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****
283:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (wIndex0 & 0x80)
284:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
285:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /* IN endpoint */
286:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** if (_GetTxStallStatus(Related_Endpoint ))
287:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
288:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** ClearDTOG_TX(Related_Endpoint);
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -