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

📄 ddma2.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
  93:/mnt/hgfs/boot/booter/source/ddma2.c **** { 195              		.loc 1 93 0 196              		.frame	$sp,32,$31		# vars= 0, regs= 3/0, args= 16, gp= 0 197              		.mask	0x80030000,-8 198              		.fmask	0x00000000,0 199              		.set	noreorder 200              		.set	nomacro 201              		 202 00ec E0FFBD27 		addiu	$sp,$sp,-32 203              	$LCFI0: 204 00f0 1400B1AF 		sw	$17,20($sp) 205              	$LCFI1: 206 00f4 1000B0AF 		sw	$16,16($sp) 207              	$LCFI2: 208 00f8 21888000 		move	$17,$4 209 00fc 1800BFAF 		sw	$31,24($sp) 210              	$LCFI3: 211              		.loc 1 93 0  94:/mnt/hgfs/boot/booter/source/ddma2.c **** 	CHANNEL_ID id;  95:/mnt/hgfs/boot/booter/source/ddma2.c **** 	/* Find an available channel for use */  96:/mnt/hgfs/boot/booter/source/ddma2.c **** 	  97:/mnt/hgfs/boot/booter/source/ddma2.c **** 	id = ddma2_get_next_channel(); 212              		.loc 1 97 0 213 0100 0000000C 		jal	ddma2_get_next_channel 214 0104 2180A000 		move	$16,$5 215              	  98:/mnt/hgfs/boot/booter/source/ddma2.c ****   99:/mnt/hgfs/boot/booter/source/ddma2.c **** 	if(id != CHANNEL_INVALID) 100:/mnt/hgfs/boot/booter/source/ddma2.c **** 	{ 101:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[id].avail = FALSE; 216              		.loc 1 101 0 217 0108 40200200 		sll	$4,$2,1 218 010c 21208200 		addu	$4,$4,$2 219 0110 0000033C 		lui	$3,%hi(channels) 220 0114 00210400 		sll	$4,$4,4 221 0118 00006324 		addiu	$3,$3,%lo(channels) 222              		.loc 1 99 0 223 011c FFFF0524 		li	$5,-1			# 0xffffffffffffffff 224              		.loc 1 101 0 225              		.loc 1 99 0 226 0120 04004510 		beq	$2,$5,$L16 227 0124 21208300 		addu	$4,$4,$3 228              	 102:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[id].callback = callback; 103:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[id].callback_arg = callback_arg; 229              		.loc 1 103 0 230 0128 1C0090AC 		sw	$16,28($4) 231              		.loc 1 102 0 232 012c 180091AC 		sw	$17,24($4) 233              		.loc 1 101 0 234 0130 040080AC 		sw	$0,4($4)GAS LISTING /tmp/ccSUImwK.s 			page 7 235              	$L16: 104:/mnt/hgfs/boot/booter/source/ddma2.c **** 	} 105:/mnt/hgfs/boot/booter/source/ddma2.c ****  106:/mnt/hgfs/boot/booter/source/ddma2.c **** 	return id; 107:/mnt/hgfs/boot/booter/source/ddma2.c **** } 236              		.loc 1 107 0 237 0134 1800BF8F 		lw	$31,24($sp) 238 0138 1400B18F 		lw	$17,20($sp) 239 013c 1000B08F 		lw	$16,16($sp) 240 0140 0800E003 		j	$31 241 0144 2000BD27 		addiu	$sp,$sp,32 242              	 243              		.set	macro 244              		.set	reorder 245              	$LFE9: 246              		.end	ddma2_request_channel 247              		.align	2 248              		.globl	ddma2_free_channel 249              		.ent	ddma2_free_channel 250              		.type	ddma2_free_channel, @function 251              	ddma2_free_channel: 252              	$LFB10: 108:/mnt/hgfs/boot/booter/source/ddma2.c ****  109:/mnt/hgfs/boot/booter/source/ddma2.c **** int ddma2_free_channel(CHANNEL_ID id) 110:/mnt/hgfs/boot/booter/source/ddma2.c **** { 253              		.loc 1 110 0 254              		.frame	$sp,32,$31		# vars= 0, regs= 3/0, args= 16, gp= 0 255              		.mask	0x80030000,-8 256              		.fmask	0x00000000,0 257              		.set	noreorder 258              		.set	nomacro 259              		 260 0148 E0FFBD27 		addiu	$sp,$sp,-32 261              	$LCFI4: 262 014c 1800BFAF 		sw	$31,24($sp) 263              	$LCFI5: 264 0150 1400B1AF 		sw	$17,20($sp) 265              	$LCFI6: 266 0154 1000B0AF 		sw	$16,16($sp) 267              	$LCFI7: 111:/mnt/hgfs/boot/booter/source/ddma2.c **** 	ddma->inten &= ddma->inten & ~(1 << id); 268              		.loc 1 111 0 269 0158 0000023C 		lui	$2,%hi(ddma) 270 015c 0000468C 		lw	$6,%lo(ddma)($2) 271 0160 01001124 		li	$17,1			# 0x1 272 0164 04109100 		sll	$2,$17,$4 273 0168 0C10C58C 		lw	$5,4108($6) 274 016c 0C10C38C 		lw	$3,4108($6) 275 0170 27100200 		nor	$2,$0,$2 276 0174 2428A200 		and	$5,$5,$2 277 0178 24186500 		and	$3,$3,$5 278              		.loc 1 110 0 279 017c 21808000 		move	$16,$4 280              		.loc 1 111 0 281 0180 0C10C3AC 		sw	$3,4108($6) 112:/mnt/hgfs/boot/booter/source/ddma2.c ****  113:/mnt/hgfs/boot/booter/source/ddma2.c **** 	ddma2_disable_channel(id);GAS LISTING /tmp/ccSUImwK.s 			page 8 282              		.loc 1 113 0 283 0184 0000000C 		jal	ddma2_disable_channel 284 0188 00000000 		nop 285              	 114:/mnt/hgfs/boot/booter/source/ddma2.c ****  115:/mnt/hgfs/boot/booter/source/ddma2.c **** 	channels[id].avail 			= TRUE; 286              		.loc 1 115 0 287 018c 40181000 		sll	$3,$16,1 288 0190 21187000 		addu	$3,$3,$16 289 0194 0000023C 		lui	$2,%hi(channels) 290 0198 00004224 		addiu	$2,$2,%lo(channels) 291 019c 00190300 		sll	$3,$3,4 292 01a0 21186200 		addu	$3,$3,$2 293 01a4 040071AC 		sw	$17,4($3) 116:/mnt/hgfs/boot/booter/source/ddma2.c **** 	channels[id].d_head			= NULL; 117:/mnt/hgfs/boot/booter/source/ddma2.c **** 	channels[id].d_tail			= NULL; 118:/mnt/hgfs/boot/booter/source/ddma2.c **** 	channels[id].ptr->cfg 		= 0; 294              		.loc 1 118 0 295 01a8 0000648C 		lw	$4,0($3) 119:/mnt/hgfs/boot/booter/source/ddma2.c ****  120:/mnt/hgfs/boot/booter/source/ddma2.c **** 	return 0; 121:/mnt/hgfs/boot/booter/source/ddma2.c **** } 296              		.loc 1 121 0 297 01ac 1800BF8F 		lw	$31,24($sp) 298 01b0 1400B18F 		lw	$17,20($sp) 299 01b4 1000B08F 		lw	$16,16($sp) 300 01b8 21100000 		move	$2,$0 301 01bc 2000BD27 		addiu	$sp,$sp,32 302              		.loc 1 116 0 303 01c0 0C0060AC 		sw	$0,12($3) 304              		.loc 1 118 0 305 01c4 000080AC 		sw	$0,0($4) 306              		.loc 1 117 0 307              		.loc 1 121 0 308 01c8 0800E003 		j	$31 309 01cc 100060AC 		sw	$0,16($3) 310              	 311              		.set	macro 312              		.set	reorder 313              	$LFE10: 314              		.end	ddma2_free_channel 315              		.align	2 316              		.globl	ddma2_irq_lock 317              		.ent	ddma2_irq_lock 318              		.type	ddma2_irq_lock, @function 319              	ddma2_irq_lock: 320              	$LFB11: 122:/mnt/hgfs/boot/booter/source/ddma2.c ****  123:/mnt/hgfs/boot/booter/source/ddma2.c **** unsigned long flags = 0; 124:/mnt/hgfs/boot/booter/source/ddma2.c ****  125:/mnt/hgfs/boot/booter/source/ddma2.c **** void inline ddma2_irq_lock(CHANNEL_ID id) 126:/mnt/hgfs/boot/booter/source/ddma2.c **** { 321              		.loc 1 126 0 322              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 323              		.mask	0x00000000,0 324              		.fmask	0x00000000,0 325              		.set	noreorderGAS LISTING /tmp/ccSUImwK.s 			page 9 326              		.set	nomacro 327              		 328              		.loc 1 126 0 329 01d0 0800E003 		j	$31 330 01d4 00000000 		nop 331              	 332              		.set	macro 333              		.set	reorder 334              	$LFE11: 335              		.end	ddma2_irq_lock 336              		.align	2 337              		.globl	ddma2_irq_unlock 338              		.ent	ddma2_irq_unlock 339              		.type	ddma2_irq_unlock, @function 340              	ddma2_irq_unlock: 341              	$LFB12: 127:/mnt/hgfs/boot/booter/source/ddma2.c **** 	//spin_lock_irqsave(&channels[id].descriptor_lock, flags); 128:/mnt/hgfs/boot/booter/source/ddma2.c **** } 129:/mnt/hgfs/boot/booter/source/ddma2.c ****  130:/mnt/hgfs/boot/booter/source/ddma2.c **** void inline ddma2_irq_unlock(CHANNEL_ID id) 131:/mnt/hgfs/boot/booter/source/ddma2.c **** { 342              		.loc 1 131 0 343              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 344              		.mask	0x00000000,0 345              		.fmask	0x00000000,0 346              		.set	noreorder 347              		.set	nomacro 348              		 349              		.loc 1 131 0 350 01d8 0800E003 		j	$31 351 01dc 00000000 		nop 352              	 353              		.set	macro 354              		.set	reorder 355              	$LFE12: 356              		.end	ddma2_irq_unlock 357              		.align	2 358              		.globl	ddma2_get_next_descriptor 359              		.ent	ddma2_get_next_descriptor 360              		.type	ddma2_get_next_descriptor, @function 361              	ddma2_get_next_descriptor: 362              	$LFB13: 132:/mnt/hgfs/boot/booter/source/ddma2.c **** 	//spin_unlock_irqrestore(&channels[id].descriptor_lock, flags); 133:/mnt/hgfs/boot/booter/source/ddma2.c **** } 134:/mnt/hgfs/boot/booter/source/ddma2.c ****  135:/mnt/hgfs/boot/booter/source/ddma2.c **** DDMA_DESCRIPTOR* ddma2_get_next_descriptor(CHANNEL_ID id) 136:/mnt/hgfs/boot/booter/source/ddma2.c **** { 363              		.loc 1 136 0 364              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 365              		.mask	0x00000000,0 366              		.fmask	0x00000000,0 367              		.set	noreorder 368              		.set	nomacro 369              		 137:/mnt/hgfs/boot/booter/source/ddma2.c **** 	return (DDMA_DESCRIPTOR*) channels[id].ptr->des_ptr; 370              		.loc 1 137 0 371 01e0 40100400 		sll	$2,$4,1GAS LISTING /tmp/ccSUImwK.s 			page 10 372 01e4 21104400 		addu	$2,$2,$4 373 01e8 0000033C 		lui	$3,%hi(channels) 374 01ec 00006324 		addiu	$3,$3,%lo(channels) 375 01f0 00110200 		sll	$2,$2,4 376 01f4 21104300 		addu	$2,$2,$3 377 01f8 0000448C 		lw	$4,0($2) 378 01fc 0400828C 		lw	$2,4($4) 138:/mnt/hgfs/boot/booter/source/ddma2.c **** } 379              		.loc 1 138 0 380 0200 0800E003 		j	$31 381 0204 00000000 		nop 382              	 383              		.set	macro 384              		.set	reorder 385              	$LFE13: 386              		.end	ddma2_get_next_descriptor 387              		.align	2 388              		.globl	ddma2_set_status_pointer 389              		.ent	ddma2_set_status_pointer 390              		.type	ddma2_set_status_pointer, @function 391              	ddma2_set_status_pointer: 392              	$LFB14: 139:/mnt/hgfs/boot/booter/source/ddma2.c ****  140:/mnt/hgfs/boot/booter/source/ddma2.c **** void ddma2_set_status_pointer(CHANNEL_ID id, uint32* status) 141:/mnt/hgfs/boot/booter/source/ddma2.c **** { 393              		.loc 1 141 0 394              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 395              		.mask	0x00000000,0 396              		.fmask	0x00000000,0 397              		.set	noreorder 398              		.set	nomacro 399              		 142:/mnt/hgfs/boot/booter/source/ddma2.c **** 	channels[id].ptr->stat_ptr = (uint32) status; 400              		.loc 1 142 0 401 0208 40100400 		sll	$2,$4,1 402 020c 21104400 		addu	$2,$2,$4 403 0210 0000033C 		lui	$3,%hi(channels) 404 0214 00110200 		sll	$2,$2,4 405 0218 00006324 		addiu	$3,$3,%lo(channels) 406 021c 21104300 		addu	$2,$2,$3 407 0220 0000448C 		lw	$4,0($2) 408 0224 080085AC 		sw	$5,8($4) 409 0228 0800E003 		j	$31 410 022c 00000000 		nop 411              	 412              		.set	macro 413              		.set	reorder 414              	$LFE14: 415              		.end	ddma2_set_status_pointer 416              		.align	2 417              		.globl	ddma2_get_channel_status 418              		.ent	ddma2_get_channel_status 419              		.type	ddma2_get_channel_status, @function 420              	ddma2_get_channel_status: 421              	$LFB15: 143:/mnt/hgfs/boot/booter/source/ddma2.c **** } 144:/mnt/hgfs/boot/booter/source/ddma2.c **** GAS LISTING /tmp/ccSUImwK.s 			page 11 145:/mnt/hgfs/boot/booter/source/ddma2.c **** uint32 ddma2_get_channel_status(CHANNEL_ID id) 146:/mnt/hgfs/boot/booter/source/ddma2.c **** { 422              		.loc 1 146 0 423              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 424              		.mask	0x00000000,0 425              		.fmask	0x00000000,0 426              		.set	noreorder 427              		.set	nomacro 428              		 147:/mnt/hgfs/boot/booter/source/ddma2.c **** 	return *((uint32*) KSEG1(channels[id].ptr->stat_ptr)); 429              		.loc 1 147 0 430 0230 40100400 		sll	$2,$4,1 431 0234 21104400 		addu	$2,$2,$4 432 0238 0000033C 		lui	$3,%hi(channels) 433 023c 00006324 		addiu	$3,$3,%lo(channels)

⌨️ 快捷键说明

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