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

📄 delay.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 4 页
字号:
GAS LISTING /tmp/ccqM27O3.s 			page 1   1              		.section .mdebug.abi32   2              		.previous   3              		.section	.debug_abbrev,"",@progbits   4              	$Ldebug_abbrev0:   5              		.section	.debug_info,"",@progbits   6              	$Ldebug_info0:   7              		.section	.debug_line,"",@progbits   8              	$Ldebug_line0:   9 0000 F8000000 		.text   9      0200A400    9      00000101    9      FB0E0A00    9      01010101   10              	$Ltext0:  11              		.align	2  12              		.globl	usdelay  13              		.ent	usdelay  14              		.type	usdelay, @function  15              	usdelay:  16              	$LFB2:  17              		.file 1 "/mnt/hgfs/boot/booter/source/delay.c"   1:/mnt/hgfs/boot/booter/source/delay.c **** /*   2:/mnt/hgfs/boot/booter/source/delay.c ****  * Busy delay loop   3:/mnt/hgfs/boot/booter/source/delay.c ****  */   4:/mnt/hgfs/boot/booter/source/delay.c ****    5:/mnt/hgfs/boot/booter/source/delay.c **** #include "example.h"   6:/mnt/hgfs/boot/booter/source/delay.c ****    7:/mnt/hgfs/boot/booter/source/delay.c **** static AU1X00_SYS * const sys = (AU1X00_SYS *)KSEG1(SYS_PHYS_ADDR);   8:/mnt/hgfs/boot/booter/source/delay.c ****    9:/mnt/hgfs/boot/booter/source/delay.c **** /********************************************************************/  10:/mnt/hgfs/boot/booter/source/delay.c **** void  11:/mnt/hgfs/boot/booter/source/delay.c **** usdelay(int us)  12:/mnt/hgfs/boot/booter/source/delay.c **** {		  18              		.loc 1 12 0  19              		.frame	$sp,40,$31		# vars= 0, regs= 5/0, args= 16, gp= 0  20              		.mask	0x800f0000,-8  21              		.fmask	0x00000000,0  22              		.set	noreorder  23              		.set	nomacro  24              		  25 0000 D8FFBD27 		addiu	$sp,$sp,-40  26              	$LCFI0:  27 0004 1C00B3AF 		sw	$19,28($sp)  28              	$LCFI1:  29 0008 1400B1AF 		sw	$17,20($sp)  30              	$LCFI2:  31 000c 2000BFAF 		sw	$31,32($sp)  32              	$LCFI3:  33 0010 1800B2AF 		sw	$18,24($sp)  34              	$LCFI4:  35 0014 1000B0AF 		sw	$16,16($sp)  36              	$LCFI5:  13:/mnt/hgfs/boot/booter/source/delay.c **** 	/*  14:/mnt/hgfs/boot/booter/source/delay.c **** 	 * Use CP0 Count which counts 1:1 with core frequency.  15:/mnt/hgfs/boot/booter/source/delay.c **** 	 */  16:/mnt/hgfs/boot/booter/source/delay.c **** 	uint32 now, later, cpupll;  17:/mnt/hgfs/boot/booter/source/delay.c **** 	int i;GAS LISTING /tmp/ccqM27O3.s 			page 2  18:/mnt/hgfs/boot/booter/source/delay.c ****   19:/mnt/hgfs/boot/booter/source/delay.c **** 	us /= 2;  20:/mnt/hgfs/boot/booter/source/delay.c ****   21:/mnt/hgfs/boot/booter/source/delay.c **** 	cpupll = sys->cpupll & 0x3F;  37              		.loc 1 21 0  38 0018 90B1023C 		li	$2,-1315962880			# 0xffffffffb1900000  39 001c 6000458C 		lw	$5,96($2)  40              		.loc 1 19 0  41 0020 C21F0400 		srl	$3,$4,31  42 0024 21186400 		addu	$3,$3,$4  43 0028 43980300 		sra	$19,$3,1  44              		.loc 1 21 0  45 002c 3F00A530 		andi	$5,$5,0x3f  22:/mnt/hgfs/boot/booter/source/delay.c ****   23:/mnt/hgfs/boot/booter/source/delay.c **** 	for (i = 0; i < us; ++i)  46              		.loc 1 23 0  47 0030 1800601A 		blez	$19,$L15  48 0034 21880000 		move	$17,$0  49              	  50 0038 B700023C 		li	$2,11993088			# 0xb70000  51 003c 001B4234 		ori	$2,$2,0x1b00  52 0040 0210A270 		mul	$2,$5,$2  53 0044 1B43033C 		li	$3,1125842944			# 0x431b0000  54 0048 83DE6334 		ori	$3,$3,0xde83  55 004c 19004300 		multu	$2,$3  56 0050 10100000 		mfhi	$2  57 0054 82940200 		srl	$18,$2,18  58              	$L13:  59              	$LBB2:  24:/mnt/hgfs/boot/booter/source/delay.c **** 	{  25:/mnt/hgfs/boot/booter/source/delay.c **** 		now = cp0RdCount();  60              		.loc 1 25 0  61 0058 0000000C 		jal	cp0RdCount  62 005c 00000000 		nop  63              	  26:/mnt/hgfs/boot/booter/source/delay.c **** 		later = now + ( (12000000 * cpupll) / 1000000);  64              		.loc 1 26 0  65 0060 21804202 		addu	$16,$18,$2  27:/mnt/hgfs/boot/booter/source/delay.c ****   28:/mnt/hgfs/boot/booter/source/delay.c **** 		if (now < later)  66              		.loc 1 28 0  67 0064 2B105000 		sltu	$2,$2,$16  68 0068 11004010 		beq	$2,$0,$L9  69 006c 00000000 		nop  70              	  71              	$L6:  29:/mnt/hgfs/boot/booter/source/delay.c **** 		{  30:/mnt/hgfs/boot/booter/source/delay.c **** 			while (cp0RdCount() < later)  72              		.loc 1 30 0  73 0070 0000000C 		jal	cp0RdCount  74 0074 00000000 		nop  75              	  76 0078 2B105000 		sltu	$2,$2,$16  77 007c FCFF4014 		bne	$2,$0,$L6  78 0080 00000000 		nop  79              	  80              	$L4:GAS LISTING /tmp/ccqM27O3.s 			page 3  81              	$LBE2:  82              		.loc 1 23 0  83 0084 01003126 		addiu	$17,$17,1  84              	$L18:  85 0088 2A103302 		slt	$2,$17,$19  86 008c F2FF4014 		bne	$2,$0,$L13  87 0090 00000000 		nop  88              	  89              	$L15:  90 0094 2000BF8F 		lw	$31,32($sp)  91 0098 1C00B38F 		lw	$19,28($sp)  92 009c 1800B28F 		lw	$18,24($sp)  93 00a0 1400B18F 		lw	$17,20($sp)  94 00a4 1000B08F 		lw	$16,16($sp)  95 00a8 0800E003 		j	$31  96 00ac 2800BD27 		addiu	$sp,$sp,40  97              	  98              	$L9:  99              	$LBB3:  31:/mnt/hgfs/boot/booter/source/delay.c **** 				;  32:/mnt/hgfs/boot/booter/source/delay.c **** 		}  33:/mnt/hgfs/boot/booter/source/delay.c **** 		else  34:/mnt/hgfs/boot/booter/source/delay.c **** 		{  35:/mnt/hgfs/boot/booter/source/delay.c **** 			/* Count must rollover */  36:/mnt/hgfs/boot/booter/source/delay.c **** 			while (cp0RdCount() > later) 100              		.loc 1 36 0 101 00b0 0000000C 		jal	cp0RdCount 102 00b4 00000000 		nop 103              	 104 00b8 2B100202 		sltu	$2,$16,$2 105 00bc FCFF4014 		bne	$2,$0,$L9 106 00c0 00000000 		nop 107              	 108              	$L11:  37:/mnt/hgfs/boot/booter/source/delay.c **** 				;  38:/mnt/hgfs/boot/booter/source/delay.c ****   39:/mnt/hgfs/boot/booter/source/delay.c **** 			while (cp0RdCount() < later) 109              		.loc 1 39 0 110 00c4 0000000C 		jal	cp0RdCount 111 00c8 00000000 		nop 112              	 113 00cc 2B105000 		sltu	$2,$2,$16 114 00d0 ECFF4010 		beq	$2,$0,$L4 115 00d4 00000000 		nop 116              	 117 00d8 0000000C 		jal	cp0RdCount 118 00dc 00000000 		nop 119              	 120 00e0 2B105000 		sltu	$2,$2,$16 121 00e4 F7FF4014 		bne	$2,$0,$L11 122 00e8 00000000 		nop 123              	 124              		.loc 1 23 0 125 00ec 22000008 		j	$L18 126 00f0 01003126 		addiu	$17,$17,1 127              	 128              	$LBE3:GAS LISTING /tmp/ccqM27O3.s 			page 4 129              		.set	macro 130              		.set	reorder 131              	$LFE2: 132              		.end	usdelay 133              		.align	2 134              		.globl	msdelay 135              		.ent	msdelay 136              		.type	msdelay, @function 137              	msdelay: 138              	$LFB3:  40:/mnt/hgfs/boot/booter/source/delay.c **** 				;  41:/mnt/hgfs/boot/booter/source/delay.c **** 		}  42:/mnt/hgfs/boot/booter/source/delay.c **** 	}  43:/mnt/hgfs/boot/booter/source/delay.c **** }  44:/mnt/hgfs/boot/booter/source/delay.c ****   45:/mnt/hgfs/boot/booter/source/delay.c **** void  46:/mnt/hgfs/boot/booter/source/delay.c **** msdelay (int ms)  47:/mnt/hgfs/boot/booter/source/delay.c **** { 139              		.loc 1 47 0 140              		.frame	$sp,40,$31		# vars= 0, regs= 5/0, args= 16, gp= 0 141              		.mask	0x800f0000,-8 142              		.fmask	0x00000000,0 143              		.set	noreorder 144              		.set	nomacro 145              		 146 00f4 D8FFBD27 		addiu	$sp,$sp,-40 147              	$LCFI6: 148 00f8 1C00B3AF 		sw	$19,28($sp) 149              	$LCFI7: 150 00fc 1400B1AF 		sw	$17,20($sp) 151              	$LCFI8: 152 0100 2000BFAF 		sw	$31,32($sp) 153              	$LCFI9: 154 0104 1800B2AF 		sw	$18,24($sp) 155              	$LCFI10: 156 0108 1000B0AF 		sw	$16,16($sp) 157              	$LCFI11:  48:/mnt/hgfs/boot/booter/source/delay.c ****   49:/mnt/hgfs/boot/booter/source/delay.c **** 	/*  50:/mnt/hgfs/boot/booter/source/delay.c **** 	 * Use CP0 Count which counts 1:1 with core frequency.  51:/mnt/hgfs/boot/booter/source/delay.c **** 	 */  52:/mnt/hgfs/boot/booter/source/delay.c **** 	uint32 now, later, cpupll;  53:/mnt/hgfs/boot/booter/source/delay.c **** 	int i;  54:/mnt/hgfs/boot/booter/source/delay.c ****   55:/mnt/hgfs/boot/booter/source/delay.c **** 	cpupll = sys->cpupll & 0x3F; 158              		.loc 1 55 0 159 010c 90B1023C 		li	$2,-1315962880			# 0xffffffffb1900000 160 0110 6000438C 		lw	$3,96($2) 161              		.loc 1 47 0 162 0114 21988000 		move	$19,$4  56:/mnt/hgfs/boot/booter/source/delay.c ****   57:/mnt/hgfs/boot/booter/source/delay.c **** 	for (i = 0; i < ms; ++i) 163              		.loc 1 57 0 164 0118 21880000 		move	$17,$0 165              		.loc 1 55 0 166              		.loc 1 57 0 167 011c 18008018 		blez	$4,$L33GAS LISTING /tmp/ccqM27O3.s 			page 5 168 0120 3F006330 		andi	$3,$3,0x3f 169              	 170 0124 B700023C 		li	$2,11993088			# 0xb70000 171 0128 001B4234 		ori	$2,$2,0x1b00 172 012c 02106270 		mul	$2,$3,$2 173 0130 6210033C 		li	$3,274857984			# 0x10620000 174 0134 D34D6334 		ori	$3,$3,0x4dd3 175 0138 19004300 		multu	$2,$3 176 013c 10100000 		mfhi	$2 177 0140 82910200 		srl	$18,$2,6 178              	$L31: 179              	$LBB4:  58:/mnt/hgfs/boot/booter/source/delay.c **** 	{  59:/mnt/hgfs/boot/booter/source/delay.c **** 		now = cp0RdCount(); 180              		.loc 1 59 0 181 0144 0000000C 		jal	cp0RdCount 182 0148 00000000 		nop 183              	  60:/mnt/hgfs/boot/booter/source/delay.c **** 		later = now + ((12000000 * cpupll) / 1000); 184              		.loc 1 60 0 185 014c 21804202 		addu	$16,$18,$2  61:/mnt/hgfs/boot/booter/source/delay.c ****   62:/mnt/hgfs/boot/booter/source/delay.c **** 		if (now < later) 186              		.loc 1 62 0 187 0150 2B105000 		sltu	$2,$2,$16 188 0154 11004010 		beq	$2,$0,$L27 189 0158 00000000 		nop 190              	 191              	$L24:  63:/mnt/hgfs/boot/booter/source/delay.c **** 		{  64:/mnt/hgfs/boot/booter/source/delay.c **** 			while (cp0RdCount() < later) 192              		.loc 1 64 0 193 015c 0000000C 		jal	cp0RdCount 194 0160 00000000 		nop 195              	 196 0164 2B105000 		sltu	$2,$2,$16 197 0168 FCFF4014 		bne	$2,$0,$L24 198 016c 00000000 		nop 199              	 200              	$L22: 201              	$LBE4: 202              		.loc 1 57 0 203 0170 01003126 		addiu	$17,$17,1 204              	$L35: 205 0174 2A103302 		slt	$2,$17,$19 206 0178 F2FF4014 		bne	$2,$0,$L31 207 017c 00000000 		nop 208              	 209              	$L33: 210 0180 2000BF8F 		lw	$31,32($sp) 211 0184 1C00B38F 		lw	$19,28($sp) 212 0188 1800B28F 		lw	$18,24($sp) 213 018c 1400B18F 		lw	$17,20($sp) 214 0190 1000B08F 		lw	$16,16($sp) 215 0194 0800E003 		j	$31 216 0198 2800BD27 		addiu	$sp,$sp,40 217              	GAS LISTING /tmp/ccqM27O3.s 			page 6 218              	$L27: 219              	$LBB5:  65:/mnt/hgfs/boot/booter/source/delay.c **** 				;  66:/mnt/hgfs/boot/booter/source/delay.c **** 		}  67:/mnt/hgfs/boot/booter/source/delay.c **** 		else  68:/mnt/hgfs/boot/booter/source/delay.c **** 		{  69:/mnt/hgfs/boot/booter/source/delay.c **** 			/* Count must rollover */  70:/mnt/hgfs/boot/booter/source/delay.c **** 			while (cp0RdCount() > later) 220              		.loc 1 70 0 221 019c 0000000C 		jal	cp0RdCount 222 01a0 00000000 		nop 223              	 224 01a4 2B100202 		sltu	$2,$16,$2 225 01a8 FCFF4014 		bne	$2,$0,$L27 226 01ac 00000000 		nop 227              	 228              	$L29:  71:/mnt/hgfs/boot/booter/source/delay.c **** 				;  72:/mnt/hgfs/boot/booter/source/delay.c ****   73:/mnt/hgfs/boot/booter/source/delay.c **** 			while (cp0RdCount() < later) 229              		.loc 1 73 0 230 01b0 0000000C 		jal	cp0RdCount 231 01b4 00000000 		nop 232              	 233 01b8 2B105000 		sltu	$2,$2,$16 234 01bc ECFF4010 		beq	$2,$0,$L22 235 01c0 00000000 		nop 236              	 237 01c4 0000000C 		jal	cp0RdCount 238 01c8 00000000 		nop 239              	 240 01cc 2B105000 		sltu	$2,$2,$16 241 01d0 F7FF4014 		bne	$2,$0,$L29 242 01d4 00000000 		nop 243              	 244              		.loc 1 57 0 245 01d8 5D000008 		j	$L35 246 01dc 01003126 		addiu	$17,$17,1 247              	 248              	$LBE5: 249              		.set	macro 250              		.set	reorder 251              	$LFE3: 252              		.end	msdelay 253              		.section	.debug_frame,"",@progbits 254              	$Lframe0: 255 0000 0C000000 		.4byte	$LECIE0-$LSCIE0 256              	$LSCIE0: 257 0004 FFFFFFFF 		.4byte	0xffffffff 258 0008 01       		.byte	0x1 259 0009 00       		.ascii	"\000" 260 000a 01       		.uleb128 0x1 261 000b 04       		.sleb128 4 262 000c 1F       		.byte	0x1f 263 000d 0C       		.byte	0xc 264 000e 1D       		.uleb128 0x1d 265 000f 00       		.uleb128 0x0GAS LISTING /tmp/ccqM27O3.s 			page 7 266              		.align	2 267              	$LECIE0: 268              	$LSFDE0: 269 0010 20000000 		.4byte	$LEFDE0-$LASFDE0 270              	$LASFDE0: 271 0014 00000000 		.4byte	$Lframe0 272 0018 00000000 		.4byte	$LFB2 273 001c F4000000 		.4byte	$LFE2-$LFB2 274 0020 44       		.byte	0x4 275              		.4byte	$LCFI0-$LFB2 276 0021 0E       		.byte	0xe 277 0022 28       		.uleb128 0x28 278 0023 54       		.byte	0x4 279              		.4byte	$LCFI5-$LCFI0

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -