📄 vs1003b.lst
字号:
81:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** _delay_loop_1(uint8_t __count)
82:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** {
83:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** __asm__ volatile (
84:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** "1: dec %0" "\n\t"
85:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** "brne 1b"
86:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** : "=r" (__count)
87:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** : "0" (__count)
88:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** );
89:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** }
90:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
91:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** /** \ingroup util_delay_basic
92:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
93:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Delay loop using a 16-bit counter \c __count, so up to 65536
94:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** iterations are possible. (The value 65536 would have to be
95:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** passed as 0.) The loop executes four CPU cycles per iteration,
96:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** not including the overhead the compiler requires to setup the
97:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** counter register pair.
98:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h ****
99:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** Thus, at a CPU speed of 1 MHz, delays of up to about 262.1
100:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** milliseconds can be achieved.
101:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** */
102:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** void
103:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** _delay_loop_2(uint16_t __count)
104:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** {
105:d:/winavr-20071221/bin/../avr/include/util/delay_basic.h **** __asm__ volatile (
401 frame size=0 */
402 ret
403 00a6 80E4 /* epilogue end (size=1) */
404 00a8 9CE9 /* function VS1003B_SoftReset size 15 (14) */
409 .Lscope7:
411 .global VS1003B_NeedData
413 VS1003B_NeedData:
415 .Ltext2:
417 .LM57:
418 .LFBB8:
419 /* prologue: frame size=0 */
420 /* prologue end (size=0) */
422 .LM58:
423 in r24,54-0x20
424 ldi r25,lo8(0)
425 ldi r20,6
426 1: lsr r25
427 ror r24
189:VS1003B\VS1003B.c **** _delay_ms(20);
190:VS1003B\VS1003B.c **** }
191:VS1003B\VS1003B.c ****
192:VS1003B\VS1003B.c **** /* get total decode time form last reset */
193:VS1003B\VS1003B.c **** unsigned int VS1003B_ReadDecodeTime()
194:VS1003B\VS1003B.c **** {
195:VS1003B\VS1003B.c **** VS1003B_SPI_High();
196:VS1003B\VS1003B.c **** return VS1003B_ReadCMD(0x04);
197:VS1003B\VS1003B.c **** }
198:VS1003B\VS1003B.c ****
199:VS1003B\VS1003B.c **** /* check if the chip need data, 1: need 0: don't */
200:VS1003B\VS1003B.c **** unsigned char VS1003B_NeedData(void)
201:VS1003B\VS1003B.c **** {
428 8,0,204,.LM59-.LFBB8
429 .LM59:
430 andi r24,lo8(1)
431 andi r25,hi8(1)
432 /* epilogue: frame size=0 */
202:VS1003B\VS1003B.c **** if(VS1003B_DREQ_PIN & (1<<VS1003B_DREQ_BIT))return 1;
433 /* epilogue end (size=1) */
434 /* function VS1003B_NeedData size 10 (9) */
436 00b2 90E0 .Lscope8:
439 00b8 8795 .global VS1003B_SetVolume
441 00bc 01F4 VS1003B_SetVolume:
203:VS1003B\VS1003B.c **** else return 0;
204:VS1003B\VS1003B.c **** }
442 8,0,208,.LM60-.LFBB9
443 .LM60:
444 00be 8170 .LFBB9:
445 00c0 9070 /* prologue: frame size=0 */
446 /* prologue end (size=0) */
447 00c2 0895 .LBB54:
448 .LBB55:
450 .LM61:
451 ldi r18,lo8(80)
452 out 45-0x20,r18
454 .LM62:
455 sbi 46-0x20,0
456 .LBE55:
205:VS1003B\VS1003B.c ****
206:VS1003B\VS1003B.c **** /* Set volume */
207:VS1003B\VS1003B.c **** void VS1003B_SetVolume(unsigned int vol)
208:VS1003B\VS1003B.c **** {
457 68,0,210,.LM63-.LFBB9
458 .LM63:
459 movw r22,r24
460 ldi r24,lo8(11)
461 call VS1003B_WriteCMD
462 /* epilogue: frame size=0 */
463 ret
464 /* epilogue end (size=1) */
465 /* function VS1003B_SetVolume size 8 (7) */
467 00c6 2DB9 .Lscope9:
469 .global VS1003B_ReadDecodeTime
471 VS1003B_ReadDecodeTime:
209:VS1003B\VS1003B.c **** VS1003B_SPI_High();
210:VS1003B\VS1003B.c **** VS1003B_WriteCMD(0x0b,vol);
473 /* prologue: frame size=0 */
474 /* prologue end (size=0) */
475 00ca BC01 .LBB58:
476 00cc 8BE0 .LBB59:
478 .LM65:
479 00d2 0895 ldi r24,lo8(80)
480 out 45-0x20,r24
482 .LM66:
483 sbi 46-0x20,0
484 .LBE59:
485 .LBE58:
487 .LM67:
488 ldi r24,lo8(4)
489 call VS1003B_ReadCMD
490 /* epilogue: frame size=0 */
491 ret
492 /* epilogue end (size=1) */
493 /* function VS1003B_ReadDecodeTime size 7 (6) */
495 .Lscope10:
498 00d6 8DB9 .global VS1003B_Write32B
500 VS1003B_Write32B:
502 .LM68:
503 .LFBB11:
504 /* prologue: frame size=0 */
505 /* prologue end (size=0) */
506 00da 84E0 movw r30,r24
508 .LM69:
509 00e0 0895 cbi 56-0x20,7
510 ldi r25,lo8(32)
511 rjmp .L62
512 .L63:
514 .LM70:
515 ld r24,Z
516 .LBB62:
517 .LBB63:
519 .LM71:
520 out 47-0x20,r24
521 .L64:
523 .LM72:
524 00e2 FC01 sbis 46-0x20,7
525 rjmp .L64
526 .LBE63:
527 00e4 C798 .LBE62:
529 00e8 00C0 .LM73:
530 adiw r30,1
531 .LBB65:
532 .LBB64:
534 .LM74:
535 in r24,47-0x20
536 .L62:
537 .LBE64:
538 00ec 8FB9 .LBE65:
540 .LM75:
541 subi r25,1
542 00ee 779B brcc .L63
544 .LM76:
545 sbi 56-0x20,7
546 /* epilogue: frame size=0 */
547 ret
548 00f2 3196 /* epilogue end (size=1) */
549 /* function VS1003B_Write32B size 15 (14) */
560 00f8 00F4 .Lscope11:
562 .global VS1003B_Fill2048Zero
564 VS1003B_Fill2048Zero:
566 .LM77:
567 .LFBB12:
568 /* prologue: frame size=0 */
569 /* prologue end (size=0) */
570 ldi r18,lo8(0)
571 .L71:
573 .LM78:
574 cbi 56-0x20,7
575 .L72:
576 .LBB70:
577 .LBB71:
579 .LM79:
580 in r24,54-0x20
581 .LBE71:
582 .LBE70:
584 .LM80:
585 swap r24
586 lsr r24
587 lsr r24
588 00fe 20E0 andi r24,lo8(3)
589 sbrs r24,0
590 rjmp .L72
591 ldi r25,lo8(0)
592 0100 C798 .L74:
593 .LBB72:
594 .LBB73:
596 .LM81:
597 out 47-0x20,__zero_reg__
598 0102 86B3 .L75:
600 .LM82:
601 sbis 46-0x20,7
602 rjmp .L75
604 0106 8695 .LM83:
605 0108 8695 in r24,47-0x20
606 010a 8370 .LBE73:
607 010c 80FF .LBE72:
609 0110 90E0 .LM84:
610 subi r25,lo8(-(1))
611 cpi r25,lo8(32)
612 brne .L74
614 .LM85:
615 0112 1FB8 sbi 56-0x20,7
617 .LM86:
618 subi r18,lo8(-(1))
619 0114 779B cpi r18,lo8(64)
620 0116 00C0 brne .L71
621 /* epilogue: frame size=0 */
622 ret
623 0118 8FB1 /* epilogue end (size=1) */
624 /* function VS1003B_Fill2048Zero size 22 (21) */
630 011e 01F4 .Lscope12:
632 .global VS1003B_Init
634 VS1003B_Init:
636 0122 2F5F .LM87:
637 0124 2034 .LFBB13:
638 0126 01F4 /* prologue: frame size=2 */
639 push r17
640 0128 0895 push r28
641 push r29
642 in r28,__SP_L__
643 in r29,__SP_H__
644 sbiw r28,2
645 in __tmp_reg__,__SREG__
646 cli
647 out __SP_H__,r29
648 out __SREG__,__tmp_reg__
649 out __SP_L__,r28
650 /* prologue end (size=11) */
652 .LM88:
653 sbi 56-0x20,4
654 sbi 56-0x20,6
655 sbi 56-0x20,5
656 sbi 56-0x20,7
657 012a 1F93 sbi 56-0x20,1
658 012c CF93 sbi 56-0x20,2
659 012e DF93 sbi 56-0x20,3
660 0130 CDB7 sbi 55-0x20,4
661 0132 DEB7 cbi 55-0x20,6
662 0134 2297 sbi 55-0x20,5
663 0136 0FB6 sbi 55-0x20,7
664 0138 F894 sbi 55-0x20,1
665 013a DEBF sbi 55-0x20,2
666 013c 0FBE cbi 55-0x20,3
668 .LM89:
669 cbi 56-0x20,5
670 .LBB114:
671 0140 C49A .LBB115:
672 0142 C69A .LBB116:
673 0144 C59A .LBB117:
675 0148 C19A .Ltext3:
677 014c C39A .LM90:
678 014e BC9A ldi r24,lo8(-25536)
679 0150 BE98 ldi r25,hi8(-25536)
680 0152 BD9A movw r30,r24
681 0154 BF9A /* #APP */
682 0156 B99A 1: sbiw r30,1
683 0158 BA9A brne 1b
684 015a BB98 /* #NOAPP */
685 .LBE117:
686 .LBE116:
687 015c C598 .LBE115:
688 .LBE114:
690 .Ltext4:
692 .LM91:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -