⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 uart.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 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,5GAS 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	uartGetCharGAS 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 + -