📄 booter.lst
字号:
836 0514 00A3113C li $17,-1560281088 # 0xffffffffa3000000 837 838 0518 03001424 li $20,3 # 0x3 839 051c FFFF1324 li $19,-1 # 0xffffffffffffffff 840 $L51: 841 .loc 1 276 0 842 0520 0000000C jal platformGetChar 843 0524 FFFF1026 addiu $16,$16,-1 844 845 .loc 1 277 0 846 0528 05005410 beq $2,$20,$L49 847 052c 00000000 nop 848 849 .loc 1 280 0 850 0530 000022A2 sb $2,0($17) 851 .loc 1 279 0 852 0534 01005226 addiu $18,$18,1 853 .loc 1 280 0 854 0538 F9FF1316 bne $16,$19,$L51 855 053c 01003126 addiu $17,$17,1 856 857 $L49: 281:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 282:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 283:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** if(count) 858 .loc 1 283 0 859 0540 09004016 bne $18,$0,$L56 860 0544 00000000 nop 861 862 $L46: 284:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 285:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** functions = getFlashFunctions(); 286:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** if(entryPoint = srecLoadImage(functions, "A3000000")) 287:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** printf("Entry point: 0x%x\n", (int)entryPoint); 288:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** else 289:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** printf("Load srec file error\n"); 290:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 291:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 863 .loc 1 291 0 864 0548 3400BF8F lw $31,52($sp) 865 $L57: 866 054c 3000B48F lw $20,48($sp) 867 0550 2C00B38F lw $19,44($sp) 868 0554 2800B28F lw $18,40($sp) 869 0558 2400B18F lw $17,36($sp) 870 055c 2000B08F lw $16,32($sp) 871 0560 0800E003 j $31 872 0564 3800BD27 addiu $sp,$sp,56GAS LISTING /tmp/ccjGssRD.s page 22 873 874 $L56: 875 .loc 1 285 0 876 0568 0000000C jal getFlashFunctions 877 056c 1000A427 addiu $4,$sp,16 878 879 .loc 1 286 0 880 0570 1000A48F lw $4,16($sp) 881 0574 1400A58F lw $5,20($sp) 882 0578 1800A68F lw $6,24($sp) 883 057c 0000073C lui $7,%hi($LC7) 884 0580 0000000C jal srecLoadImage 885 0584 0000E724 addiu $7,$7,%lo($LC7) 886 887 .loc 1 289 0 888 .loc 1 286 0 889 0588 0D004010 beq $2,$0,$L53 890 058c 0000043C lui $4,%hi($LC9) 891 892 .loc 1 287 0 893 0590 0000043C lui $4,%hi($LC8) 894 0594 00008424 addiu $4,$4,%lo($LC8) 895 0598 0000000C jal printf 896 059c 21284000 move $5,$2 897 898 .loc 1 291 0 899 05a0 3400BF8F lw $31,52($sp) 900 05a4 3000B48F lw $20,48($sp) 901 05a8 2C00B38F lw $19,44($sp) 902 05ac 2800B28F lw $18,40($sp) 903 05b0 2400B18F lw $17,36($sp) 904 05b4 2000B08F lw $16,32($sp) 905 05b8 0800E003 j $31 906 05bc 3800BD27 addiu $sp,$sp,56 907 908 $L53: 909 .loc 1 289 0 910 05c0 0000000C jal printf 911 05c4 00008424 addiu $4,$4,%lo($LC9) 912 913 .loc 1 291 0 914 05c8 53010008 j $L57 915 05cc 3400BF8F lw $31,52($sp) 916 917 .set macro 918 .set reorder 919 $LFE12: 920 .end doloadsrec 921 .section .rodata.str1.4 922 00bf 00 .align 2 923 $LC10: 924 00c0 4C6F6164 .ascii "Load bin file sucessfully\n\000" 924 2062696E 924 2066696C 924 65207375 924 63657373 925 .textGAS LISTING /tmp/ccjGssRD.s page 23 926 .align 2 927 .globl doloadbin 928 .ent doloadbin 929 .type doloadbin, @function 930 doloadbin: 931 $LFB13: 292:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 293:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void doloadbin(void *dest, unsigned int len) 294:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 932 .loc 1 294 0 933 .frame $sp,40,$31 # vars= 0, regs= 5/0, args= 16, gp= 0 934 .mask 0x800f0000,-8 935 .fmask 0x00000000,0 936 .set noreorder 937 .set nomacro 938 939 05d0 D8FFBD27 addiu $sp,$sp,-40 940 $LCFI48: 941 05d4 1800B2AF sw $18,24($sp) 942 $LCFI49: 943 05d8 1400B1AF sw $17,20($sp) 944 $LCFI50: 945 05dc 2000BFAF sw $31,32($sp) 946 $LCFI51: 947 05e0 1C00B3AF sw $19,28($sp) 948 $LCFI52: 949 05e4 1000B0AF sw $16,16($sp) 950 $LCFI53: 295:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** char *tmp = (char *)dest; 951 .loc 1 295 0 952 05e8 21908000 move $18,$4 296:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 297:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** while(len--) 298:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** *tmp++ = platformGetChar(); 953 .loc 1 298 0 954 05ec 0700A010 beq $5,$0,$L63 955 05f0 FFFFB124 addiu $17,$5,-1 956 957 05f4 FFFF1324 li $19,-1 # 0xffffffffffffffff 958 $L61: 959 05f8 0000000C jal platformGetChar 960 05fc FFFF3126 addiu $17,$17,-1 961 962 0600 000042A2 sb $2,0($18) 963 0604 FCFF3316 bne $17,$19,$L61 964 0608 01005226 addiu $18,$18,1 965 966 $L63: 299:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** printf("Load bin file sucessfully\n"); 967 .loc 1 299 0 968 060c 0000043C lui $4,%hi($LC10) 969 0610 2000BF8F lw $31,32($sp) 970 0614 1C00B38F lw $19,28($sp) 971 0618 1800B28F lw $18,24($sp) 972 061c 1400B18F lw $17,20($sp) 973 0620 1000B08F lw $16,16($sp) 974 0624 00008424 addiu $4,$4,%lo($LC10)GAS LISTING /tmp/ccjGssRD.s page 24 975 0628 00000008 j printf 976 062c 2800BD27 addiu $sp,$sp,40 977 978 .set macro 979 .set reorder 980 $LFE13: 981 .end doloadbin 982 .section .rodata.str1.4 983 00db 00 .align 2 984 $LC11: 985 00dc 436F7079 .ascii "Copy 0x%x bytes from 0x%x to 0x%x\n\000" 985 20307825 985 78206279 985 74657320 985 66726F6D 986 00ff 00 .align 2 987 $LC12: 988 0100 45726173 .ascii "Eraseing...\n\000" 988 65696E67 988 2E2E2E0A 988 00 989 010d 000000 .align 2 990 $LC13: 991 0110 50726F67 .ascii "Programing...\n\000" 991 72616D69 991 6E672E2E 991 2E0A00 992 .text 993 .align 2 994 .globl docopy 995 .ent docopy 996 .type docopy, @function 997 docopy: 998 $LFB14: 300:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 301:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 302:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void docopy(unsigned int src, unsigned int dst, unsigned int len) 303:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 999 .loc 1 303 0 1000 .frame $sp,48,$31 # vars= 0, regs= 7/0, args= 16, gp= 0 1001 .mask 0x803f0000,-8 1002 .fmask 0x00000000,0 1003 .set noreorder 1004 .set nomacro 1005 1006 0630 D0FFBD27 addiu $sp,$sp,-48 1007 $LCFI54: 1008 0634 1800B2AF sw $18,24($sp) 1009 $LCFI55: 1010 0638 21908000 move $18,$4 304:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** unsigned int address; 305:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 306:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** if(((src & 0xd0000000) == 0x80000000) && 1011 .loc 1 306 0 1012 063c 00D0043C li $4,-805306368 # 0xffffffffd0000000 1013 0640 24184402 and $3,$18,$4 1014 0644 0080023C li $2,-2147483648 # 0xffffffff80000000GAS LISTING /tmp/ccjGssRD.s page 25 1015 .loc 1 303 0 1016 0648 1C00B3AF sw $19,28($sp) 1017 $LCFI56: 1018 064c 2800BFAF sw $31,40($sp) 1019 $LCFI57: 1020 0650 2400B5AF sw $21,36($sp) 1021 $LCFI58: 1022 0654 2000B4AF sw $20,32($sp) 1023 $LCFI59: 1024 0658 1400B1AF sw $17,20($sp) 1025 $LCFI60: 1026 065c 1000B0AF sw $16,16($sp) 1027 $LCFI61: 1028 .loc 1 303 0 1029 .loc 1 306 0 1030 0660 0A006210 beq $3,$2,$L72 1031 0664 2198C000 move $19,$6 1032 307:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** ((dst & 0xd0000000) == 0x90000000)) 308:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 309:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** dst |= 0x20000000; 310:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 311:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** printf("Copy 0x%x bytes from 0x%x to 0x%x\n", len, src, dst); 312:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** printf("Eraseing...\n"); 313:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 314:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** for(address = dst & 0xffff0000; address < (dst + len); address += 0x00010000) 315:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** nor_erase((void *)address); 316:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 317:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** printf("Programing...\n"); 318:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** nor_program((void *)src, len, (void *)dst); 319:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 320:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 1033 .loc 1 320 0 1034 0668 2800BF8F lw $31,40($sp) 1035 $L75: 1036 066c 2400B58F lw $21,36($sp) 1037 0670 2000B48F lw $20,32($sp) 1038 0674 1C00B38F lw $19,28($sp) 1039 0678 1800B28F lw $18,24($sp) 1040 067c 1400B18F lw $17,20($sp) 1041 0680 1000B08F lw $16,16($sp) 1042 0684 0800E003 j $31 1043 0688 3000BD27 addiu $sp,$sp,48 1044 1045 $L72: 1046 .loc 1 306 0 1047 068c 2418A400 and $3,$5,$4 1048 0690 0090023C li $2,-1879048192 # 0xffffffff90000000 1049 .loc 1 320 0 1050 .loc 1 306 0 1051 0694 F5FF6214 bne $3,$2,$L75 1052 0698 2800BF8F lw $31,40($sp) 1053 1054 .loc 1 309 0 1055 069c 0020023C li $2,536870912 # 0x20000000 1056 06a0 2588A200 or $17,$5,$2 1057 .loc 1 311 0GAS LISTING /tmp/ccjGssRD.s page 26 1058 06a4 0000043C lui $4,%hi($LC11) 1059 06a8 2128C000 move $5,$6 1060 06ac 00008424 addiu $4,$4,%lo($LC11) 1061 06b0 21304002 move $6,$18 1062 06b4 0000000C jal printf 1063 06b8 21382002 move $7,$17 1064 1065
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -