⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usb_core.lst

📁 STM32 VirtualCOMPort DEMO now It s works fine???
💻 LST
📖 第 1 页 / 共 5 页
字号:
 472 0004 1A68     		ldr	r2, [r3, #0]
 473 0006 537A     		ldrb	r3, [r2, #9]	@ zero_extendqisi2
 474 0008 43F02003 		orr	r3, r3, #32
 475 000c 5372     		strb	r3, [r2, #9]
 382:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   pUser_Standard_Requests->User_SetDeviceFeature();
 476              		.loc 1 382 0
 477 000e 044B     		ldr	r3, .L55+4
 478 0010 1B68     		ldr	r3, [r3, #0]
 479 0012 DB69     		ldr	r3, [r3, #28]
 480 0014 9847     		blx	r3
 383:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   return USB_SUCCESS;
 384:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
 481              		.loc 1 384 0
 482 0016 0020     		movs	r0, #0
 483 0018 10BD     		pop	{r4, pc}
 484              	.L56:
 485 001a C046     		.align	2
 486              	.L55:
 487 001c 00000000 		.word	pInformation
 488 0020 00000000 		.word	pUser_Standard_Requests
 489              	.LFE33:
 491              		.section	.text.Standard_GetDescriptorData,"ax",%progbits
 492              		.align	2
 493              		.global	Standard_GetDescriptorData
 494              		.thumb
 495              		.thumb_func
 497              	Standard_GetDescriptorData:
 498              	.LFB34:
 385:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 386:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*******************************************************************************
 387:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Function Name  : Standard_GetDescriptorData.
 388:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description    : Standard_GetDescriptorData is used for descriptors transfer.
 389:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                : This routine is used for the descriptors resident in Flash
 390:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  or RAM
 391:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  pDesc can be in either Flash or RAM
 392:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  The purpose of this routine is to have a versatile way to
 393:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  response descriptors request. It allows user to generate
 394:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  certain descriptors with software or read descriptors from
 395:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  external storage part by part.
 396:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Input          : - Length - Length of the data in this transfer.
 397:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  - pDesc - A pointer points to descriptor struct.
 398:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  The structure gives the initial address of the descriptor and
 399:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  its original size.
 400:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Output         : None.
 401:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return         : Address of a part of the descriptor pointed by the Usb_
 402:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  wOffset The buffer pointed by this address contains at least
 403:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *                  Length bytes.
 404:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *******************************************************************************/
 405:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** uint8_t *Standard_GetDescriptorData(uint16_t Length, ONE_DESCRIPTOR *pDesc)
 406:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
 499              		.loc 1 406 0
 500              		@ args = 0, pretend = 0, frame = 0
 501              		@ frame_needed = 0, uses_anonymous_args = 0
 502              	.LVL35:
 503 0000 10B5     		push	{r4, lr}
 504              	.LCFI7:
 407:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   uint32_t  wOffset;
 408:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 409:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   wOffset = pInformation->Ctrl_Info.Usb_wOffset;
 505              		.loc 1 409 0
 506 0002 064B     		ldr	r3, .L61
 507              		.loc 1 406 0
 508 0004 0C46     		mov	r4, r1
 509              		.loc 1 409 0
 510 0006 1A68     		ldr	r2, [r3, #0]
 511 0008 518A     		ldrh	r1, [r2, #18]
 512              	.LVL36:
 410:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   if (Length == 0)
 513              		.loc 1 410 0
 514 000a 18B9     		cbnz	r0, .L58
 411:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   {
 412:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     pInformation->Ctrl_Info.Usb_wLength = pDesc->Descriptor_Size - wOffset;
 515              		.loc 1 412 0
 516 000c A388     		ldrh	r3, [r4, #4]
 517 000e 5B1A     		subs	r3, r3, r1
 518 0010 1382     		strh	r3, [r2, #16]	@ movhi
 519 0012 01E0     		b	.L59
 520              	.L58:
 413:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     return 0;
 414:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   }
 415:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 416:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   return pDesc->Descriptor + wOffset;
 521              		.loc 1 416 0
 522 0014 2368     		ldr	r3, [r4, #0]
 523 0016 5818     		adds	r0, r3, r1
 524              	.LVL37:
 525              	.L59:
 526              	.LVL38:
 417:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
 527              		.loc 1 417 0
 528 0018 10BD     		pop	{r4, pc}
 529              	.L62:
 530 001a C046     		.align	2
 531              	.L61:
 532 001c 00000000 		.word	pInformation
 533              	.LFE34:
 535              		.section	.text.SetDeviceAddress,"ax",%progbits
 536              		.align	2
 537              		.global	SetDeviceAddress
 538              		.thumb
 539              		.thumb_func
 541              	SetDeviceAddress:
 542              	.LFB43:
 418:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 419:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*******************************************************************************
 420:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Function Name  : DataStageOut.
 421:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description    : Data stage of a Control Write Transfer.
 422:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Input          : None.
 423:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Output         : None.
 424:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return         : None.
 425:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *******************************************************************************/
 426:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** void DataStageOut(void)
 427:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
 428:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   ENDPOINT_INFO *pEPinfo = &pInformation->Ctrl_Info;
 429:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   uint32_t save_rLength;
 430:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 431:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   save_rLength = pEPinfo->Usb_rLength;
 432:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 433:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   if (pEPinfo->CopyData && save_rLength)
 434:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   {
 435:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     uint8_t *Buffer;
 436:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     uint32_t Length;
 437:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 438:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     Length = pEPinfo->PacketSize;
 439:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     if (Length > save_rLength)
 440:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     {
 441:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       Length = save_rLength;
 442:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     }
 443:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 444:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     Buffer = (*pEPinfo->CopyData)(Length);
 445:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     pEPinfo->Usb_rLength -= Length;
 446:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     pEPinfo->Usb_rOffset += Length;
 447:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 448:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     PMAToUserBufferCopy(Buffer, GetEPRxAddr(ENDP0), Length);
 449:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   }
 450:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 451:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   if (pEPinfo->Usb_rLength != 0)
 452:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   {
 453:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     vSetEPRxStatus(EP_RX_VALID);/* re-enable for next data reception */
 454:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     SetEPTxCount(ENDP0, 0);
 455:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     vSetEPTxStatus(EP_TX_VALID);/* Expect the host to abort the data OUT stage */
 456:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   }
 457:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   /* Set the next State*/
 458:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   if (pEPinfo->Usb_rLength >= pEPinfo->PacketSize)
 459:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   {
 460:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     pInformation->ControlState = OUT_DATA;
 461:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   }
 462:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   else
 463:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   {
 464:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     if (pEPinfo->Usb_rLength > 0)
 465:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     {
 466:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       pInformation->ControlState = LAST_OUT_DATA;
 467:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     }
 468:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     else if (pEPinfo->Usb_rLength == 0)
 469:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     {
 470:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       pInformation->ControlState = WAIT_STATUS_IN;
 471:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       USB_StatusIn();
 472:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     }
 473:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   }
 474:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** }
 475:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 476:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** /*******************************************************************************
 477:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Function Name  : DataStageIn.
 478:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Description    : Data stage of a Control Read Transfer.
 479:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Input          : None.
 480:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Output         : None.
 481:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** * Return         : None.
 482:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** *******************************************************************************/
 483:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** void DataStageIn(void)
 484:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** {
 485:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   ENDPOINT_INFO *pEPinfo = &pInformation->Ctrl_Info;
 486:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   uint32_t save_wLength = pEPinfo->Usb_wLength;
 487:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   uint32_t ControlState = pInformation->ControlState;
 488:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 489:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   uint8_t *DataBuffer;
 490:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   uint32_t Length;
 491:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 492:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   if ((save_wLength == 0) && (ControlState == LAST_IN_DATA))
 493:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   {
 494:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     if(Data_Mul_MaxPacketSize == TRUE)
 495:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     {
 496:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       /* No more data to send and empty packet */
 497:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       Send0LengthData();
 498:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       ControlState = LAST_IN_DATA;
 499:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       Data_Mul_MaxPacketSize = FALSE;
 500:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     }
 501:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     else 
 502:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     {
 503:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       /* No more data to send so STALL the TX Status*/
 504:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       ControlState = WAIT_STATUS_OUT;
 505:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****       vSetEPTxStatus(EP_TX_STALL);
 506:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     }
 507:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     
 508:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     goto Expect_Status_Out;
 509:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   }
 510:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 511:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   Length = pEPinfo->PacketSize;
 512:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   ControlState = (save_wLength <= Length) ? LAST_IN_DATA : IN_DATA;
 513:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 514:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   if (Length > save_wLength)
 515:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   {
 516:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****     Length = save_wLength;
 517:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   }
 518:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 519:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   DataBuffer = (*pEPinfo->CopyData)(Length);
 520:lib/STM32_USB-FS-Device_Driver/src/usb_core.c **** 
 521:lib/STM32_USB-FS-Device_Driver/src/usb_core.c ****   UserToPMABufferCopy(DataBuffer, GetEPTxAddr(ENDP0), Length);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -