📄 f3xx_usb0_standard_requests.lst
字号:
483 //
484 // Standard request that should not change in custom HID designs.
485 //
486 //-----------------------------------------------------------------------------
487 void Set_Configuration (void) // This routine allows host to change
488 { // current device configuration value
489 1
490 1 // Device must be addressed before configured
491 1 if ((USB0_STATE == DEV_DEFAULT) ||
492 1 // and request recipient must be the device
493 1 (SETUP.bmRequestType != IN_DEVICE) ||
494 1 // the index and length words must be zero
495 1 SETUP.wIndex.c[MSB] || SETUP.wIndex.c[LSB]||
496 1 SETUP.wLength.c[MSB] || SETUP.wLength.c[LSB] ||
497 1 SETUP.wValue.c[MSB] || (SETUP.wValue.c[LSB] > 1))
498 1 // This software only supports config = 0,1
499 1 {
500 2 Force_Stall (); // Send stall if SETUP data is invalid
501 2 }
502 1
503 1 else
504 1 {
505 2 if (SETUP.wValue.c[LSB] > 0) // Any positive configuration request
506 2 { // results in configuration being set
507 3 // to 1
508 3 USB0_STATE = DEV_CONFIGURED;
509 3 EP_STATUS[1] = EP_IDLE; // Set endpoint status to idle (enabled)
510 3
511 3 POLL_WRITE_BYTE (INDEX, 1); // Change index to endpoint 1
*** ERROR C202 IN LINE 511 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 511 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 511 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
C51 COMPILER V7.50 F3XX_USB0_STANDARD_REQUESTS 06/22/2006 17:45:49 PAGE 10
512 3 // Set DIRSEL to indicate endpoint 1 is IN/OUT
513 3 POLL_WRITE_BYTE (EINCSR2, rbInSPLIT);
*** ERROR C202 IN LINE 513 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 513 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 513 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
514 3 POLL_WRITE_BYTE (INDEX, 0); // Set index back to endpoint 0
*** ERROR C202 IN LINE 514 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 514 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 514 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
515 3
516 3 Handle_In1();
517 3 }
518 2 else
519 2 {
520 3 USB0_STATE = DEV_ADDRESS; // Unconfigures device by setting state
521 3 EP_STATUS[1] = EP_HALT; // to address, and changing endpoint
522 3 // 1 and 2
523 3 }
524 2 }
525 1 if (EP_STATUS[0] != EP_STALL)
526 1 {
527 2 POLL_WRITE_BYTE (E0CSR, (rbSOPRDY | rbDATAEND));
*** ERROR C202 IN LINE 527 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 527 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 527 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
528 2 // Indicate SETUP packet has been
529 2 // serviced
530 2 }
531 1 }
532
533 //-----------------------------------------------------------------------------
534 // Get_Interface
535 //-----------------------------------------------------------------------------
536 //
537 // Return Value - None
538 // Parameters - Non
539 //
540 // Standard request that should not change in custom HID designs.
541 //
542 //-----------------------------------------------------------------------------
543 void Get_Interface (void) // This routine returns 0x00, since
544 { // only one interface is supported by
545 1 // this firmware
546 1
547 1 // If device is not configured
548 1 if ((USB0_STATE != DEV_CONFIGURED) ||
549 1 // or recipient is not an interface
550 1 (SETUP.bmRequestType != OUT_INTERFACE) ||
551 1 // or non-zero value or index fields
552 1 SETUP.wValue.c[MSB] ||SETUP.wValue.c[LSB] ||
553 1 // or data length not equal to one
554 1 SETUP.wIndex.c[MSB] ||SETUP.wIndex.c[LSB] ||
555 1 SETUP.wLength.c[MSB] ||(SETUP.wLength.c[LSB] != 1))
556 1 {
557 2 Force_Stall (); // Then return stall due to invalid
558 2 // request
559 2 }
560 1
561 1 else
562 1 {
563 2 // Otherwise, return 0x00 to host
564 2 DATAPTR = (unsigned char*)&ZERO_PACKET;
C51 COMPILER V7.50 F3XX_USB0_STANDARD_REQUESTS 06/22/2006 17:45:49 PAGE 11
565 2 DATASIZE = 1;
566 2 }
567 1 if (EP_STATUS[0] != EP_STALL)
568 1 {
569 2 // Set Serviced SETUP packet, put endpoint in transmit mode and reset
570 2 // Data sent counter
571 2 POLL_WRITE_BYTE (E0CSR, rbSOPRDY);
*** ERROR C202 IN LINE 571 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 571 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 571 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
572 2 EP_STATUS[0] = EP_TX;
573 2 DATASENT = 0;
574 2 }
575 1 }
576
577 //-----------------------------------------------------------------------------
578 // Set_Interface
579 //-----------------------------------------------------------------------------
580 //
581 // Return Value - None
582 // Parameters - None
583 //
584 // Standard request that should not change in custom HID designs.
585 //
586 //-----------------------------------------------------------------------------
587 void Set_Interface (void)
588 {
589 1 // Make sure request is directed at interface
590 1 if ((SETUP.bmRequestType != IN_INTERFACE) ||
591 1 // and all other packet values are set to zero
592 1 SETUP.wLength.c[MSB] ||SETUP.wLength.c[LSB]||
593 1 SETUP.wValue.c[MSB] ||SETUP.wValue.c[LSB] ||
594 1 SETUP.wIndex.c[MSB] ||SETUP.wIndex.c[LSB])
595 1 {
596 2 Force_Stall (); // Othewise send a stall to host
597 2 }
598 1 if (EP_STATUS[0] != EP_STALL)
599 1 {
600 2 POLL_WRITE_BYTE (E0CSR, (rbSOPRDY | rbDATAEND));
*** ERROR C202 IN LINE 600 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 600 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 600 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
601 2 // Indicate SETUP packet has been
602 2 // serviced
603 2 }
604 1 }
605
606 //-----------------------------------------------------------------------------
607 // Get_Idle
608 //-----------------------------------------------------------------------------
609 // Not supported.
610 //
611 //-----------------------------------------------------------------------------
612 void Get_Idle(void) {
613 1 }
614
615 //-----------------------------------------------------------------------------
616
617 //-----------------------------------------------------------------------------
618 // Get_Protocol
619 //-----------------------------------------------------------------------------
620 // Not supported.
C51 COMPILER V7.50 F3XX_USB0_STANDARD_REQUESTS 06/22/2006 17:45:49 PAGE 12
621 //
622 //-----------------------------------------------------------------------------
623 void Get_Protocol(void) { }
624
625 //-----------------------------------------------------------------------------
626 // Set_Protocol
627 //-----------------------------------------------------------------------------
628 // Not supported.
629 //
630 //-----------------------------------------------------------------------------
631 void Set_Protocol (void) { }
632
633
634
635 //-----------------------------------------------------------------------------
636 // Set_Idle()
637 //-----------------------------------------------------------------------------
638 //
639 // Return Value - None
640 // Parameters - None
641 //
642 // Description: Sets the idle feature on interrupt in endpoint.
643 //-----------------------------------------------------------------------------
644 void Set_Idle (void)
645 {
646 1
647 1 if (EP_STATUS[0] != EP_STALL)
648 1 {
649 2 // Set serviced SETUP Packet
650 2 POLL_WRITE_BYTE (E0CSR, (rbSOPRDY | rbDATAEND));
*** ERROR C202 IN LINE 650 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 650 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 650 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
651 2 }
652 1
653 1 }
654
655
656
657 //-----------------------------------------------------------------------------
658 // Get_Report()
659 //-----------------------------------------------------------------------------
660 //
661 // Return Value - None
662 // Parameters - None
663 //
664 // Description: Sends a given report type to the host.
665 //
666 //-----------------------------------------------------------------------------
667 void Get_Report (void)
668 {
669 1 // call appropriate handler to prepare buffer
670 1 ReportHandler_IN_ISR(SETUP.wValue.c[LSB]);
671 1 // set DATAPTR to buffer used inside Control Endpoint
672 1 DATAPTR = IN_BUFFER.Ptr;
673 1 DATASIZE = IN_BUFFER.Length;
674 1
675 1 if (EP_STATUS[0] != EP_STALL)
676 1 {
677 2 // Set serviced SETUP Packet
678 2 POLL_WRITE_BYTE (E0CSR, rbSOPRDY);
*** ERROR C202 IN LINE 678 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
C51 COMPILER V7.50 F3XX_USB0_STANDARD_REQUESTS 06/22/2006 17:45:49 PAGE 13
*** ERROR C202 IN LINE 678 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 678 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
679 2 EP_STATUS[0] = EP_TX; // Endpoint 0 in transmit mode
680 2 DATASENT = 0; // Reset DATASENT counter
681 2 }
682 1 }
683
684
685
686 //-----------------------------------------------------------------------------
687 // Set_Report()
688 //-----------------------------------------------------------------------------
689 //
690 // Return Value - None
691 // Parameters - None
692 //
693 // Description: Receives a report sent from the host.
694 //
695 //-----------------------------------------------------------------------------
696 void Set_Report (void)
697 {
698 1 // prepare buffer for OUT packet
699 1 Setup_OUT_BUFFER ();
700 1
701 1 // set DATAPTR to buffer
702 1 DATAPTR = OUT_BUFFER.Ptr;
703 1 DATASIZE = SETUP.wLength.i;
704 1
705 1 if (EP_STATUS[0] != EP_STALL)
706 1 {
707 2 // Set serviced SETUP Packet
708 2 POLL_WRITE_BYTE (E0CSR, rbSOPRDY);
*** ERROR C202 IN LINE 708 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 708 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0ADR': undefined identifier
*** ERROR C202 IN LINE 708 OF F3XX_USB0_STANDARD_REQUESTS.C: 'USB0DAT': undefined identifier
709 2 EP_STATUS[0] = EP_RX; // Endpoint 0 in transmit mode
710 2 DATASENT = 0; // Reset DATASENT counter
711 2 }
712 1 }
713
714
715
C51 COMPILATION COMPLETE. 1 WARNING(S), 63 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -