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

📄 irq.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 564              	 565              	$LBE21: 566              		.loc 1 494 0 567 032c 0000023C 		lui	$2,%hi(irqDispatch) 568              	$L76: 569 0330 80181000 		sll	$3,$16,2 570 0334 00004224 		addiu	$2,$2,%lo(irqDispatch) 571 0338 21186200 		addu	$3,$3,$2 572 033c C2000008 		j	$L56 573 0340 000060AC 		sw	$0,0($3) 574              	 575              	$L66: 576              	$LBB22: 577              		.loc 1 478 0 578 0344 D8FF0326 		addiu	$3,$16,-40 579              		.loc 1 480 0GAS LISTING /tmp/ccsUu95n.s 			page 20 580 0348 04186400 		sll	$3,$4,$3 581              		.loc 1 483 0 582 034c 540043AC 		sw	$3,84($2) 583              		.loc 1 484 0 584 0350 4C0043AC 		sw	$3,76($2) 585              		.loc 1 485 0 586 0354 440043AC 		sw	$3,68($2) 587              		.loc 1 488 0 588 0358 740043AC 		sw	$3,116($2) 589              		.loc 1 491 0 590 035c 6C0043AC 		sw	$3,108($2) 591              		.loc 1 494 0 592 0360 BE000008 		j	$L75 593 0364 0000023C 		lui	$2,%hi(irqDispatch) 594              	 595              	$L71: 596              	$LBE22: 597              	$LBB23: 598              		.loc 1 432 0 599 0368 0000000C 		jal	cp0RdStatus 600 036c 00000000 		nop 601              	 602              		.loc 1 434 0 603 0370 FFFD0424 		li	$4,-513			# 0xfffffffffffffdff 604              	$LBE23: 605              	$LBB24: 606              		.loc 1 450 0 607 0374 0000000C 		jal	cp0WrStatus 608 0378 24204400 		and	$4,$2,$4 609              	 610              		.loc 1 494 0 611 037c CC000008 		j	$L76 612 0380 0000023C 		lui	$2,%hi(irqDispatch) 613              	 614              	$L72: 615              	$LBE24: 616              	$LBB25: 617              		.loc 1 440 0 618 0384 0000000C 		jal	cp0RdStatus 619 0388 00000000 		nop 620              	 621              		.loc 1 442 0 622 038c FFBF0424 		li	$4,-16385			# 0xffffffffffffbfff 623              	$LBE25: 624              	$LBB26: 625              		.loc 1 450 0 626 0390 0000000C 		jal	cp0WrStatus 627 0394 24204400 		and	$4,$2,$4 628              	 629              		.loc 1 494 0 630 0398 CC000008 		j	$L76 631 039c 0000023C 		lui	$2,%hi(irqDispatch) 632              	 633              	$L73: 634              		.loc 1 448 0 635 03a0 0000000C 		jal	cp0RdStatus 636 03a4 00000000 		nopGAS LISTING /tmp/ccsUu95n.s 			page 21 637              	 638              		.loc 1 450 0 639 03a8 FFFF043C 		li	$4,-65536			# 0xffffffffffff0000 640 03ac FF7F8434 		ori	$4,$4,0x7fff 641 03b0 0000000C 		jal	cp0WrStatus 642 03b4 24204400 		and	$4,$2,$4 643              	 644              		.loc 1 494 0 645 03b8 CC000008 		j	$L76 646 03bc 0000023C 		lui	$2,%hi(irqDispatch) 647              	 648              	$LBE26: 649              		.set	macro 650              		.set	reorder 651              	$LFE3: 652              		.end	cpuIrqDisable 653              		.align	2 654              		.globl	cpuIrqInit 655              		.ent	cpuIrqInit 656              		.type	cpuIrqInit, @function 657              	cpuIrqInit: 658              	$LFB4: 496:/mnt/hgfs/boot/booter/source/irq.c ****  497:/mnt/hgfs/boot/booter/source/irq.c **** /********************************************************************/ 498:/mnt/hgfs/boot/booter/source/irq.c **** void 499:/mnt/hgfs/boot/booter/source/irq.c **** cpuIrqInit (void) 500:/mnt/hgfs/boot/booter/source/irq.c **** { 659              		.loc 1 500 0 660              		.frame	$sp,24,$31		# vars= 0, regs= 1/0, args= 16, gp= 0 661              		.mask	0x80000000,-8 662              		.fmask	0x00000000,0 663              		.set	noreorder 664              		.set	nomacro 665              		 501:/mnt/hgfs/boot/booter/source/irq.c **** 	extern uint32 asmIrqHandler[]; 502:/mnt/hgfs/boot/booter/source/irq.c **** 	extern uint32 asmIrqHandlerEnd[]; 503:/mnt/hgfs/boot/booter/source/irq.c ****  504:/mnt/hgfs/boot/booter/source/irq.c **** 	uint32 *v = (uint32 *)0x80000200; 666              		.loc 1 504 0 667 03c0 0080023C 		li	$2,-2147483648			# 0xffffffff80000000 668              		.loc 1 500 0 669 03c4 E8FFBD27 		addiu	$sp,$sp,-24 670              	$LCFI9: 671              		.loc 1 504 0 672 03c8 00024834 		ori	$8,$2,0x200 673 03cc 0000033C 		lui	$3,%hi(irqDispatch) 674 03d0 0000023C 		lui	$2,%hi(irqArgument) 675              		.loc 1 500 0 676 03d4 1000BFAF 		sw	$31,16($sp) 677              	$LCFI10: 678 03d8 00006724 		addiu	$7,$3,%lo(irqDispatch) 679 03dc 20014624 		addiu	$6,$2,%lo(irqArgument) 505:/mnt/hgfs/boot/booter/source/irq.c **** 	uint32 *p, *q; 506:/mnt/hgfs/boot/booter/source/irq.c **** 	int irq; 507:/mnt/hgfs/boot/booter/source/irq.c ****  508:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 509:/mnt/hgfs/boot/booter/source/irq.c **** 	 * NULL dispatch tableGAS LISTING /tmp/ccsUu95n.s 			page 22 510:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 511:/mnt/hgfs/boot/booter/source/irq.c **** 	for (irq = 0; irq < 64; ++irq) 680              		.loc 1 511 0 681 03e0 21280000 		move	$5,$0 682              	$L81: 512:/mnt/hgfs/boot/booter/source/irq.c **** 	{ 513:/mnt/hgfs/boot/booter/source/irq.c **** 		irqDispatch[irq] = NULL; 683              		.loc 1 513 0 684 03e4 80100500 		sll	$2,$5,2 685              		.loc 1 511 0 686 03e8 0100A524 		addiu	$5,$5,1 514:/mnt/hgfs/boot/booter/source/irq.c **** 		irqArgument[irq] = NULL; 687              		.loc 1 514 0 688 03ec 21204600 		addu	$4,$2,$6 689              		.loc 1 511 0 690 03f0 4000A328 		slt	$3,$5,64 691              		.loc 1 513 0 692 03f4 21104700 		addu	$2,$2,$7 693 03f8 000040AC 		sw	$0,0($2) 694              		.loc 1 514 0 695              		.loc 1 511 0 696 03fc F9FF6014 		bne	$3,$0,$L81 697 0400 000080AC 		sw	$0,0($4) 698              	 515:/mnt/hgfs/boot/booter/source/irq.c **** 	} 516:/mnt/hgfs/boot/booter/source/irq.c ****  517:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 518:/mnt/hgfs/boot/booter/source/irq.c **** 	 * Install simple IRQ handler. 519:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 520:/mnt/hgfs/boot/booter/source/irq.c **** 	p = asmIrqHandler; 699              		.loc 1 520 0 700 0404 0000023C 		lui	$2,%hi(asmIrqHandler) 521:/mnt/hgfs/boot/booter/source/irq.c **** 	q = asmIrqHandlerEnd; 701              		.loc 1 521 0 702 0408 0000033C 		lui	$3,%hi(asmIrqHandlerEnd) 703              		.loc 1 520 0 704 040c 00004424 		addiu	$4,$2,%lo(asmIrqHandler) 705              		.loc 1 521 0 706 0410 00006524 		addiu	$5,$3,%lo(asmIrqHandlerEnd) 707              	$L82: 522:/mnt/hgfs/boot/booter/source/irq.c **** 	do 523:/mnt/hgfs/boot/booter/source/irq.c **** 	{ 524:/mnt/hgfs/boot/booter/source/irq.c **** 		*v++ = *p++; 708              		.loc 1 524 0 709 0414 0000828C 		lw	$2,0($4) 710 0418 04008424 		addiu	$4,$4,4 525:/mnt/hgfs/boot/booter/source/irq.c **** 	} while (p < q); 711              		.loc 1 525 0 712 041c 2B188500 		sltu	$3,$4,$5 713              		.loc 1 524 0 714 0420 000002AD 		sw	$2,0($8) 715              		.loc 1 525 0 716 0424 FBFF6014 		bne	$3,$0,$L82 717 0428 04000825 		addiu	$8,$8,4 718              	 526:/mnt/hgfs/boot/booter/source/irq.c **** 	dcacheFlush(); 719              		.loc 1 526 0GAS LISTING /tmp/ccsUu95n.s 			page 23 720 042c 0000000C 		jal	dcacheFlush 721 0430 00000000 		nop 722              	 527:/mnt/hgfs/boot/booter/source/irq.c **** 	icacheFlush(); 723              		.loc 1 527 0 724 0434 0000000C 		jal	icacheFlush 725 0438 00000000 		nop 726              	 528:/mnt/hgfs/boot/booter/source/irq.c ****  529:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 530:/mnt/hgfs/boot/booter/source/irq.c **** 	 * Point Status[BEV] into RAM at 0x80000000 531:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 532:/mnt/hgfs/boot/booter/source/irq.c **** 	cp0WrStatus(cp0RdStatus() & ~STATUS_BEV); 727              		.loc 1 532 0 728 043c 0000000C 		jal	cp0RdStatus 729 0440 00000000 		nop 730              	 731 0444 BFFF043C 		li	$4,-4259840			# 0xffffffffffbf0000 732 0448 FFFF8434 		ori	$4,$4,0xffff 733 044c 0000000C 		jal	cp0WrStatus 734 0450 24204400 		and	$4,$2,$4 735              	 533:/mnt/hgfs/boot/booter/source/irq.c ****  534:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 535:/mnt/hgfs/boot/booter/source/irq.c **** 	 * Point interrupt vector to 0x80000200 536:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 537:/mnt/hgfs/boot/booter/source/irq.c **** 	cp0WrCause(cp0RdCause() | CAUSE_IV); 736              		.loc 1 537 0 737 0454 0000000C 		jal	cp0RdCause 738 0458 00000000 		nop 739              	 740 045c 8000043C 		li	$4,8388608			# 0x800000 741 0460 0000000C 		jal	cp0WrCause 742 0464 25204400 		or	$4,$2,$4 743              	 538:/mnt/hgfs/boot/booter/source/irq.c ****  539:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 540:/mnt/hgfs/boot/booter/source/irq.c **** 	 * Set IC0 to known state (no IRQs allowed) 541:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 542:/mnt/hgfs/boot/booter/source/irq.c **** 	 543:/mnt/hgfs/boot/booter/source/irq.c **** 	/* config[012]: interrupts disabled */ 544:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->cfg0clr = ~0; 545:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->cfg1clr = ~0; 546:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->cfg2clr = ~0; 547:/mnt/hgfs/boot/booter/source/irq.c ****  548:/mnt/hgfs/boot/booter/source/irq.c **** 	/* source_set: Irq fro peripheral signal */ 549:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->srcset = ~0; 550:/mnt/hgfs/boot/booter/source/irq.c ****  551:/mnt/hgfs/boot/booter/source/irq.c **** 	/* assign_request: Irq onto request 0 */ 552:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->assignset = ~0; 553:/mnt/hgfs/boot/booter/source/irq.c ****  554:/mnt/hgfs/boot/booter/source/irq.c **** 	/* mask: all irqs asked off */ 555:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->maskclr = ~0; 556:/mnt/hgfs/boot/booter/source/irq.c ****  557:/mnt/hgfs/boot/booter/source/irq.c **** 	/* wakeup: no irqs wakeup */ 558:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->wakeclr = ~0; 559:/mnt/hgfs/boot/booter/source/irq.c **** GAS LISTING /tmp/ccsUu95n.s 			page 24 560:/mnt/hgfs/boot/booter/source/irq.c **** 	/* rising_edge: ack all previous irqs */ 561:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->risingclr = ~0; 562:/mnt/hgfs/boot/booter/source/irq.c ****  563:/mnt/hgfs/boot/booter/source/irq.c **** 	/* falling_edge: ack all previous irqs */ 564:/mnt/hgfs/boot/booter/source/irq.c **** 	ic0->fallingclr = ~0; 565:/mnt/hgfs/boot/booter/source/irq.c ****  566:/mnt/hgfs/boot/booter/source/irq.c ****  567:/mnt/hgfs/boot/booter/source/irq.c **** 	/* 568:/mnt/hgfs/boot/booter/source/irq.c **** 	 * Set IC1 to known state (no IRQs allowed) 569:/mnt/hgfs/boot/booter/source/irq.c **** 	 */ 570:/mnt/hgfs/boot/booter/source/irq.c ****  571:/mnt/hgfs/boot/booter/source/irq.c **** 	/* config[012]: interrupts disabled */ 572:/mnt/hgfs/boot/booter/source/irq.c **** 	ic1->cfg0clr = ~0; 573:/mnt/hgfs/boot/booter/source/irq.c **** 	ic1->cfg1clr = ~0; 574:/mnt/hgfs/boot/booter/source/irq.c **** 	ic1->cfg2clr = ~0; 575:/mnt/hgfs/boot/booter/source/irq.c ****  576:/mnt/hgfs/boot/booter/source/irq.c **** 	/* source_set: Irq fro peripheral signal */ 577:/mnt/hgfs/boot/booter/source/irq.c **** 	ic1->srcset = ~0; 578:/mnt/hgfs/boot/booter/sou

⌨️ 快捷键说明

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