📄 psc_i2c.lst
字号:
498 499 .set macro 500 .set reorder 501 $LFE7: 502 .end i2cOpen 503 .align 2 504 .globl i2cClose 505 .ent i2cClose 506 .type i2cClose, @function 507 i2cClose: 508 $LFB8: 171:/mnt/hgfs/boot/booter/source/psc_i2c.c **** GAS LISTING /tmp/ccmjNVoP.s page 13 172:/mnt/hgfs/boot/booter/source/psc_i2c.c **** int i2cClose() 173:/mnt/hgfs/boot/booter/source/psc_i2c.c **** { 509 .loc 1 173 0 510 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 511 .mask 0x00000000,0 512 .fmask 0x00000000,0 513 .set noreorder 514 .set nomacro 515 174:/mnt/hgfs/boot/booter/source/psc_i2c.c **** // shut down PSCs 175:/mnt/hgfs/boot/booter/source/psc_i2c.c **** smb->psc.ctl = 0; 516 .loc 1 175 0 517 03d8 0000023C lui $2,%hi(smb) 518 03dc 0000438C lw $3,%lo(smb)($2) 176:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 1; 177:/mnt/hgfs/boot/booter/source/psc_i2c.c **** } 519 .loc 1 177 0 520 03e0 01000224 li $2,1 # 0x1 521 .loc 1 175 0 522 03e4 040060AC sw $0,4($3) 523 .loc 1 177 0 524 03e8 0800E003 j $31 525 03ec 00000000 nop 526 527 .set macro 528 .set reorder 529 $LFE8: 530 .end i2cClose 531 .align 2 532 .globl i2c_write 533 .ent i2c_write 534 .type i2c_write, @function 535 i2c_write: 536 $LFB9: 178:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 179:/mnt/hgfs/boot/booter/source/psc_i2c.c **** int i2c_write(uint8 chipaddr, uint8* buf, int len) 180:/mnt/hgfs/boot/booter/source/psc_i2c.c **** { 537 .loc 1 180 0 538 .frame $sp,32,$31 # vars= 0, regs= 3/0, args= 16, gp= 0 539 .mask 0x80030000,-8 540 .fmask 0x00000000,0 541 .set noreorder 542 .set nomacro 543 544 03f0 E0FFBD27 addiu $sp,$sp,-32 545 $LCFI23: 546 03f4 1400B1AF sw $17,20($sp) 547 $LCFI24: 548 03f8 1000B0AF sw $16,16($sp) 549 $LCFI25: 550 03fc 2000A4A3 sb $4,32($sp) 551 0400 2180A000 move $16,$5 552 0404 1800BFAF sw $31,24($sp) 553 $LCFI26: 554 .loc 1 180 0 181:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_start()) 555 .loc 1 181 0GAS LISTING /tmp/ccmjNVoP.s page 14 556 0408 3C00000C jal i2c_start 557 040c 2188C000 move $17,$6 558 182:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 183:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 184:/mnt/hgfs/boot/booter/source/psc_i2c.c **** chipaddr <<= 1; 185:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_write_data(&chipaddr, 1, 0)) 559 .loc 1 185 0 560 0410 2000A427 addiu $4,$sp,32 561 0414 01000524 li $5,1 # 0x1 562 0418 21300000 move $6,$0 563 .loc 1 182 0 564 .loc 1 181 0 565 041c 07004014 bne $2,$0,$L50 566 0420 21180000 move $3,$0 567 568 $L46: 186:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 187:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 188:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_write_data(buf, len, 1)) 189:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 190:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 191:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 1; 192:/mnt/hgfs/boot/booter/source/psc_i2c.c **** } 569 .loc 1 192 0 570 0424 1800BF8F lw $31,24($sp) 571 0428 1400B18F lw $17,20($sp) 572 042c 1000B08F lw $16,16($sp) 573 0430 21106000 move $2,$3 574 0434 0800E003 j $31 575 0438 2000BD27 addiu $sp,$sp,32 576 577 $L50: 578 .loc 1 184 0 579 043c 2000A293 lbu $2,32($sp) 580 0440 40100200 sll $2,$2,1 581 .loc 1 185 0 582 0444 5200000C jal i2c_write_data 583 0448 2000A2A3 sb $2,32($sp) 584 585 .loc 1 188 0 586 044c 21200002 move $4,$16 587 0450 21282002 move $5,$17 588 0454 01000624 li $6,1 # 0x1 589 .loc 1 186 0 590 .loc 1 185 0 591 0458 F2FF4010 beq $2,$0,$L46 592 045c 21180000 move $3,$0 593 594 .loc 1 188 0 595 0460 5200000C jal i2c_write_data 596 0464 00000000 nop 597 598 .loc 1 189 0 599 0468 09010008 j $L46 600 046c 2B180200 sltu $3,$0,$2 601 GAS LISTING /tmp/ccmjNVoP.s page 15 602 .set macro 603 .set reorder 604 $LFE9: 605 .end i2c_write 606 .align 2 607 .globl i2c_read 608 .ent i2c_read 609 .type i2c_read, @function 610 i2c_read: 611 $LFB10: 193:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 194:/mnt/hgfs/boot/booter/source/psc_i2c.c **** int i2c_read(uint8 chipaddr, uint8* buf, int reglen, int datalen) 195:/mnt/hgfs/boot/booter/source/psc_i2c.c **** { 612 .loc 1 195 0 613 .frame $sp,48,$31 # vars= 0, regs= 7/0, args= 16, gp= 0 614 .mask 0x803f0000,-8 615 .fmask 0x00000000,0 616 .set noreorder 617 .set nomacro 618 619 0470 D0FFBD27 addiu $sp,$sp,-48 620 $LCFI27: 621 0474 1800B2AF sw $18,24($sp) 622 $LCFI28: 623 0478 1400B1AF sw $17,20($sp) 624 $LCFI29: 625 047c 1000B0AF sw $16,16($sp) 626 $LCFI30: 627 0480 2800BFAF sw $31,40($sp) 628 $LCFI31: 629 0484 2400B5AF sw $21,36($sp) 630 $LCFI32: 631 0488 2000B4AF sw $20,32($sp) 632 $LCFI33: 633 048c 1C00B3AF sw $19,28($sp) 634 $LCFI34: 635 .loc 1 195 0 636 0490 3000A4A3 sb $4,48($sp) 637 0494 2190A000 move $18,$5 638 0498 2180C000 move $16,$6 196:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_start()) 639 .loc 1 196 0 640 049c 3C00000C jal i2c_start 641 04a0 2188E000 move $17,$7 642 197:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 643 .loc 1 197 0 644 .loc 1 196 0 645 04a4 0B004014 bne $2,$0,$L69 646 04a8 21180000 move $3,$0 647 648 $L51: 198:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 199:/mnt/hgfs/boot/booter/source/psc_i2c.c **** chipaddr <<= 1; 200:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_write_data(&chipaddr, 1, 0)) 201:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 202:/mnt/hgfs/boot/booter/source/psc_i2c.c **** GAS LISTING /tmp/ccmjNVoP.s page 16 203:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_write_data(buf, reglen, 2)) 204:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 205:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 206:/mnt/hgfs/boot/booter/source/psc_i2c.c **** chipaddr |= 1; 207:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_write_data(&chipaddr, 1, 0)) 208:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 209:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 210:/mnt/hgfs/boot/booter/source/psc_i2c.c **** if(!i2c_read_data(buf, datalen)) 211:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 0; 212:/mnt/hgfs/boot/booter/source/psc_i2c.c **** 213:/mnt/hgfs/boot/booter/source/psc_i2c.c **** return 1; 214:/mnt/hgfs/boot/booter/source/psc_i2c.c **** } 649 .loc 1 214 0 650 04ac 2800BF8F lw $31,40($sp) 651 04b0 2400B58F lw $21,36($sp) 652 04b4 2000B48F lw $20,32($sp) 653 04b8 1C00B38F lw $19,28($sp) 654 04bc 1800B28F lw $18,24($sp) 655 04c0 1400B18F lw $17,20($sp) 656 04c4 1000B08F lw $16,16($sp) 657 04c8 21106000 move $2,$3 658 04cc 0800E003 j $31 659 04d0 3000BD27 addiu $sp,$sp,48 660 661 $L69: 662 .loc 1 199 0 663 04d4 3000A293 lbu $2,48($sp) 664 .loc 1 200 0 665 04d8 3000A427 addiu $4,$sp,48 666 04dc 01000524 li $5,1 # 0x1 667 .loc 1 199 0 668 04e0 40100200 sll $2,$2,1 669 .loc 1 200 0 670 04e4 21300000 move $6,$0 671 .loc 1 199 0 672 .loc 1 200 0 673 04e8 5200000C jal i2c_write_data 674 04ec 3000A2A3 sb $2,48($sp) 675 676 .loc 1 201 0 677 .loc 1 200 0 678 04f0 EEFF4010 beq $2,$0,$L51 679 04f4 21180000 move $3,$0 680 681 .loc 1 203 0 682 04f8 21280002 move $5,$16 683 04fc 21204002 move $4,$18 684 0500 5200000C jal i2c_write_data 685 0504 02000624 li $6,2 # 0x2 686 687 .loc 1 204 0 688 .loc 1 203 0 689 0508 E8FF4010 beq $2,$0,$L51 690 050c 21180000 move $3,$0 691 692 .loc 1 206 0 693 0510 3000A293 lbu $2,48($sp)GAS LISTING /tmp/ccmjNVoP.s page 17 694 .loc 1 207 0 695 0514 3000A427 addiu $4,$sp,48 696 0518 01000524 li $5,1 # 0x1 697 .loc 1 206 0 698 051c 01004234 ori $2,$2,0x1 699 .loc 1 207 0 700 0520 21300000 move $6,$0 701 .loc 1 206 0 702 .loc 1 207 0 703 0524 5200000C jal i2c_write_data 704 0528 3000A2A3 sb $2,48($sp) 705 706 .loc 1 208 0 707 .loc 1 207 0 708 052c DFFF4010 beq $2,$0,$L51 709 0530 21180000 move $3,$0 710 711 $LBB2: 712 .loc 1 99 0 713 0534 21804002 move $16,$18 714 $LBB3: 715 .loc 1 102 0 716 0538 1700201A blez $17,$L66 717 053c 21900000 move $18,$0 718 719 0540 FFFF3426 addiu $20,$17,-1 720 0544 0000133C lui $19,%hi(smb) 721 0548 61010008 j $L64 722 054c 0020153C li $21,536870912 # 0x20000000 723 724 $L60: 725 .loc 1 108 0 726 0550 1C0040AC sw $0,28($2) 727 .loc 1 111 0 728 0554 00100424 li $4,4096 # 0x1000 729 $L70: 730 0558 21280000 move $5,$0 731 055c 64000624 li $6,100 # 0x64 732 .loc 1 102 0 733 .loc 1 111 0 734 0560 0000000C jal i2c_wait_status 735 0564 01005226 addiu $18,$18,1 736 737 .loc 1 102 0 738 .loc 1 111 0 739 0568 0D004010 beq $2,$0,$L67 740 056c 2A205102 slt $4,$18,$17 741 742 .loc 1 115 0 743 0570 0000628E lw $2,%lo(smb)($19) 744 0574 1C00438C lw $3,28($2) 745 0578 000003A2 sb $3,0($16) 746 .loc 1 102 0 747 057c 06008010 beq $4,$0,$L66 748 0580 01001026 addiu $16,$16,1 749 750 $L64:GAS LISTING /tmp/ccmjNVoP.s page 18 751 .loc 1 108 0 752 .loc 1 105 0 753 0584 F2FF9216 bne $20,$18,$L60 754 0588 0000628E lw $2,%lo(smb)($19) 755 756 .loc 1 106 0 757 058c 1C0055AC sw $21,28($2) 758 .loc 1 111 0 759 0590 56010008 j $L70 760 0594 00100424 li $4,4096 # 0x1000 761 762 $L66: 763 .loc 1 213 0 764 0598 2B010008 j $L51 765 059c 01000324 li $3,1 # 0x1 766 767 $L67: 768 .loc 1 211 0 769 05a0 2B010008 j $L51 770 05a4 21180000 move $3,$0 771 772 $LBE3: 773 $LBE2: 774 .set macro 775 .set reorder 776 $LFE10: 777 .end i2c_read 778 .section .debug_frame,"",@progbits 779 $Lframe0: 780 0000 0C000000 .4byte $LECIE0-$LSCIE0 781 $LSCIE0: 782 0004 FFFFFFFF .4byte 0xffffffff 783 0008 01 .byte 0x1 784 0009 00 .ascii "\000" 785 000a 01 .uleb128 0x1 786 000b 04 .sleb128 4 787 000c 1F .byte 0x1f 788 000d 0C .byte 0xc 789 000e 1D .uleb128 0x1d
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -