📄 cdc_enumerate.lst
字号:
554 r r3, [r4, #52]
555 01a4 201C .loc 1 420 0
556 01a6 FFF7FEFF mov r3, #134
557 lsl r3, r3, #8
558 str r3, [r4, #56]
418:cdc_enumerate.c **** pUDP->UDP_GLBSTATE = (wValue) ? AT91C_UDP_CONFG : AT91C_UDP_FADDEN;
559 r3, #135
560 01aa 4046 lsl r3, r3, #8
561 01ac 0028 .L97:
562 01ae 00D1 .loc 1 421 0
563 01b0 B5E0 str r3, [r4, #60]
564 b .L55
565 01b2 0223 .LVL43:
566 01b4 6360 .L75:
419:cdc_enumerate.c **** pUDP->UDP_CSR[1] = (wValue) ? (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_BULK_OUT) : 0;
567 424 0
568 01b6 8223 add r1, r5, #4
569 01b8 1B02 .LVL44:
570 01ba 6363 mov r0, r4
420:cdc_enumerate.c **** pUDP->UDP_CSR[2] = (wValue) ? (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_BULK_IN) : 0;
571 r2, #1
572 01bc 8623 bl AT91F_USB_SendData
573 01be 1B02 .LVL45:
574 01c0 A363 b .L55
575 01c2 8723 .LVL46:
576 01c4 1B02 .L64:
577 .loc 1 427 0
421:cdc_enumerate.c **** pUDP->UDP_CSR[3] = (wValue) ? (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_INT_IN) : 0;
578 , sp
579 01c6 E363 .LVL47:
580 01c8 AFE0 add r1, r1, #2
581 mov r3, #0
582 strh r3, [r1]
422:cdc_enumerate.c **** break;
423:cdc_enumerate.c **** case STD_GET_CONFIGURATION:
424:cdc_enumerate.c **** AT91F_USB_SendData(pUDP, (char *) &(pCdc->currentConfiguration), sizeof(pCdc->currentConfiguratio
583 8:
584 01ca 291D .loc 1 428 0
585 mov r0, r4
586 01cc 201C mov r2, #2
587 01ce 0122 bl AT91F_USB_SendData
588 01d0 FFF7FEFF .LVL49:
589 b .L55
590 01d4 A9E0 .LVL50:
591 .L65:
592 .loc 1 431 0
425:cdc_enumerate.c **** break;
426:cdc_enumerate.c **** case STD_GET_STATUS_ZERO:
427:cdc_enumerate.c **** wStatus = 0;
593 p
594 01d6 6946 .LVL51:
595 add r1, r1, #2
596 01d8 0231 mov r3, #0
597 01da 0023 strh r3, [r1]
598 01dc 0B80 .LVL52:
599 .loc 1 432 0
428:cdc_enumerate.c **** AT91F_USB_SendData(pUDP, (char *) &wStatus, sizeof(wStatus));
600 , r4
601 01de 201C mov r2, #2
602 01e0 0222 bl AT91F_USB_SendData
603 01e2 FFF7FEFF .LVL53:
604 b .L55
605 01e6 A0E0 .LVL54:
606 .L66:
607 .loc 1 435 0
429:cdc_enumerate.c **** break;
430:cdc_enumerate.c **** case STD_GET_STATUS_INTERFACE:
431:cdc_enumerate.c **** wStatus = 0;
608 sp
609 01e8 6946 .LVL55:
610 add r1, r1, #2
611 01ea 0231 mov r3, #0
612 01ec 0023 strh r3, [r1]
613 01ee 0B80 .LVL56:
614 .loc 1 436 0
432:cdc_enumerate.c **** AT91F_USB_SendData(pUDP, (char *) &wStatus, sizeof(wStatus));
615 , #15
616 01f0 201C mov r2, ip
617 01f2 0222 .LVL57:
618 01f4 FFF7FEFF and r2, r2, r3
619 .loc 1 437 0
620 01f8 97E0 ldr r3, [r4, #4]
621 lsl r0, r3, #30
622 bpl .L98
433:cdc_enumerate.c **** break;
434:cdc_enumerate.c **** case STD_GET_STATUS_ENDPOINT:
435:cdc_enumerate.c **** wStatus = 0;
623 #3
624 01fa 6946 bhi .L98
625 .loc 1 438 0
626 01fc 0231 lsl r3, r2, #2
627 01fe 0023 add r3, r3, r4
628 0200 0B80 ldr r2, [r3, #48]
629 .LVL58:
436:cdc_enumerate.c **** wIndex &= 0x0F;
630 , r2, #15
631 0202 0F23 mov r3, #1
632 0204 6246 bic r3, r3, r2
633 strh r3, [r1]
634 0206 1A40 .loc 1 439 0
437:cdc_enumerate.c **** if ((pUDP->UDP_GLBSTATE & AT91C_UDP_CONFG) && (wIndex <= 3)) {
635 r0, r4
636 0208 6368 mov r2, #2
637 020a 9807 bl AT91F_USB_SendData
638 020c 0DD5 .LVL59:
639 020e 032A b .L55
640 0210 0BD8 .LVL60:
438:cdc_enumerate.c **** wStatus = (pUDP->UDP_CSR[wIndex] & AT91C_UDP_EPEDS) ? 0 : 1;
641 .loc 1 441 0
642 0212 9300 ldr r3, [r4, #4]
643 0214 1B19 mov r0, #1
644 0216 1A6B tst r3, r0
645 beq .L101
646 0218 D20B cmp r2, #0
647 021a 0123 bne .L101
648 021c 9343 .loc 1 442 0
649 021e 0B80 ldr r3, [r4, #48]
439:cdc_enumerate.c **** AT91F_USB_SendData(pUDP, (char *) &wStatus, sizeof(wStatus));
650 sp
651 0220 201C add r1, r1, #2
652 0222 0222 lsr r3, r3, #15
653 0224 FFF7FEFF bic r0, r0, r3
654 strh r0, [r1]
655 0228 7FE0 .loc 1 443 0
656 mov r0, r4
657 mov r2, #2
440:cdc_enumerate.c **** }
441:cdc_enumerate.c **** else if ((pUDP->UDP_GLBSTATE & AT91C_UDP_FADDEN) && (wIndex == 0)) {
658 bl AT91F_USB_SendData
659 022a 6368 .LVL62:
660 022c 0120 b .L55
661 022e 0342 .LVL63:
662 0230 0CD0 .L101:
663 0232 002A .loc 1 446 0
664 0234 0AD1 mov r0, r4
442:cdc_enumerate.c **** wStatus = (pUDP->UDP_CSR[wIndex] & AT91C_UDP_EPEDS) ? 0 : 1;
665 1F_USB_SendStall
666 0236 236B .LVL64:
667 0238 6946 b .L55
668 023a 0231 .LVL65:
669 023c DB0B .L70:
670 023e 9843 .loc 1 449 0
671 0240 0880 mov r0, r4
443:cdc_enumerate.c **** AT91F_USB_SendData(pUDP, (char *) &wStatus, sizeof(wStatus));
672 1F_USB_SendStall
673 0242 201C .LVL66:
674 0244 0222 b .L55
675 .LVL67:
676 0246 FFF7FEFF .L71:
677 .loc 1 452 0
678 024a 6EE0 mov r0, r4
679 bl AT91F_USB_SendZlp
680 .LVL68:
444:cdc_enumerate.c **** }
445:cdc_enumerate.c **** else
446:cdc_enumerate.c **** AT91F_USB_SendStall(pUDP);
681 LVL69:
682 024c 201C .L72:
683 024e FFF7FEFF .loc 1 456 0
684 mov r2, r8
685 0252 6AE0 cmp r2, #0
686 bne .L104
687 .loc 1 455 0
447:cdc_enumerate.c **** break;
448:cdc_enumerate.c **** case STD_SET_FEATURE_ZERO:
449:cdc_enumerate.c **** AT91F_USB_SendStall(pUDP);
688 , #15
689 0254 201C .loc 1 456 0
690 0256 FFF7FEFF mov r0, ip
691 and r3, r0
692 025a 66E0 beq .L104
693 .LVL70:
694 cmp r3, #3
450:cdc_enumerate.c **** break;
451:cdc_enumerate.c **** case STD_SET_FEATURE_INTERFACE:
452:cdc_enumerate.c **** AT91F_USB_SendZlp(pUDP);
695 104
696 025c 201C .loc 1 457 0
697 025e FFF7FEFF lsl r3, r3, #2
698 .LVL71:
699 0262 62E0 add r3, r3, r4
700 str r2, [r3, #48]
701 .loc 1 458 0
453:cdc_enumerate.c **** break;
454:cdc_enumerate.c **** case STD_SET_FEATURE_ENDPOINT:
455:cdc_enumerate.c **** wIndex &= 0x0F;
456:cdc_enumerate.c **** if ((wValue == 0) && wIndex && (wIndex <= 3)) {
702 , r4
703 0264 4246 bl AT91F_USB_SendZlp
704 0266 002A .LVL72:
705 0268 0CD1 b .L55
706 .LVL73:
707 026a 0F23 .L104:
708 .loc 1 461 0
709 026c 6046 mov r0, r4
710 026e 0340 bl AT91F_USB_SendStall
711 0270 08D0 .LVL74:
712 b .L55
713 0272 032B .LVL75:
714 0274 06D8 .L67:
457:cdc_enumerate.c **** pUDP->UDP_CSR[wIndex] = 0;
715
716 0276 9B00 mov r0, r4
717 bl AT91F_USB_SendStall
718 0278 1B19 .LVL76:
719 027a 1A63 b .L55
458:cdc_enumerate.c **** AT91F_USB_SendZlp(pUDP);
720 77:
721 027c 201C .L68:
722 027e FFF7FEFF .loc 1 467 0
723 mov r0, r4
724 0282 52E0 bl AT91F_USB_SendZlp
725 .LVL78:
726 b .L55
459:cdc_enumerate.c **** }
460:cdc_enumerate.c **** else
461:cdc_enumerate.c **** AT91F_USB_SendStall(pUDP);
727
728 0284 201C .L69:
729 0286 FFF7FEFF .loc 1 471 0
730 mov r2, r8
731 028a 4EE0 cmp r2, #0
732 bne .L108
733 .loc 1 470 0
462:cdc_enumerate.c **** break;
463:cdc_enumerate.c **** case STD_CLEAR_FEATURE_ZERO:
464:cdc_enumerate.c **** AT91F_USB_SendStall(pUDP);
734 3, #15
735 028c 201C .loc 1 471 0
736 028e FFF7FEFF mov r0, ip
737 and r3, r0
738 0292 4AE0 beq .L108
739 .LVL80:
740 cmp r3, #3
465:cdc_enumerate.c **** break;
466:cdc_enumerate.c **** case STD_CLEAR_FEATURE_INTERFACE:
467:cdc_enumerate.c **** AT91F_USB_SendZlp(pUDP);
741 108
742 0294 201C .loc 1 472 0
743 0296 FFF7FEFF cmp r3, #1
744 bne .L112
745 029a 46E0 .loc 1 473 0
746 mov r3, #130
747 .LVL81:
468:cdc_enumerate.c **** break;
469:cdc_enumerate.c **** case STD_CLEAR_FEATURE_ENDPOINT:
470:cdc_enumerate.c **** wIndex &= 0x0F;
471:cdc_enumerate.c **** if ((wValue == 0) && wIndex && (wIndex <= 3)) {
748 , r3, #8
749 029c 4246 str r3, [r4, #52]
750 029e 002A b .L114
751 02a0 1AD1 .LVL82:
752 .L112:
753 02a2 0F23 .loc 1 474 0
754 cmp r3, #2
755 02a4 6046 bne .L115
756 02a6 0340 .loc 1 475 0
757 02a8 16D0 mov r3, #134
758 .LVL83:
759 02aa 032B lsl r3, r3, #8
760 02ac 14D8 str r3, [r4, #56]
472:cdc_enumerate.c **** if (wIndex == 1)
761 84:
762 02ae 012B .L115:
763 02b0 03D1 .loc 1 476 0
473:cdc_enumerate.c **** pUDP->UDP_CSR[1] = (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_BULK_OUT);
764 p r3, #3
765 02b2 8223 bne .L114
766 .loc 1 477 0
767 02b4 1B02 mov r3, #133
768 02b6 6363 .LVL85:
769 02b8 0AE0 lsl r3, r3, #8
770 str r3, [r4, #60]
771 .LVL86:
474:cdc_enumerate.c **** else if (wIndex == 2)
772 .loc 1 478 0
773 02ba 022B mov r0, r4
774 02bc 03D1 bl AT91F_USB_SendZlp
475:cdc_enumerate.c **** pUDP->UDP_CSR[2] = (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_BULK_IN);
775 L87:
776 02be 8623 b .L55
777 .LVL88:
778 02c0 1B02 .L108:
779 02c2 A363 .loc 1 481 0
780 02c4 04E0 mov r0, r4
781 bl AT91F_USB_SendStall
782 .LVL89:
476:cdc_enumerate.c **** else if (wIndex == 3)
783 .LVL90:
784 02c6 032B .L123:
785 02c8 02D1 .loc 1 486 0
477:cdc_enumerate.c **** pUDP->UDP_CSR[3] = (AT91C_UDP_EPEDS | AT91C_UDP_EPTYPE_ISO_IN);
786 r r3, [r4, #48]
787 02ca 8523 mov r2, #2
788 tst r3, r2
789 02cc 1B02 beq .L123
790 02ce E363 .loc 1 487 0
791 ldr r3, [r4, #48]
792 bic r3, r3, r2
478:cdc_enumerate.c **** AT91F_USB_SendZlp(pUDP);
793 , [r4, #48]
794 02d0 201C .loc 1 488 0
795 02d2 FFF7FEFF mov r0, r4
796 bl AT91F_USB_SendZlp
797 02d6 28E0 .LVL91:
798 b .L55
799 .LVL92:
479:cdc_enumerate.c **** }
480:cdc_enumerate.c **** else
481:cdc_enumerate.c **** AT91F_USB_SendStall(pUDP);
800 .loc 1 491 0
801 02d8 201C cmp r7, #8
802 02da FFF7FEFF bls .L119
803 mov r2, #8
804 02de 24E0 b .L121
805 .L119:
806 mov r2, r7
482:cdc_enumerate.c **** break;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -