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

📄 cdc_enumerate.lst

📁 高性能USB转串口(可高达10Mbps)完整的源代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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 + -