📄 main.lst
字号:
92:main.c **** USART_Init();
93:main.c **** Inter_Init();
94:main.c **** bEPPflags.value=0; //清除事件标志寄存器bEPPflags
95:main.c **** reconnect_USB();
96:main.c **** sei();
97:main.c **** while(1)
98:main.c **** {
99:main.c **** if (bEPPflags.bits.bus_reset) //总线复位处理
100:main.c **** {
101:main.c **** bEPPflags.bits.bus_reset = 0; //清标志
102:main.c **** }
103:main.c **** if (bEPPflags.bits.suspend) //总线挂起处理
104:main.c **** {
105:main.c **** bEPPflags.bits.suspend= 0; //清标志
106:main.c **** }
107:main.c **** if (bEPPflags.bits.setup_packet) //协议处理
108:main.c **** {
109:main.c **** bEPPflags.bits.setup_packet = 0; //清标志
110:main.c **** control_handler();
111:main.c **** }
112:main.c **** }
113:main.c **** }
114:main.c ****
115:main.c **** //断开USB总线
116:main.c **** void disconnect_USB(void)
117:main.c **** {
328 .LM27:
329 /* prologue: frame size=0 */
330 /* prologue end (size=0) */
118:main.c **** //初始化D12工作状态,断开Soft Connect上拉电阻
119:main.c **** D12_SetMode(D12_NOLAZYCLOCK, D12_SETTOONE | D12_CLOCK_12M);
332 .LM28:
333 00aa 65E4 ldi r22,lo8(69)
334 00ac 82E0 ldi r24,lo8(2)
335 00ae 0E94 0000 call D12_SetMode
336 /* epilogue: frame size=0 */
337 00b2 0895 ret
338 /* epilogue end (size=1) */
339 /* function disconnect_USB size 5 (4) */
341 .Lscope7:
343 .global connect_USB
345 connect_USB:
120:main.c **** }
121:main.c **** //连接USB总线
122:main.c **** void connect_USB(void)
123:main.c **** {
347 .LM29:
348 /* prologue: frame size=0 */
349 /* prologue end (size=0) */
124:main.c **** DISABLE;
351 .LM30:
352 /* #APP */
353 00b4 F894 cli
125:main.c **** bEPPflags.value=0; //清除事件标志
355 .LM31:
356 /* #NOAPP */
357 00b6 1092 0000 sts (bEPPflags)+1,__zero_reg__
358 00ba 1092 0000 sts bEPPflags,__zero_reg__
126:main.c **** ENABLE;
360 .LM32:
361 /* #APP */
362 00be 7894 sei
127:main.c **** //初始化D12工作状态,接通Soft Connect上拉电阻
128:main.c **** D12_SetDMA(0);
364 .LM33:
365 /* #NOAPP */
366 00c0 80E0 ldi r24,lo8(0)
367 00c2 0E94 0000 call D12_SetDMA
129:main.c **** D12_SetMode(D12_NOLAZYCLOCK | D12_SOFTCONNECT,D12_SETTOONE | D12_CLOCK_12M );
369 .LM34:
370 00c6 65E4 ldi r22,lo8(69)
371 00c8 82E1 ldi r24,lo8(18)
372 00ca 0E94 0000 call D12_SetMode
373 /* epilogue: frame size=0 */
374 00ce 0895 ret
375 /* epilogue end (size=1) */
376 /* function connect_USB size 16 (15) */
378 .Lscope8:
380 .global reconnect_USB
382 reconnect_USB:
130:main.c ****
131:main.c **** }
132:main.c **** //重新连接到USB
133:main.c **** void reconnect_USB(void)
134:main.c **** {
384 .LM35:
385 /* prologue: frame size=0 */
386 /* prologue end (size=0) */
135:main.c **** unsigned long clk_cnt;
136:main.c **** disconnect_USB();
388 .LM36:
389 00d0 0E94 0000 call disconnect_USB
390 00d4 8FE4 ldi r24,lo8(49999)
391 00d6 93EC ldi r25,hi8(49999)
392 00d8 A0E0 ldi r26,hlo8(49999)
393 00da B0E0 ldi r27,hhi8(49999)
394 .L25:
137:main.c **** for(clk_cnt=0;clk_cnt<50000;clk_cnt++);
396 .LM37:
397 00dc C297 sbiw r24,50
398 00de A109 sbc r26,__zero_reg__
399 00e0 B109 sbc r27,__zero_reg__
400 00e2 B7FF sbrs r27,7
401 00e4 FBCF rjmp .L25
138:main.c **** connect_USB();
403 .LM38:
404 00e6 0E94 0000 call connect_USB
405 /* epilogue: frame size=0 */
406 00ea 0895 ret
407 /* epilogue end (size=1) */
408 /* function reconnect_USB size 14 (13) */
413 .Lscope9:
415 .global control_handler
417 control_handler:
139:main.c **** }
140:main.c **** //USB处理子程序
141:main.c **** void control_handler(void)
142:main.c **** {
419 .LM39:
420 /* prologue: frame size=0 */
421 /* prologue end (size=0) */
143:main.c **** unsigned char type,req;
144:main.c **** type=ControlData.DeviceRequest.bmRequestType & USB_REQUSET_TYPE_MASK;
423 .LM40:
424 00ec 8091 0000 lds r24,ControlData
425 00f0 8076 andi r24,lo8(96)
145:main.c **** req=ControlData.DeviceRequest.bRequest & USB_REQUSET_MASK;
427 .LM41:
428 00f2 E091 0000 lds r30,ControlData+1
429 00f6 EF70 andi r30,lo8(15)
146:main.c **** // put_c(req);
147:main.c **** if(type == USB_STANDERD_REQUEST)
431 .LM42:
432 00f8 8823 tst r24
433 00fa 31F4 brne .L129
148:main.c **** (*StandardDeviceRequest[req])();
435 .LM43:
436 00fc FF27 clr r31
437 00fe EE0F add r30,r30
438 0100 FF1F adc r31,r31
439 0102 E050 subi r30,lo8(-(StandardDeviceRequest))
440 0104 F040 sbci r31,hi8(-(StandardDeviceRequest))
441 0106 07C0 rjmp .L133
442 .L129:
149:main.c **** else
150:main.c **** if(type==USB_VENDOR_REQUEST)
444 .LM44:
445 0108 8034 cpi r24,lo8(64)
446 010a 51F4 brne .L131
151:main.c **** (*VendorDeviceRequest[req])();
448 .LM45:
449 010c FF27 clr r31
450 010e EE0F add r30,r30
451 0110 FF1F adc r31,r31
452 0112 E050 subi r30,lo8(-(VendorDeviceRequest))
453 0114 F040 sbci r31,hi8(-(VendorDeviceRequest))
454 .L133:
455 0116 0190 ld __tmp_reg__,Z+
456 0118 F081 ld r31,Z
457 011a E02D mov r30,__tmp_reg__
458 011c 0995 icall
459 011e 0895 ret
460 .L131:
152:main.c **** else
153:main.c **** stall_ep0();
462 .LM46:
463 0120 0E94 0000 call stall_ep0
464 0124 0895 ret
465 /* epilogue: frame size=0 */
466 /* epilogue: noreturn */
467 /* epilogue end (size=0) */
468 /* function control_handler size 29 (29) */
474 .Lscope10:
476 .global main
478 main:
480 .LM47:
481 /* prologue: frame size=0 */
482 0126 C0E0 ldi r28,lo8(__stack - 0)
483 0128 D0E0 ldi r29,hi8(__stack - 0)
484 012a DEBF out __SP_H__,r29
485 012c CDBF out __SP_L__,r28
486 /* prologue end (size=4) */
488 .LM48:
489 012e 0E94 0000 call IO_Init
491 .LM49:
492 0132 0E94 0000 call USART_Init
494 .LM50:
495 0136 0E94 0000 call Inter_Init
497 .LM51:
498 013a 1092 0000 sts (bEPPflags)+1,__zero_reg__
499 013e 1092 0000 sts bEPPflags,__zero_reg__
501 .LM52:
502 0142 0E94 0000 call reconnect_USB
504 .LM53:
505 /* #APP */
506 0146 7894 sei
507 /* #NOAPP */
508 .L143:
510 .LM54:
511 0148 8091 0000 lds r24,bEPPflags
512 014c 81FF sbrs r24,1
513 014e 03C0 rjmp .L137
515 .LM55:
516 0150 8D7F andi r24,lo8(-3)
517 0152 8093 0000 sts bEPPflags,r24
518 .L137:
520 .LM56:
521 0156 8091 0000 lds r24,bEPPflags
522 015a 82FF sbrs r24,2
523 015c 03C0 rjmp .L138
525 .LM57:
526 015e 8B7F andi r24,lo8(-5)
527 0160 8093 0000 sts bEPPflags,r24
528 .L138:
530 .LM58:
531 0164 8091 0000 lds r24,bEPPflags
532 0168 83FF sbrs r24,3
533 016a EECF rjmp .L143
535 .LM59:
536 016c 877F andi r24,lo8(-9)
537 016e 8093 0000 sts bEPPflags,r24
539 .LM60:
540 0172 0E94 0000 call control_handler
541 0176 E8CF rjmp .L143
542 /* epilogue: frame size=0 */
543 /* epilogue: noreturn */
544 /* epilogue end (size=0) */
545 /* function main size 42 (38) */
547 .Lscope11:
548 .comm EpBuf,2,1
549 .comm GenEpBuf,64,1
550 .comm bEPPflags,2,1
551 .comm ControlData,22,1
556 .text
558 Letext:
559 /* File "main.c": code 191 = 0x00bf ( 141), prologues 23, epilogues 27 */
DEFINED SYMBOLS
*ABS*:00000000 main.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:3 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:4 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:5 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:6 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:7 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:109 .text:00000000 LED
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:129 .text:00000006 IO_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:161 .text:00000018 USART_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:195 .text:0000002c put_c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:218 .text:00000034 put_s
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:255 .text:0000005a Inter_Init
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:276 .text:00000062 __vector_1
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:326 .text:000000aa disconnect_USB
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:345 .text:000000b4 connect_USB
*COM*:00000002 bEPPflags
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:382 .text:000000d0 reconnect_USB
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:417 .text:000000ec control_handler
*COM*:00000016 ControlData
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:478 .text:00000126 main
*COM*:00000002 EpBuf
*COM*:00000040 GenEpBuf
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/ccmabaaa.s:558 .text:00000178 Letext
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
fn_usb_isr
D12_SetMode
D12_SetDMA
StandardDeviceRequest
VendorDeviceRequest
stall_ep0
__stack
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -