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

📄 usb.lst

📁 avr与PC机之间的通信
💻 LST
📖 第 1 页 / 共 5 页
字号:
   1               		.file	"usb.c"
   2               		.arch atmega16
   3               	__SREG__ = 0x3f
   4               	__SP_H__ = 0x3e
   5               	__SP_L__ = 0x3d
   6               	__tmp_reg__ = 0
   7               	__zero_reg__ = 1
   8               		.global __do_copy_data
   9               		.global __do_clear_bss
  17               	.Ltext0:
  18               	.global	StandardDeviceRequest
  19               		.data
  22               	StandardDeviceRequest:
  23 0000 0000      		.word	pm(get_status)
  24 0002 0000      		.word	pm(clear_feature)
  25 0004 0000      		.word	pm(reserved)
  26 0006 0000      		.word	pm(set_feature)
  27 0008 0000      		.word	pm(reserved)
  28 000a 0000      		.word	pm(set_address)
  29 000c 0000      		.word	pm(get_descriptor)
  30 000e 0000      		.word	pm(reserved)
  31 0010 0000      		.word	pm(get_configuration)
  32 0012 0000      		.word	pm(set_configuration)
  33 0014 0000      		.word	pm(get_interface)
  34 0016 0000      		.word	pm(set_interface)
  35 0018 0000      		.word	pm(reserved)
  36 001a 0000      		.word	pm(reserved)
  37 001c 0000      		.word	pm(reserved)
  38 001e 0000      		.word	pm(reserved)
  39               	.global	TRANFER_DESC
  42               	TRANFER_DESC:
  43 0020 09        		.byte	9
  44 0021 02        		.byte	2
  45 0022 2E00      		.word	46
  46 0024 01        		.byte	1
  47 0025 01        		.byte	1
  48 0026 00        		.byte	0
  49 0027 60        		.byte	96
  50 0028 C8        		.byte	-56
  51 0029 09        		.byte	9
  52 002a 04        		.byte	4
  53 002b 00        		.byte	0
  54 002c 00        		.byte	0
  55 002d 04        		.byte	4
  56 002e DC        		.byte	-36
  57 002f A0        		.byte	-96
  58 0030 B0        		.byte	-80
  59 0031 00        		.byte	0
  60 0032 07        		.byte	7
  61 0033 05        		.byte	5
  62 0034 81        		.byte	-127
  63 0035 03        		.byte	3
  64 0036 0400      		.word	4
  65 0038 0A        		.byte	10
  66 0039 07        		.byte	7
  67 003a 05        		.byte	5
  68 003b 01        		.byte	1
  69 003c 03        		.byte	3
  70 003d 0400      		.word	4
  71 003f 0A        		.byte	10
  72 0040 07        		.byte	7
  73 0041 05        		.byte	5
  74 0042 82        		.byte	-126
  75 0043 02        		.byte	2
  76 0044 4000      		.word	64
  77 0046 0A        		.byte	10
  78 0047 07        		.byte	7
  79 0048 05        		.byte	5
  80 0049 02        		.byte	2
  81 004a 02        		.byte	2
  82 004b 4000      		.word	64
  83 004d 0A        		.byte	10
  84               	.global	DeviceDescr
  87               	DeviceDescr:
  88 004e 12        		.byte	18
  89 004f 01        		.byte	1
  90 0050 1001      		.word	272
  91 0052 DC        		.byte	-36
  92 0053 00        		.byte	0
  93 0054 00        		.byte	0
  94 0055 10        		.byte	16
  95 0056 7104      		.word	1137
  96 0058 9106      		.word	1681
  97 005a 0001      		.word	256
  98 005c 00        		.byte	0
  99 005d 00        		.byte	0
 100 005e 00        		.byte	0
 101 005f 01        		.byte	1
 102               		.text
 103               	.global	delay1
 105               	delay1:
 106               	.LFB7:
 107               	.LM1:
 108               	/* prologue: frame size=0 */
 109               	/* prologue end (size=0) */
 110               	.LM2:
 111               	/* #APP */
 112 0000 0000      		nop
 113               	.LM3:
 114 0002 0000      		nop
 115               	.LM4:
 116 0004 0000      		nop
 117               	.LM5:
 118 0006 0000      		nop
 119               	.LM6:
 120 0008 0000      		nop
 121               	.LM7:
 122 000a 0000      		nop
 123               	.LM8:
 124 000c 0000      		nop
 125               	.LM9:
 126 000e 0000      		nop
 127               	.LM10:
 128 0010 0000      		nop
 129               	.LM11:
 130 0012 0000      		nop
 131               	/* #NOAPP */
 132               	/* epilogue: frame size=0 */
 133 0014 0895      		ret
 134               	/* epilogue end (size=1) */
 135               	/* function delay1 size 21 (20) */
 136               	.LFE7:
 138               	.global	outportb
 140               	outportb:
 141               	.LFB8:
 142               	.LM12:
 143               	/* prologue: frame size=0 */
 144 0016 1F93      		push r17
 145               	/* prologue end (size=1) */
 146 0018 162F      		mov r17,r22
 147               	.LM13:
 148 001a C39A      		sbi 56-0x20,3
 149               	.LM14:
 150 001c 9FEF      		ldi r25,lo8(-1)
 151 001e 9ABB      		out 58-0x20,r25
 152               	.LM15:
 153 0020 8BBB      		out 59-0x20,r24
 154               	.LM16:
 155 0022 0E94 0000 		call delay1
 156               	.LM17:
 157 0026 C398      		cbi 56-0x20,3
 158               	.LM18:
 159 0028 1BBB      		out 59-0x20,r17
 160               	.LM19:
 161 002a C198      		cbi 56-0x20,1
 162               	.LM20:
 163 002c 0E94 0000 		call delay1
 164               	.LM21:
 165 0030 0E94 0000 		call delay1
 166               	.LM22:
 167 0034 C19A      		sbi 56-0x20,1
 168               	/* epilogue: frame size=0 */
 169 0036 1F91      		pop r17
 170 0038 0895      		ret
 171               	/* epilogue end (size=2) */
 172               	/* function outportb size 18 (15) */
 173               	.LFE8:
 175               	.global	inportb
 177               	inportb:
 178               	.LFB9:
 179               	.LM23:
 180               	/* prologue: frame size=0 */
 181 003a 1F93      		push r17
 182               	/* prologue end (size=1) */
 183               	.LM24:
 184 003c C39A      		sbi 56-0x20,3
 185               	.LM25:
 186 003e 1FEF      		ldi r17,lo8(-1)
 187 0040 1ABB      		out 58-0x20,r17
 188               	.LM26:
 189 0042 8BBB      		out 59-0x20,r24
 190               	.LM27:
 191 0044 0E94 0000 		call delay1
 192               	.LM28:
 193 0048 C398      		cbi 56-0x20,3
 194               	.LM29:
 195 004a 1ABA      		out 58-0x20,__zero_reg__
 196               	.LM30:
 197 004c 1BBB      		out 59-0x20,r17
 198               	.LM31:
 199 004e C298      		cbi 56-0x20,2
 200               	.LM32:
 201 0050 0E94 0000 		call delay1
 202               	.LM33:
 203 0054 89B3      		in r24,57-0x20
 204               	.LM34:
 205 0056 C29A      		sbi 56-0x20,2
 206               	.LM35:
 207 0058 9927      		clr r25
 208               	/* epilogue: frame size=0 */
 209 005a 1F91      		pop r17
 210 005c 0895      		ret
 211               	/* epilogue end (size=2) */
 212               	/* function inportb size 18 (15) */
 213               	.LFE9:
 215               	.global	D12_SetAddressEnable
 217               	D12_SetAddressEnable:
 218               	.LFB10:
 219               	.LM36:
 220               	/* prologue: frame size=0 */
 221 005e 1F93      		push r17
 222 0060 CF93      		push r28
 223               	/* prologue end (size=2) */
 224 0062 C82F      		mov r28,r24
 225 0064 162F      		mov r17,r22
 226               	.LM37:
 227 0066 8091 0000 		lds r24,bEPPflags
 228 006a 84FD      		sbrc r24,4
 229 006c 01C0      		rjmp .L5
 230               	.LM38:
 231               	/* #APP */
 232 006e F894      		cli
 233               	/* #NOAPP */
 234               	.L5:
 235               	.LM39:
 236 0070 60ED      		ldi r22,lo8(-48)
 237 0072 83E0      		ldi r24,lo8(3)
 238 0074 0E94 0000 		call outportb
 239               	.LM40:
 240 0078 1111      		cpse r17,__zero_reg__
 241               	.LM41:
 242 007a C068      		ori r28,lo8(-128)
 243               	.L6:
 244               	.LM42:
 245 007c 6C2F      		mov r22,r28
 246 007e 82E0      		ldi r24,lo8(2)
 247 0080 0E94 0000 		call outportb
 248               	.LM43:
 249 0084 8091 0000 		lds r24,bEPPflags
 250 0088 84FD      		sbrc r24,4
 251 008a 01C0      		rjmp .L4
 252               	.LM44:
 253               	/* #APP */
 254 008c 7894      		sei
 255               	/* #NOAPP */
 256               	.L4:
 257               	/* epilogue: frame size=0 */
 258 008e CF91      		pop r28
 259 0090 1F91      		pop r17
 260 0092 0895      		ret
 261               	/* epilogue end (size=3) */
 262               	/* function D12_SetAddressEnable size 30 (25) */
 263               	.LFE10:
 265               	.global	D12_SetEndpointEnable
 267               	D12_SetEndpointEnable:
 268               	.LFB11:
 269               	.LM45:
 270               	/* prologue: frame size=0 */
 271 0094 CF93      		push r28
 272               	/* prologue end (size=1) */
 273 0096 C82F      		mov r28,r24
 274               	.LM46:
 275 0098 8091 0000 		lds r24,bEPPflags
 276 009c 84FD      		sbrc r24,4
 277 009e 01C0      		rjmp .L9
 278               	.LM47:
 279               	/* #APP */
 280 00a0 F894      		cli
 281               	/* #NOAPP */
 282               	.L9:
 283               	.LM48:
 284 00a2 68ED      		ldi r22,lo8(-40)
 285 00a4 83E0      		ldi r24,lo8(3)
 286 00a6 0E94 0000 		call outportb
 287               	.LM49:
 288 00aa CC23      		tst r28
 289 00ac 11F0      		breq .L10
 290               	.LM50:
 291 00ae 61E0      		ldi r22,lo8(1)
 292 00b0 01C0      		rjmp .L13
 293               	.L10:
 294               	.LM51:
 295 00b2 6C2F      		mov r22,r28
 296               	.L13:
 297 00b4 82E0      		ldi r24,lo8(2)
 298 00b6 0E94 0000 		call outportb
 299               	.LM52:
 300 00ba 8091 0000 		lds r24,bEPPflags
 301 00be 84FD      		sbrc r24,4
 302 00c0 01C0      		rjmp .L8
 303               	.LM53:
 304               	/* #APP */
 305 00c2 7894      		sei
 306               	/* #NOAPP */
 307               	.L8:
 308               	/* epilogue: frame size=0 */
 309 00c4 CF91      		pop r28
 310 00c6 0895      		ret
 311               	/* epilogue end (size=2) */
 312               	/* function D12_SetEndpointEnable size 28 (25) */
 313               	.LFE11:
 315               	.global	D12_SetMode
 317               	D12_SetMode:
 318               	.LFB12:
 319               	.LM54:
 320               	/* prologue: frame size=0 */
 321 00c8 1F93      		push r17
 322 00ca CF93      		push r28
 323               	/* prologue end (size=2) */
 324 00cc C82F      		mov r28,r24
 325 00ce 162F      		mov r17,r22
 326               	.LM55:
 327 00d0 8091 0000 		lds r24,bEPPflags
 328 00d4 84FD      		sbrc r24,4
 329 00d6 01C0      		rjmp .L15
 330               	.LM56:
 331               	/* #APP */
 332 00d8 F894      		cli
 333               	/* #NOAPP */
 334               	.L15:
 335               	.LM57:
 336 00da 63EF      		ldi r22,lo8(-13)
 337 00dc 83E0      		ldi r24,lo8(3)
 338 00de 0E94 0000 		call outportb
 339               	.LM58:
 340 00e2 6C2F      		mov r22,r28
 341 00e4 82E0      		ldi r24,lo8(2)
 342 00e6 0E94 0000 		call outportb
 343               	.LM59:
 344 00ea 612F      		mov r22,r17
 345 00ec 82E0      		ldi r24,lo8(2)
 346 00ee 0E94 0000 		call outportb
 347               	.LM60:
 348 00f2 8091 0000 		lds r24,bEPPflags
 349 00f6 84FD      		sbrc r24,4
 350 00f8 01C0      		rjmp .L14
 351               	.LM61:
 352               	/* #APP */
 353 00fa 7894      		sei
 354               	/* #NOAPP */
 355               	.L14:
 356               	/* epilogue: frame size=0 */
 357 00fc CF91      		pop r28
 358 00fe 1F91      		pop r17
 359 0100 0895      		ret
 360               	/* epilogue end (size=3) */
 361               	/* function D12_SetMode size 31 (26) */
 362               	.LFE12:
 364               	.global	D12_SetDMA
 366               	D12_SetDMA:
 367               	.LFB13:
 368               	.LM62:
 369               	/* prologue: frame size=0 */
 370 0102 CF93      		push r28
 371               	/* prologue end (size=1) */
 372 0104 C82F      		mov r28,r24
 373               	.LM63:
 374 0106 8091 0000 		lds r24,bEPPflags
 375 010a 84FD      		sbrc r24,4
 376 010c 01C0      		rjmp .L18
 377               	.LM64:
 378               	/* #APP */
 379 010e F894      		cli
 380               	/* #NOAPP */
 381               	.L18:
 382               	.LM65:
 383 0110 6BEF      		ldi r22,lo8(-5)
 384 0112 83E0      		ldi r24,lo8(3)

⌨️ 快捷键说明

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