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

📄 usb.lst

📁 avr与PC机之间的通信
💻 LST
📖 第 1 页 / 共 5 页
字号:
 1505               	.LM257:
 1506               	/* #APP */
 1507 06a2 7894      		sei
 1508               	.LM258:
 1509               	/* #NOAPP */
 1510 06a4 0E94 0000 		call init_unconfig
 1511 06a8 0895      		ret
 1512               	.L118:
 1513               	.LM259:
 1514 06aa 0197      		sbiw r24,1
 1515 06ac 89F4      		brne .L120
 1516               	.LM260:
 1517 06ae 60E0      		ldi r22,lo8(0)
 1518 06b0 80E0      		ldi r24,lo8(0)
 1519 06b2 90E0      		ldi r25,hi8(0)
 1520 06b4 0E94 0000 		call single_transmit
 1521               	.LM261:
 1522 06b8 0E94 0000 		call init_unconfig
 1523               	.LM262:
 1524 06bc 0E94 0000 		call init_config
 1525               	.LM263:
 1526               	/* #APP */
 1527 06c0 F894      		cli
 1528               	.LM264:
 1529               	/* #NOAPP */
 1530 06c2 8091 0000 		lds r24,bEPPflags
 1531 06c6 8068      		ori r24,lo8(-128)
 1532 06c8 8093 0000 		sts bEPPflags,r24
 1533               	.LM265:
 1534               	/* #APP */
 1535 06cc 7894      		sei
 1536               	/* #NOAPP */
 1537 06ce 0895      		ret
 1538               	.L120:
 1539               	.LM266:
 1540 06d0 0E94 0000 		call stall_ep0
 1541 06d4 0895      		ret
 1542               	/* epilogue: frame size=0 */
 1543 06d6 0895      		ret
 1544               	/* epilogue end (size=1) */
 1545               	/* function set_configuration size 47 (46) */
 1546               	.LFE36:
 1548               	.global	get_interface
 1550               	get_interface:
 1551               	.LFB37:
 1552               	.LM267:
 1553               	/* prologue: frame size=1 */
 1554 06d8 CF93      		push r28
 1555 06da DF93      		push r29
 1556 06dc CDB7      		in r28,__SP_L__
 1557 06de DEB7      		in r29,__SP_H__
 1558 06e0 2197      		sbiw r28,1
 1559 06e2 0FB6      		in __tmp_reg__,__SREG__
 1560 06e4 F894      		cli
 1561 06e6 DEBF      		out __SP_H__,r29
 1562 06e8 0FBE      		out __SREG__,__tmp_reg__
 1563 06ea CDBF      		out __SP_L__,r28
 1564               	/* prologue end (size=10) */
 1565               	.LM268:
 1566 06ec 1982      		std Y+1,__zero_reg__
 1567               	.LM269:
 1568 06ee 61E0      		ldi r22,lo8(1)
 1569 06f0 CE01      		movw r24,r28
 1570 06f2 0196      		adiw r24,1
 1571 06f4 0E94 0000 		call single_transmit
 1572               	/* epilogue: frame size=1 */
 1573 06f8 2196      		adiw r28,1
 1574 06fa 0FB6      		in __tmp_reg__,__SREG__
 1575 06fc F894      		cli
 1576 06fe DEBF      		out __SP_H__,r29
 1577 0700 0FBE      		out __SREG__,__tmp_reg__
 1578 0702 CDBF      		out __SP_L__,r28
 1579 0704 DF91      		pop r29
 1580 0706 CF91      		pop r28
 1581 0708 0895      		ret
 1582               	/* epilogue end (size=9) */
 1583               	/* function get_interface size 25 (6) */
 1584               	.LFE37:
 1586               	.global	set_interface
 1588               	set_interface:
 1589               	.LFB38:
 1590               	.LM270:
 1591               	/* prologue: frame size=0 */
 1592               	/* prologue end (size=0) */
 1593               	.LM271:
 1594 070a 8091 0000 		lds r24,ControlData+2
 1595 070e 9091 0000 		lds r25,(ControlData+2)+1
 1596 0712 892B      		or r24,r25
 1597 0714 51F4      		brne .L124
 1598               	.LM272:
 1599 0716 8091 0000 		lds r24,ControlData+4
 1600 071a 9091 0000 		lds r25,(ControlData+4)+1
 1601 071e 0097      		sbiw r24,0
 1602 0720 21F4      		brne .L124
 1603               	.LM273:
 1604 0722 60E0      		ldi r22,lo8(0)
 1605 0724 0E94 0000 		call single_transmit
 1606 0728 0895      		ret
 1607               	.L124:
 1608               	.LM274:
 1609 072a 0E94 0000 		call stall_ep0
 1610 072e 0895      		ret
 1611               	/* epilogue: frame size=0 */
 1612 0730 0895      		ret
 1613               	/* epilogue end (size=1) */
 1614               	/* function set_interface size 20 (19) */
 1615               	.LFE38:
 1617               	.global	control_handler
 1619               	control_handler:
 1620               	.LFB39:
 1621               	.LM275:
 1622               	/* prologue: frame size=0 */
 1623               	/* prologue end (size=0) */
 1624               	.LM276:
 1625 0732 8091 0000 		lds r24,ControlData
 1626 0736 8076      		andi r24,lo8(96)
 1627               	.LM277:
 1628 0738 E091 0000 		lds r30,ControlData+1
 1629 073c EF70      		andi r30,lo8(15)
 1630               	.LM278:
 1631 073e 8823      		tst r24
 1632 0740 51F4      		brne .L127
 1633               	.LM279:
 1634 0742 FF27      		clr r31
 1635 0744 EE0F      		add r30,r30
 1636 0746 FF1F      		adc r31,r31
 1637 0748 E050      		subi r30,lo8(-(StandardDeviceRequest))
 1638 074a F040      		sbci r31,hi8(-(StandardDeviceRequest))
 1639 074c 0190      		ld __tmp_reg__,Z+
 1640 074e F081      		ld r31,Z
 1641 0750 E02D      		mov r30,__tmp_reg__
 1642 0752 0995      		icall
 1643 0754 0895      		ret
 1644               	.L127:
 1645               	.LM280:
 1646 0756 0E94 0000 		call stall_ep0
 1647 075a 0895      		ret
 1648               	/* epilogue: frame size=0 */
 1649 075c 0895      		ret
 1650               	/* epilogue end (size=1) */
 1651               	/* function control_handler size 22 (21) */
 1652               	.LFE39:
 1654               	.global	disconnect_USB
 1656               	disconnect_USB:
 1657               	.LFB40:
 1658               	.LM281:
 1659               	/* prologue: frame size=0 */
 1660               	/* prologue end (size=0) */
 1661               	.LM282:
 1662 075e 63E4      		ldi r22,lo8(67)
 1663 0760 82E0      		ldi r24,lo8(2)
 1664 0762 0E94 0000 		call D12_SetMode
 1665               	/* epilogue: frame size=0 */
 1666 0766 0895      		ret
 1667               	/* epilogue end (size=1) */
 1668               	/* function disconnect_USB size 5 (4) */
 1669               	.LFE40:
 1671               	.global	connect_USB
 1673               	connect_USB:
 1674               	.LFB41:
 1675               	.LM283:
 1676               	/* prologue: frame size=0 */
 1677               	/* prologue end (size=0) */
 1678               	.LM284:
 1679 0768 80EC      		ldi r24,lo8(-64)
 1680 076a 0E94 0000 		call D12_SetDMA
 1681               	.LM285:
 1682 076e 63E4      		ldi r22,lo8(67)
 1683 0770 82E1      		ldi r24,lo8(18)
 1684 0772 0E94 0000 		call D12_SetMode
 1685               	/* epilogue: frame size=0 */
 1686 0776 0895      		ret
 1687               	/* epilogue end (size=1) */
 1688               	/* function connect_USB size 8 (7) */
 1689               	.LFE41:
 1691               	.global	reconnect_USB
 1693               	reconnect_USB:
 1694               	.LFB42:
 1695               	.LM286:
 1696               	/* prologue: frame size=0 */
 1697               	/* prologue end (size=0) */
 1698               	.LM287:
 1699 0778 0E94 0000 		call disconnect_USB
 1700               	.LM288:
 1701 077c 0E94 0000 		call connect_USB
 1702               	/* epilogue: frame size=0 */
 1703 0780 0895      		ret
 1704               	/* epilogue end (size=1) */
 1705               	/* function reconnect_USB size 5 (4) */
 1706               	.LFE42:
 1708               	.global	bus_reset
 1710               	bus_reset:
 1711               	.LFB43:
 1712               	.LM289:
 1713               	/* prologue: frame size=0 */
 1714               	/* prologue end (size=0) */
 1715               	/* epilogue: frame size=0 */
 1716 0782 0895      		ret
 1717               	/* epilogue end (size=1) */
 1718               	/* function bus_reset size 1 (0) */
 1719               	.LFE43:
 1721               	.global	ep0_rxdone
 1723               	ep0_rxdone:
 1724               	.LFB44:
 1725               	.LM290:
 1726               	/* prologue: frame size=0 */
 1727               	/* prologue end (size=0) */
 1728               	.LM291:
 1729 0784 80E0      		ldi r24,lo8(0)
 1730 0786 0E94 0000 		call D12_ReadLastTransactionStatus
 1731               	.LM292:
 1732 078a 85FF      		sbrs r24,5
 1733 078c 4FC0      		rjmp .L134
 1734               	.LM293:
 1735 078e 1092 0000 		sts (ControlData+8)+1,__zero_reg__
 1736 0792 1092 0000 		sts ControlData+8,__zero_reg__
 1737               	.LM294:
 1738 0796 1092 0000 		sts (ControlData+10)+1,__zero_reg__
 1739 079a 1092 0000 		sts ControlData+10,__zero_reg__
 1740               	.LM295:
 1741 079e 40E0      		ldi r20,lo8(ControlData)
 1742 07a0 50E0      		ldi r21,hi8(ControlData)
 1743 07a2 68E0      		ldi r22,lo8(8)
 1744 07a4 80E0      		ldi r24,lo8(0)
 1745 07a6 0E94 0000 		call D12_ReadEndpoint
 1746 07aa 8830      		cpi r24,lo8(8)
 1747 07ac 59F0      		breq .L135
 1748               	.LM296:
 1749 07ae 61E0      		ldi r22,lo8(1)
 1750 07b0 80E0      		ldi r24,lo8(0)
 1751 07b2 0E94 0000 		call D12_SetEndpointStatusIsr
 1752               	.LM297:
 1753 07b6 61E0      		ldi r22,lo8(1)
 1754 07b8 862F      		mov r24,r22
 1755 07ba 0E94 0000 		call D12_SetEndpointStatusIsr
 1756               	.LM298:
 1757 07be 8091 0000 		lds r24,bEPPflags
 1758 07c2 5BC0      		rjmp .L148
 1759               	.L135:
 1760               	.LM299:
 1761 07c4 80E0      		ldi r24,lo8(0)
 1762 07c6 0E94 0000 		call D12_AcknowledgeEndpoint
 1763               	.LM300:
 1764 07ca 81E0      		ldi r24,lo8(1)
 1765 07cc 0E94 0000 		call D12_AcknowledgeEndpoint
 1766               	.LM301:
 1767 07d0 2091 0000 		lds r18,ControlData+6
 1768 07d4 3091 0000 		lds r19,(ControlData+6)+1
 1769 07d8 3093 0000 		sts (ControlData+8)+1,r19
 1770 07dc 2093 0000 		sts ControlData+8,r18
 1771               	.LM302:
 1772 07e0 1092 0000 		sts (ControlData+10)+1,__zero_reg__
 1773 07e4 1092 0000 		sts ControlData+10,__zero_reg__
 1774               	.LM303:
 1775 07e8 8091 0000 		lds r24,ControlData
 1776 07ec 87FF      		sbrs r24,7
 1777 07ee 07C0      		rjmp .L136
 1778               	.LM304:
 1779 07f0 8091 0000 		lds r24,bEPPflags
 1780               	.LM305:
 1781 07f4 8F7B      		andi r24,lo8(-65)
 1782 07f6 8462      		ori r24,lo8(36)
 1783               	.L147:
 1784 07f8 8093 0000 		sts bEPPflags,r24
 1785 07fc 0895      		ret
 1786               	.L136:
 1787               	.LM306:
 1788 07fe 2115      		cp r18,__zero_reg__
 1789 0800 3105      		cpc r19,__zero_reg__
 1790 0802 C1F1      		breq .L145
 1791 0804 8091 0000 		lds r24,bEPPflags
 1792               	.LM307:
 1793 0808 2930      		cpi r18,9
 1794 080a 3105      		cpc r19,__zero_reg__
 1795 080c 60F0      		brlo .L140
 1796               	.LM308:
 1797 080e 8F79      		andi r24,lo8(-97)
 1798 0810 8093 0000 		sts bEPPflags,r24
 1799               	.LM309:
 1800 0814 61E0      		ldi r22,lo8(1)
 1801 0816 80E0      		ldi r24,lo8(0)
 1802 0818 0E94 0000 		call D12_SetEndpointStatusIsr
 1803               	.LM310:
 1804 081c 61E0      		ldi r22,lo8(1)
 1805 081e 862F      		mov r24,r22
 1806 0820 0E94 0000 		call D12_SetEndpointStatusIsr
 1807 0824 0895      		ret
 1808               	.L140:
 1809               	.LM311:
 1810 0826 8F79      		andi r24,lo8(-97)
 1811 0828 8064      		ori r24,lo8(64)
 1812 082a E6CF      		rjmp .L147
 1813               	.L134:
 1814               	.LM312:
 1815 082c 9091 0000 		lds r25,bEPPflags
 1816 0830 892F      		mov r24,r25
 1817 0832 8076      		andi r24,lo8(96)
 1818 0834 8034      		cpi r24,lo8(64)
 1819 0836 19F5      		brne .L143
 1820               	.LM313:
 1821 0838 8091 0000 		lds r24,ControlData+10
 1822 083c 9091 0000 		lds r25,(ControlData+10)+1
 1823 0840 8050      		subi r24,lo8(-(ControlData+14))
 1824 0842 9040      		sbci r25,hi8(-(ControlData+14))
 1825 0844 AC01      		movw r20,r24
 1826 0846 60E1      		ldi r22,lo8(16)
 1827 0848 80E0      		ldi r24,lo8(0)
 1828 084a 0E94 0000 		call D12_ReadEndpoint
 1829               	.LM314:
 1830 084e 2091 0000 		lds r18,ControlData+10
 1831 0852 3091 0000 		lds r19,(ControlData+10)+1
 1832 0856 280F      		add r18,r24
 1833 0858 311D      		adc r19,__zero_reg__
 1834 085a 3093 0000 		sts (ControlData+10)+1,r19
 1835 085e 2093 0000 		sts ControlData+10,r18
 1836               	.LM315:
 1837 0862 8031      		cpi r24,lo8(16)
 1838 0864 39F4      		brne .L145
 1839 0866 8091 0000 		lds r24,ControlData+8
 1840 086a 9091 0000 		lds r25,(ControlData+8)+1
 1841 086e 2817      		cp r18,r24
 1842 0870 3907      		cpc r19,r25
 1843 0872 40F0      		brlo .L133
 1844               	.L145:
 1845               	.LM316:
 1846 0874 8091 0000 		lds r24,bEPPflags
 1847 0878 8460      		ori r24,lo8(4)
 1848               	.L148:
 1849               	.LM317:
 1850 087a 8F79      		andi r24,lo8(-97)
 1851 087c BDCF      		rjmp .L147
 1852               	.L143:
 1853               	.LM318:
 1854 087e 9F79      		andi r25,lo8(-97)
 1855 0880 9093 0000 		sts bEPPflags,r25
 1856               	.L133:
 1857 0884 0895      		ret
 1858               	/* epilogue: frame size=0 */
 1859 0886 0895      		ret
 1860               	/* epilogue end (size=1) */
 1861               	/* function ep0_rxdone size 130 (129) */
 1862               	.LFE44:
 1864               	.global	ep0_txdone
 1866               	ep0_txdone:
 1867               	.LFB45:
 1868               	.LM319:
 1869               	/* prologue: frame size=0 */
 1870 0888 CF93      		push r28
 1871 088a DF93      		push r29
 1872               	/* prologue end (size=2) */
 1873               	.LM320:
 1874 088c C091 0000 		lds r28,ControlData+8
 1875 0890 D091 0000 		lds r29,(ControlData+8)+1
 1876 0894 8091 0000 		lds r24,ControlData+10
 1877 0898 9091 0000 		lds r25,(ControlData+1

⌨️ 快捷键说明

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