📄 uart.lst
字号:
101 102 .loc 1 426 0 103 00ac 64000424 li $4,100 # 0x64 104 .loc 1 425 0 105 00b0 000130AE sw $16,256($17) 106 .loc 1 426 0 107 00b4 0000000C jal msdelay 108 00b8 00000000 nop 109 110 .loc 1 435 0 111 00bc 0000448E lw $4,%lo(sys)($18) 112 .loc 1 430 0 113 00c0 06000224 li $2,6 # 0x6 114 .loc 1 428 0 115 00c4 080020AE sw $0,8($17) 116 .loc 1 430 0 117 00c8 100022AE sw $2,16($17) 118 .loc 1 433 0 119 00cc 140030AE sw $16,20($17) 120 .loc 1 435 0 121 00d0 6000858C lw $5,96($4) 122 00d4 3C00838C lw $3,60($4) 123 00d8 B700023C li $2,11993088 # 0xb70000 124 00dc 001B4234 ori $2,$2,0x1b00 125 00e0 03006330 andi $3,$3,0x3 126 00e4 40190300 sll $3,$3,5GAS LISTING /tmp/cc4XVykA.s page 11 127 00e8 3F00A530 andi $5,$5,0x3f 128 00ec 40006324 addiu $3,$3,64 129 00f0 0228A270 mul $5,$5,$2 130 .loc 1 437 0 131 00f4 64000424 li $4,100 # 0x64 132 .loc 1 435 0 133 00f8 02187370 mul $3,$3,$19 134 00fc 1B00A300 divu $0,$5,$3 135 0100 02006014 bne $3,$0,1f 136 0104 00000000 nop 137 0108 0D000700 break 7 138 1: 139 010c 12280000 mflo $5 140 .loc 1 436 0 141 0110 280025AE sw $5,40($17) 142 .loc 1 437 0 143 0114 0000000C jal msdelay 144 0118 00000000 nop 145 146 .loc 1 439 0 147 011c 10B1023C li $2,-1324351488 # 0xffffffffb1100000 148 0120 00014234 ori $2,$2,0x100 149 0124 0000448C lw $4,0($2) 150 0128 00AF033C li $3,-1358954496 # 0xffffffffaf000000 151 012c 000064AC sw $4,0($3) 152 .loc 1 440 0 153 0130 2000BF8F lw $31,32($sp) 154 $L8: 155 0134 1C00B38F lw $19,28($sp) 156 0138 1800B28F lw $18,24($sp) 157 013c 1400B18F lw $17,20($sp) 158 0140 1000B08F lw $16,16($sp) 159 0144 0800E003 j $31 160 0148 2800BD27 addiu $sp,$sp,40 161 162 .set macro 163 .set reorder 164 $LFE2: 165 .end uartInit 166 .align 2 167 .globl uartPutChar 168 .ent uartPutChar 169 .type uartPutChar, @function 170 uartPutChar: 171 $LFB3: 441:/mnt/hgfs/boot/booter/source/uart.c **** 442:/mnt/hgfs/boot/booter/source/uart.c **** /********************************************************************/ 443:/mnt/hgfs/boot/booter/source/uart.c **** void 444:/mnt/hgfs/boot/booter/source/uart.c **** uartPutChar (int uartNumber, int ch) 445:/mnt/hgfs/boot/booter/source/uart.c **** { 172 .loc 1 445 0 173 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 174 .mask 0x00000000,0 175 .fmask 0x00000000,0 176 .set noreorder 177 .set nomacro 178 GAS LISTING /tmp/cc4XVykA.s page 12 446:/mnt/hgfs/boot/booter/source/uart.c **** AU1000_UART *uart; 447:/mnt/hgfs/boot/booter/source/uart.c **** 448:/mnt/hgfs/boot/booter/source/uart.c **** switch (uartNumber) 449:/mnt/hgfs/boot/booter/source/uart.c **** { 450:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART0_PHYS_ADDR 451:/mnt/hgfs/boot/booter/source/uart.c **** case 0: uart = (AU1000_UART *)KSEG1(UART0_PHYS_ADDR); break; 179 .loc 1 451 0 180 .loc 1 448 0 181 014c 07008010 beq $4,$0,$L14 182 0150 10B1033C li $3,-1324351488 # 0xffffffffb1100000 183 184 0154 01000224 li $2,1 # 0x1 185 0158 03008210 beq $4,$2,$L16 186 015c 00000000 nop 187 188 0160 0800E003 j $31 189 0164 00000000 nop 190 191 $L16: 452:/mnt/hgfs/boot/booter/source/uart.c **** #endif 453:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART1_PHYS_ADDR 454:/mnt/hgfs/boot/booter/source/uart.c **** case 1: uart = (AU1000_UART *)KSEG1(UART1_PHYS_ADDR); break; 192 .loc 1 454 0 193 0168 20B1033C li $3,-1323302912 # 0xffffffffb1200000 194 $L14: 455:/mnt/hgfs/boot/booter/source/uart.c **** #endif 456:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART2_PHYS_ADDR 457:/mnt/hgfs/boot/booter/source/uart.c **** case 2: uart = (AU1000_UART *)KSEG1(UART2_PHYS_ADDR); break; 458:/mnt/hgfs/boot/booter/source/uart.c **** #endif 459:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART3_PHYS_ADDR 460:/mnt/hgfs/boot/booter/source/uart.c **** case 3: uart = (AU1000_UART *)KSEG1(UART3_PHYS_ADDR); break; 461:/mnt/hgfs/boot/booter/source/uart.c **** #endif 462:/mnt/hgfs/boot/booter/source/uart.c **** default: 463:/mnt/hgfs/boot/booter/source/uart.c **** return; 464:/mnt/hgfs/boot/booter/source/uart.c **** } 465:/mnt/hgfs/boot/booter/source/uart.c **** 466:/mnt/hgfs/boot/booter/source/uart.c **** while ((uart->linestat & UART_LINESTAT_TE) == 0) 195 .loc 1 466 0 196 016c 1C00628C lw $2,28($3) 197 0170 40004230 andi $2,$2,0x40 198 0174 FDFF4010 beq $2,$0,$L14 199 0178 00000000 nop 200 467:/mnt/hgfs/boot/booter/source/uart.c **** ; 468:/mnt/hgfs/boot/booter/source/uart.c **** 469:/mnt/hgfs/boot/booter/source/uart.c **** uart->txdata = ch; 201 .loc 1 469 0 202 017c 040065AC sw $5,4($3) 203 0180 0800E003 j $31 204 0184 00000000 nop 205 206 .set macro 207 .set reorder 208 $LFE3: 209 .end uartPutChar 210 .align 2 211 .globl uartGetCharGAS LISTING /tmp/cc4XVykA.s page 13 212 .ent uartGetChar 213 .type uartGetChar, @function 214 uartGetChar: 215 $LFB4: 470:/mnt/hgfs/boot/booter/source/uart.c **** 471:/mnt/hgfs/boot/booter/source/uart.c **** // (*((int*)0xAF000000))++; 472:/mnt/hgfs/boot/booter/source/uart.c **** } 473:/mnt/hgfs/boot/booter/source/uart.c **** 474:/mnt/hgfs/boot/booter/source/uart.c **** /********************************************************************/ 475:/mnt/hgfs/boot/booter/source/uart.c **** void 476:/mnt/hgfs/boot/booter/source/uart.c **** uartGetChar (int uartNumber, int *ch) 477:/mnt/hgfs/boot/booter/source/uart.c **** { 216 .loc 1 477 0 217 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 218 .mask 0x00000000,0 219 .fmask 0x00000000,0 220 .set noreorder 221 .set nomacro 222 478:/mnt/hgfs/boot/booter/source/uart.c **** AU1000_UART *uart; 479:/mnt/hgfs/boot/booter/source/uart.c **** switch (uartNumber) 480:/mnt/hgfs/boot/booter/source/uart.c **** { 481:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART0_PHYS_ADDR 482:/mnt/hgfs/boot/booter/source/uart.c **** case 0: uart = (AU1000_UART *)KSEG1(UART0_PHYS_ADDR); break; 223 .loc 1 482 0 224 .loc 1 479 0 225 0188 07008010 beq $4,$0,$L22 226 018c 10B1033C li $3,-1324351488 # 0xffffffffb1100000 227 228 0190 01000224 li $2,1 # 0x1 229 0194 03008210 beq $4,$2,$L24 230 0198 00000000 nop 231 232 019c 0800E003 j $31 233 01a0 00000000 nop 234 235 $L24: 483:/mnt/hgfs/boot/booter/source/uart.c **** #endif 484:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART1_PHYS_ADDR 485:/mnt/hgfs/boot/booter/source/uart.c **** case 1: uart = (AU1000_UART *)KSEG1(UART1_PHYS_ADDR); break; 236 .loc 1 485 0 237 01a4 20B1033C li $3,-1323302912 # 0xffffffffb1200000 238 $L22: 486:/mnt/hgfs/boot/booter/source/uart.c **** #endif 487:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART2_PHYS_ADDR 488:/mnt/hgfs/boot/booter/source/uart.c **** case 2: uart = (AU1000_UART *)KSEG1(UART2_PHYS_ADDR); break; 489:/mnt/hgfs/boot/booter/source/uart.c **** #endif 490:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART3_PHYS_ADDR 491:/mnt/hgfs/boot/booter/source/uart.c **** case 3: uart = (AU1000_UART *)KSEG1(UART3_PHYS_ADDR); break; 492:/mnt/hgfs/boot/booter/source/uart.c **** #endif 493:/mnt/hgfs/boot/booter/source/uart.c **** default: 494:/mnt/hgfs/boot/booter/source/uart.c **** return; 495:/mnt/hgfs/boot/booter/source/uart.c **** } 496:/mnt/hgfs/boot/booter/source/uart.c **** 497:/mnt/hgfs/boot/booter/source/uart.c **** while ((uart->linestat & UART_LINESTAT_DR) == 0) 239 .loc 1 497 0 240 01a8 1C00628C lw $2,28($3)GAS LISTING /tmp/cc4XVykA.s page 14 241 01ac 01004238 xori $2,$2,0x1 242 01b0 01004230 andi $2,$2,0x1 243 01b4 FCFF4014 bne $2,$0,$L22 244 01b8 00000000 nop 245 498:/mnt/hgfs/boot/booter/source/uart.c **** ; 499:/mnt/hgfs/boot/booter/source/uart.c **** 500:/mnt/hgfs/boot/booter/source/uart.c **** *ch = (uart->rxdata & 0x00FF); 246 .loc 1 500 0 247 01bc 0000628C lw $2,0($3) 248 01c0 FF004230 andi $2,$2,0xff 249 01c4 0800E003 j $31 250 01c8 0000A2AC sw $2,0($5) 251 252 .set macro 253 .set reorder 254 $LFE4: 255 .end uartGetChar 256 .align 2 257 .globl uartCheckChar 258 .ent uartCheckChar 259 .type uartCheckChar, @function 260 uartCheckChar: 261 $LFB5: 501:/mnt/hgfs/boot/booter/source/uart.c **** } 502:/mnt/hgfs/boot/booter/source/uart.c **** 503:/mnt/hgfs/boot/booter/source/uart.c **** /********************************************************************/ 504:/mnt/hgfs/boot/booter/source/uart.c **** int 505:/mnt/hgfs/boot/booter/source/uart.c **** uartCheckChar (int uartNumber) 506:/mnt/hgfs/boot/booter/source/uart.c **** { 262 .loc 1 506 0 263 .frame $sp,0,$31 # vars= 0, regs= 0/0, args= 0, gp= 0 264 .mask 0x00000000,0 265 .fmask 0x00000000,0 266 .set noreorder 267 .set nomacro 268 507:/mnt/hgfs/boot/booter/source/uart.c **** AU1000_UART *uart; 508:/mnt/hgfs/boot/booter/source/uart.c **** 509:/mnt/hgfs/boot/booter/source/uart.c **** switch (uartNumber) 510:/mnt/hgfs/boot/booter/source/uart.c **** { 511:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART0_PHYS_ADDR 512:/mnt/hgfs/boot/booter/source/uart.c **** case 0: uart = (AU1000_UART *)KSEG1(UART0_PHYS_ADDR); break; 269 .loc 1 512 0 270 .loc 1 509 0 271 01cc 06008010 beq $4,$0,$L26 272 01d0 10B1033C li $3,-1324351488 # 0xffffffffb1100000 273 274 01d4 01000224 li $2,1 # 0x1 513:/mnt/hgfs/boot/booter/source/uart.c **** #endif 514:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART1_PHYS_ADDR 515:/mnt/hgfs/boot/booter/source/uart.c **** case 1: uart = (AU1000_UART *)KSEG1(UART1_PHYS_ADDR); break; 275 .loc 1 515 0 276 .loc 1 509 0 277 01d8 03008210 beq $4,$2,$L26 278 01dc 20B1033C li $3,-1323302912 # 0xffffffffb1200000 279 GAS LISTING /tmp/cc4XVykA.s page 15 516:/mnt/hgfs/boot/booter/source/uart.c **** #endif 517:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART2_PHYS_ADDR 518:/mnt/hgfs/boot/booter/source/uart.c **** case 2: uart = (AU1000_UART *)KSEG1(UART2_PHYS_ADDR); break; 519:/mnt/hgfs/boot/booter/source/uart.c **** #endif 520:/mnt/hgfs/boot/booter/source/uart.c **** #ifdef UART3_PHYS_ADDR 521:/mnt/hgfs/boot/booter/source/uart.c **** case 3: uart = (AU1000_UART *)KSEG1(UART3_PHYS_ADDR); break; 522:/mnt/hgfs/boot/booter/source/uart.c **** #endif 523:/mnt/hgfs/boot/booter/source/uart.c **** default: 524:/mnt/hgfs/boot/booter/source/uart.c **** return; 280 .loc 1 524 0 281 01e0 0800E003 j $31 282 01e4 00000000 nop 283 284 $L26: 525:/mnt/hgfs/boot/booter/source/uart.c **** } 526:/mnt/hgfs/boot/booter/source/uart.c **** 527:/mnt/hgfs/boot/booter/source/uart.c **** if (uart->linestat & UART_LINESTAT_DR) 285 .loc 1 527 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -