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

📄 ddma2.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
 887              		.loc 1 276 0 888 0578 0000438E 		lw	$3,%lo(ddma)($18) 889 057c 002A1000 		sll	$5,$16,8 277:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[i].avail 			= TRUE; 278:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[i].d_head			= NULL; 279:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[i].d_tail			= NULL; 280:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[i].ptr->cfg 		= 0; 281:/mnt/hgfs/boot/booter/source/ddma2.c **** 		channels[i].ptr->stat_ptr	= CPHYSADDR(&channels[i].status); 890              		.loc 1 281 0 891 0580 21103602 		addu	$2,$17,$22 892              		.loc 1 276 0 893 0584 2128A300 		addu	$5,$5,$3 894              		.loc 1 281 0 895 0588 24105500 		and	$2,$2,$21 896              		.loc 1 276 0 897 058c 21183402 		addu	$3,$17,$20 898              		.loc 1 277 0 899 0590 040073AC 		sw	$19,4($3) 282:/mnt/hgfs/boot/booter/source/ddma2.c **** 		 283:/mnt/hgfs/boot/booter/source/ddma2.c **** 		ddma2_disable_channel(i); 900              		.loc 1 283 0 901 0594 21200002 		move	$4,$16 902              		.loc 1 280 0 903 0598 0000A0AC 		sw	$0,0($5)GAS LISTING /tmp/ccSUImwK.s 			page 22 904              		.loc 1 274 0 905 059c 01001026 		addiu	$16,$16,1 906              		.loc 1 281 0 907 05a0 0800A2AC 		sw	$2,8($5) 908              		.loc 1 279 0 909 05a4 100060AC 		sw	$0,16($3) 910              		.loc 1 276 0 911 05a8 000065AC 		sw	$5,0($3) 912              		.loc 1 278 0 913              		.loc 1 283 0 914 05ac 0000000C 		jal	ddma2_disable_channel 915 05b0 0C0060AC 		sw	$0,12($3) 916              	 917              		.loc 1 274 0 918 05b4 1000022A 		slt	$2,$16,16 919 05b8 EFFF4014 		bne	$2,$0,$L56 920 05bc 30003126 		addiu	$17,$17,48 921              	 284:/mnt/hgfs/boot/booter/source/ddma2.c **** 		//spin_lock_init( &channels[i].descriptor_lock ); 285:/mnt/hgfs/boot/booter/source/ddma2.c **** 	} 286:/mnt/hgfs/boot/booter/source/ddma2.c ****  287:/mnt/hgfs/boot/booter/source/ddma2.c **** 	/* Let the user specify the ddma config settings */ 288:/mnt/hgfs/boot/booter/source/ddma2.c **** 	ddma->config = 0; 922              		.loc 1 288 0 923 05c0 0000428E 		lw	$2,%lo(ddma)($18) 289:/mnt/hgfs/boot/booter/source/ddma2.c ****  290:/mnt/hgfs/boot/booter/source/ddma2.c **** 	/* Disable all channel interrupts */ 291:/mnt/hgfs/boot/booter/source/ddma2.c **** 	ddma->inten = 0; 292:/mnt/hgfs/boot/booter/source/ddma2.c ****  293:/mnt/hgfs/boot/booter/source/ddma2.c **** 	/* Install the generic DDMA interrupt handler */ 294:/mnt/hgfs/boot/booter/source/ddma2.c ****  295:/mnt/hgfs/boot/booter/source/ddma2.c **** 	cpuIrqDisable(IRQ_DDMA); 924              		.loc 1 295 0 925 05c4 0B000424 		li	$4,11			# 0xb 926              		.loc 1 288 0 927 05c8 001040AC 		sw	$0,4096($2) 928              		.loc 1 291 0 929 05cc 0C1040AC 		sw	$0,4108($2) 930              		.loc 1 295 0 931 05d0 0000000C 		jal	cpuIrqDisable 932 05d4 00000000 		nop 933              	 296:/mnt/hgfs/boot/booter/source/ddma2.c **** 	cpuIrqEnable( IRQ_DDMA, INT_HIGH_LEVEL, ddma2_interrupt, channels ); 934              		.loc 1 296 0 935 05d8 0000063C 		lui	$6,%hi(ddma2_interrupt) 936 05dc 0000E726 		addiu	$7,$23,%lo(channels) 937 05e0 0000C624 		addiu	$6,$6,%lo(ddma2_interrupt) 938 05e4 0B000424 		li	$4,11			# 0xb 939 05e8 0000000C 		jal	cpuIrqEnable 940 05ec 01000524 		li	$5,1			# 0x1 941              	 297:/mnt/hgfs/boot/booter/source/ddma2.c ****  298:/mnt/hgfs/boot/booter/source/ddma2.c **** 	return 1; 299:/mnt/hgfs/boot/booter/source/ddma2.c **** } 942              		.loc 1 299 0 943 05f0 3000BF8F 		lw	$31,48($sp) 944 05f4 2C00B78F 		lw	$23,44($sp)GAS LISTING /tmp/ccSUImwK.s 			page 23 945 05f8 2800B68F 		lw	$22,40($sp) 946 05fc 2400B58F 		lw	$21,36($sp) 947 0600 2000B48F 		lw	$20,32($sp) 948 0604 1C00B38F 		lw	$19,28($sp) 949 0608 1800B28F 		lw	$18,24($sp) 950 060c 1400B18F 		lw	$17,20($sp) 951 0610 1000B08F 		lw	$16,16($sp) 952 0614 01000224 		li	$2,1			# 0x1 953 0618 0800E003 		j	$31 954 061c 3800BD27 		addiu	$sp,$sp,56 955              	 956              		.set	macro 957              		.set	reorder 958              	$LFE21: 959              		.end	ddma2_init 960              		.align	2 961              		.globl	ddma2_get_byte_count 962              		.ent	ddma2_get_byte_count 963              		.type	ddma2_get_byte_count, @function 964              	ddma2_get_byte_count: 965              	$LFB22: 300:/mnt/hgfs/boot/booter/source/ddma2.c ****  301:/mnt/hgfs/boot/booter/source/ddma2.c ****  302:/mnt/hgfs/boot/booter/source/ddma2.c **** int ddma2_get_byte_count(CHANNEL_ID id) 303:/mnt/hgfs/boot/booter/source/ddma2.c **** { 966              		.loc 1 303 0 967              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 968              		.mask	0x00000000,0 969              		.fmask	0x00000000,0 970              		.set	noreorder 971              		.set	nomacro 972              		 304:/mnt/hgfs/boot/booter/source/ddma2.c **** 	if(id != CHANNEL_INVALID) 305:/mnt/hgfs/boot/booter/source/ddma2.c **** 	{ 306:/mnt/hgfs/boot/booter/source/ddma2.c **** 		return channels[id].ptr->bytecnt; 973              		.loc 1 306 0 974 0620 40180400 		sll	$3,$4,1 975 0624 21186400 		addu	$3,$3,$4 976 0628 0000023C 		lui	$2,%hi(channels) 977 062c 00190300 		sll	$3,$3,4 978 0630 00004224 		addiu	$2,$2,%lo(channels) 979              		.loc 1 304 0 980 0634 FFFF0524 		li	$5,-1			# 0xffffffffffffffff 981              		.loc 1 306 0 982              		.loc 1 304 0 983 0638 03008510 		beq	$4,$5,$L62 984 063c 21106200 		addu	$2,$3,$2 985              	 986              		.loc 1 306 0 987 0640 0000428C 		lw	$2,0($2) 988 0644 1800428C 		lw	$2,24($2) 989              	$L62: 990 0648 0800E003 		j	$31 991 064c 00000000 		nop 992              	 993              		.set	macro 994              		.set	reorderGAS LISTING /tmp/ccSUImwK.s 			page 24 995              	$LFE22: 996              		.end	ddma2_get_byte_count 997              		.align	2 998              		.globl	ddma2_set_source_big_endian 999              		.ent	ddma2_set_source_big_endian 1000              		.type	ddma2_set_source_big_endian, @function 1001              	ddma2_set_source_big_endian: 1002              	$LFB23: 307:/mnt/hgfs/boot/booter/source/ddma2.c **** 	} 308:/mnt/hgfs/boot/booter/source/ddma2.c **** } 309:/mnt/hgfs/boot/booter/source/ddma2.c ****  310:/mnt/hgfs/boot/booter/source/ddma2.c **** void ddma2_set_source_big_endian(CHANNEL_ID id, int enabled) 311:/mnt/hgfs/boot/booter/source/ddma2.c **** { 1003              		.loc 1 311 0 1004              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 1005              		.mask	0x00000000,0 1006              		.fmask	0x00000000,0 1007              		.set	noreorder 1008              		.set	nomacro 1009              		 312:/mnt/hgfs/boot/booter/source/ddma2.c **** 	channels[id].ptr->cfg = (channels[id].ptr->cfg & ~DDMA_CHANCFG_SBE) |  1010              		.loc 1 312 0 1011 0650 40100400 		sll	$2,$4,1 1012 0654 21104400 		addu	$2,$2,$4 1013 0658 0000033C 		lui	$3,%hi(channels) 1014 065c 00006324 		addiu	$3,$3,%lo(channels) 1015 0660 00110200 		sll	$2,$2,4 1016 0664 21104300 		addu	$2,$2,$3 1017 0668 0000468C 		lw	$6,0($2) 1018 066c FBFF0224 		li	$2,-5			# 0xfffffffffffffffb 1019 0670 0000C38C 		lw	$3,0($6) 1020 0674 24186200 		and	$3,$3,$2 1021 0678 04006434 		ori	$4,$3,0x4 1022 067c 0B188500 		movn	$3,$4,$5 1023 0680 0000C3AC 		sw	$3,0($6) 1024 0684 0800E003 		j	$31 1025 0688 00000000 		nop 1026              	 1027              		.set	macro 1028              		.set	reorder 1029              	$LFE23: 1030              		.end	ddma2_set_source_big_endian 1031              		.align	2 1032              		.globl	ddma2_set_dest_big_endian 1033              		.ent	ddma2_set_dest_big_endian 1034              		.type	ddma2_set_dest_big_endian, @function 1035              	ddma2_set_dest_big_endian: 1036              	$LFB24: 313:/mnt/hgfs/boot/booter/source/ddma2.c **** 						(enabled ? DDMA_CHANCFG_SBE : 0); 314:/mnt/hgfs/boot/booter/source/ddma2.c **** } 315:/mnt/hgfs/boot/booter/source/ddma2.c ****  316:/mnt/hgfs/boot/booter/source/ddma2.c **** void ddma2_set_dest_big_endian(CHANNEL_ID id, int enabled) 317:/mnt/hgfs/boot/booter/source/ddma2.c **** { 1037              		.loc 1 317 0 1038              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 1039              		.mask	0x00000000,0 1040              		.fmask	0x00000000,0GAS LISTING /tmp/ccSUImwK.s 			page 25 1041              		.set	noreorder 1042              		.set	nomacro 1043              		 318:/mnt/hgfs/boot/booter/source/ddma2.c **** 	channels[id].ptr->cfg = (channels[id].ptr->cfg & ~DDMA_CHANCFG_DBE) |  1044              		.loc 1 318 0 1045 068c 40100400 		sll	$2,$4,1 1046 0690 21104400 		addu	$2,$2,$4 1047 0694 0000033C 		lui	$3,%hi(channels) 1048 0698 00006324 		addiu	$3,$3,%lo(channels) 1049 069c 00110200 		sll	$2,$2,4 1050 06a0 21104300 		addu	$2,$2,$3 1051 06a4 0000468C 		lw	$6,0($2) 1052 06a8 FDFF0224 		li	$2,-3			# 0xfffffffffffffffd 1053 06ac 0000C38C 		lw	$3,0($6) 1054 06b0 24186200 		and	$3,$3,$2 1055 06b4 02006434 		ori	$4,$3,0x2 1056 06b8 0B188500 		movn	$3,$4,$5 1057 06bc 0000C3AC 		sw	$3,0($6) 1058 06c0 0800E003 		j	$31 1059 06c4 00000000 		nop 1060              	 1061              		.set	macro 1062              		.set	reorder 1063              	$LFE24: 1064              		.end	ddma2_set_dest_big_endian 1065              		.align	2 1066              		.globl	ddma_descriptor_mem_mem 1067              		.ent	ddma_descriptor_mem_mem 1068              		.type	ddma_descriptor_mem_mem, @function 1069              	ddma_descriptor_mem_mem: 1070              	$LFB25: 319:/mnt/hgfs/boot/booter/source/ddma2.c **** 						(enabled ? DDMA_CHANCFG_DBE : 0); 320:/mnt/hgfs/boot/booter/source/ddma2.c **** } 321:/mnt/hgfs/boot/booter/source/ddma2.c ****  322:/mnt/hgfs/boot/booter/source/ddma2.c **** // Helper Functions 323:/mnt/hgfs/boot/booter/source/ddma2.c ****  324:/mnt/hgfs/boot/booter/source/ddma2.c ****  325:/mnt/hgfs/boot/booter/source/ddma2.c **** /* 326:/mnt/hgfs/boot/booter/source/ddma2.c ****  *	Function: ddma_descroptor_mem_mem 327:/mnt/hgfs/boot/booter/source/ddma2.c ****  * 328:/mnt/hgfs/boot/booter/source/ddma2.c ****  *	This function is a helper function for setting up a memory to memory descriptor 329:/mnt/hgfs/boot/booter/source/ddma2.c ****  * 330:/mnt/hgfs/boot/booter/source/ddma2.c ****  */ 331:/mnt/hgfs/boot/booter/source/ddma2.c **** DDMA_DESCRIPTOR* ddma_descriptor_mem_mem(DDMA_DESCRIPTOR* d, void* src, void* dst, int bytes) 332:/mnt/hgfs/boot/booter/source/ddma2.c **** { 1071              		.loc 1 332 0 1072              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 1073              		.mask	0x00000000,0 1074              		.fmask	0x00000000,0 1075              		.set	noreorder 1076              		.set	nomacro 1077              		 333:/mnt/hgfs/boot/booter/source/ddma2.c **** 	d->u.std.cmd1	=	bytes; 334:/mnt/hgfs/boot/booter/source/ddma2.c **** 	d->u.std.cmd0	=	DDMA_DESCCMD_SID_N(DDMA_ALWAYS_HIGH_ID) | 335:/mnt/hgfs/boot/booter/source/ddma2.c **** 						DDMA_DESCCMD_DID_N(DDMA_ALWAYS_HIGH_ID) | 336:/mnt/hgfs/boot/booter/source/ddma2.c **** 						DDMA_DESCCMD_M | 337:/mnt/hgfs/boot/booter/source/ddma2.c **** 						DDMA_DESCCMD_SW_WORD |GAS LISTING /tmp/ccSUImwK.s 			page 26 338:/mnt/hgfs/boot/booter/source/ddma2.c **** 						DDMA_DESCCMD_DW_WORD | 339:/mnt/hgfs/boot/booter/source/ddma2.c **** 						DDMA_DESCCMD_CV; 340:/mnt/hgfs/boot/booter/source/ddma2.c **** 	d->u.std.source1 =	DDMA_DESCSRC_STRIDE_STS_8 | DDMA_DESCSRC_STRIDE_SAM_INC; 341:/mnt/hgfs/boot/booter/source/ddma2.c **** 	d->u.std.dest1	 =	DDMA_DESCDST_STRIDE_DTS_8 | DDMA_DESCDST_STRIDE_DAM_INC; 342:/mnt/hgfs/boot/booter/source/ddma2.c **** 	d->u.std.source0 =	CPHYSADDR(src);  1078              		.loc 1 342 0 1079 06c8 FF5F023C 		li	$2,1610547200			# 0x5fff0000 1080 06cc FFFF4234 		ori	$2,$2,0xffff 343:/mnt/hgfs/boot/booter/source/ddma2.c **** 	d->u.std.dest0	 =	CPHYSADDR(dst); 1081              		.loc 1 343 0 1082 06d0 2430C200 		and	$6,$6,$2 1083              		.loc 1 342 0 1084 06d4 2428A200 		and	$5,$5,$2 1085              		.loc 1 334 0 1086 06d8 FA7F023C 		li	$2,2147090432			# 0x7ffa0000 1087 06dc 04004234 		ori	$2,$2,0x4 1088              		.loc 1 333 0 1089 06e0 040087AC 		sw	$7,4($4) 1090              		.loc 1 340 0 1091 06e4 00C0033C 		li	$3,-1073741824			# 0xffffffffc0000000 1092              		.loc 1 334 0 1093 06e8 000082AC 		sw	$2,0($4) 344:/mnt/hgfs/boot/booter/source/ddma2.c ****  345:/mnt/hgfs/boot/booter/source/ddma2.c **** 	return d; 346:/mnt/hgfs/boot/booter/source/ddma2.c **** } 1094              		.loc 1 346 0 1095 06ec 21108000 		move	$2,$4 1096              		.loc 1 340 0 1097 06f0 0C0083AC 		sw	$3,12($4) 1098              		.loc 1 341 0 1099 06f4 140083AC 		sw	$3,20($4) 1100              		.loc 1 342 0 1101 06f8 080085AC 		sw	$5,8($4) 1102              		.loc 1 343 0 1103 06fc 100086AC 		sw	$6,16($4) 1104              		.loc 1 346 0 1105 0700 0800E003 		j	$31 1106 0704 00000000 		nop 1107              	 1108              		.

⌨️ 快捷键说明

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