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

📄 gpio.lst

📁 au1200下的boot代码
💻 LST
📖 第 1 页 / 共 5 页
字号:
GAS LISTING /tmp/cc80EFvs.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 DF000000 		.text   9      0200A300    9      00000101    9      FB0E0A00    9      01010101   10              	$Ltext0:  11              		.align	2  12              		.globl	gpio2Read  13              		.ent	gpio2Read  14              		.type	gpio2Read, @function  15              	gpio2Read:  16              	$LFB2:  17              		.file 1 "/mnt/hgfs/boot/booter/source/gpio.c"   1:/mnt/hgfs/boot/booter/source/gpio.c **** #include "gpio.h"   2:/mnt/hgfs/boot/booter/source/gpio.c **** #include "example.h"   3:/mnt/hgfs/boot/booter/source/gpio.c ****    4:/mnt/hgfs/boot/booter/source/gpio.c **** static AU1X00_SYS   * const gpio1 = (AU1X00_SYS *)KSEG1(SYS_PHYS_ADDR);   5:/mnt/hgfs/boot/booter/source/gpio.c **** #if !defined(AU1000)   6:/mnt/hgfs/boot/booter/source/gpio.c **** static AU1X00_GPIO2 * const gpio2 = (AU1X00_GPIO2 *)KSEG1(GPIO2_PHYS_ADDR);   7:/mnt/hgfs/boot/booter/source/gpio.c ****    8:/mnt/hgfs/boot/booter/source/gpio.c **** #define GPIO2_OUTPUT_ENABLE_MASK 0x00010000   9:/mnt/hgfs/boot/booter/source/gpio.c ****   10:/mnt/hgfs/boot/booter/source/gpio.c **** int gpio2Read(int signal)  11:/mnt/hgfs/boot/booter/source/gpio.c **** {  18              		.loc 1 11 0  19              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0  20              		.mask	0x00000000,0  21              		.fmask	0x00000000,0  22              		.set	noreorder  23              		.set	nomacro  24              		  12:/mnt/hgfs/boot/booter/source/gpio.c **** 	signal -= 200;  13:/mnt/hgfs/boot/booter/source/gpio.c **** 	return ((gpio2->pinstate >> signal) & 0x01);  25              		.loc 1 13 0  26 0000 70B1033C 		li	$3,-1318060032			# 0xffffffffb1700000  27 0004 0C00628C 		lw	$2,12($3)  28              		.loc 1 12 0  29 0008 38FF8424 		addiu	$4,$4,-200  30              		.loc 1 13 0  31 000c 06108200 		srl	$2,$2,$4  14:/mnt/hgfs/boot/booter/source/gpio.c **** }  32              		.loc 1 14 0  33 0010 0800E003 		j	$31  34 0014 01004230 		andi	$2,$2,0x1  35              	  36              		.set	macro  37              		.set	reorder  38              	$LFE2:  39              		.end	gpio2ReadGAS LISTING /tmp/cc80EFvs.s 			page 2  40              		.align	2  41              		.globl	gpio2Write  42              		.ent	gpio2Write  43              		.type	gpio2Write, @function  44              	gpio2Write:  45              	$LFB3:  15:/mnt/hgfs/boot/booter/source/gpio.c ****   16:/mnt/hgfs/boot/booter/source/gpio.c **** void gpio2Write(int signal, int value)  17:/mnt/hgfs/boot/booter/source/gpio.c **** {  46              		.loc 1 17 0  47              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0  48              		.mask	0x00000000,0  49              		.fmask	0x00000000,0  50              		.set	noreorder  51              		.set	nomacro  52              		  18:/mnt/hgfs/boot/booter/source/gpio.c **** 	signal -= 200;  19:/mnt/hgfs/boot/booter/source/gpio.c **** 	if(value)
  20:/mnt/hgfs/boot/booter/source/gpio.c **** 		gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << signal) | 
  53              		.loc 1 20 0  54 0018 0100023C 		li	$2,65536			# 0x10000  55              		.loc 1 18 0  56 001c 38FF8624 		addiu	$6,$4,-200  57              		.loc 1 20 0  58 0020 01004234 		ori	$2,$2,0x1  21:/mnt/hgfs/boot/booter/source/gpio.c **** 			(0x01 << signal);  22:/mnt/hgfs/boot/booter/source/gpio.c **** 	else  23:/mnt/hgfs/boot/booter/source/gpio.c **** 		gpio2->output = (GPIO2_OUTPUT_ENABLE_MASK << signal);  59              		.loc 1 23 0  60 0024 0100033C 		li	$3,65536			# 0x10000  61              		.loc 1 20 0  62 0028 0420C200 		sll	$4,$2,$6  63              		.loc 1 23 0  64              		.loc 1 19 0  65 002c 0B00A010 		beq	$5,$0,$L3  66 0030 0418C300 		sll	$3,$3,$6  67              	  68              		.loc 1 20 0  69 0034 70B1023C 		li	$2,-1318060032			# 0xffffffffb1700000  70 0038 080044AC 		sw	$4,8($2)  24:/mnt/hgfs/boot/booter/source/gpio.c **** 	gpio2->dir |= 0x01 << signal; 	/* Set GPIO to output */
  71              		.loc 1 24 0  72 003c 70B1043C 		li	$4,-1318060032			# 0xffffffffb1700000  73 0040 0000828C 		lw	$2,0($4)  74 0044 01000324 		li	$3,1			# 0x1  75 0048 0418C300 		sll	$3,$3,$6  76 004c 25104300 		or	$2,$2,$3  77 0050 000082AC 		sw	$2,0($4)  78 0054 0800E003 		j	$31  79 0058 00000000 		nop  80              	  81              	$L3:  82              		.loc 1 23 0  83 005c 70B1023C 		li	$2,-1318060032			# 0xffffffffb1700000  84 0060 080043AC 		sw	$3,8($2)  85              		.loc 1 24 0  86 0064 70B1043C 		li	$4,-1318060032			# 0xffffffffb1700000GAS LISTING /tmp/cc80EFvs.s 			page 3  87 0068 0000828C 		lw	$2,0($4)  88 006c 01000324 		li	$3,1			# 0x1  89 0070 0418C300 		sll	$3,$3,$6  90 0074 25104300 		or	$2,$2,$3  91 0078 000082AC 		sw	$2,0($4)  92 007c 0800E003 		j	$31  93 0080 00000000 		nop  94              	  95              		.set	macro  96              		.set	reorder  97              	$LFE3:  98              		.end	gpio2Write  99              		.align	2 100              		.globl	gpio2Tristate 101              		.ent	gpio2Tristate 102              		.type	gpio2Tristate, @function 103              	gpio2Tristate: 104              	$LFB4:  25:/mnt/hgfs/boot/booter/source/gpio.c **** }  26:/mnt/hgfs/boot/booter/source/gpio.c ****   27:/mnt/hgfs/boot/booter/source/gpio.c **** void gpio2Tristate(int signal)  28:/mnt/hgfs/boot/booter/source/gpio.c **** { 105              		.loc 1 28 0 106              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 107              		.mask	0x00000000,0 108              		.fmask	0x00000000,0 109              		.set	noreorder 110              		.set	nomacro 111              		  29:/mnt/hgfs/boot/booter/source/gpio.c **** 	signal -= 200;  30:/mnt/hgfs/boot/booter/source/gpio.c **** 	gpio2->dir &= ~(0x01 << signal);	//Set GPIO to input 112              		.loc 1 30 0 113 0084 70B1053C 		li	$5,-1318060032			# 0xffffffffb1700000 114 0088 0000A38C 		lw	$3,0($5) 115              		.loc 1 29 0 116 008c 38FF8424 		addiu	$4,$4,-200 117              		.loc 1 30 0 118 0090 01000224 		li	$2,1			# 0x1 119 0094 04108200 		sll	$2,$2,$4 120 0098 27100200 		nor	$2,$0,$2 121 009c 24186200 		and	$3,$3,$2 122 00a0 0000A3AC 		sw	$3,0($5) 123 00a4 0800E003 		j	$31 124 00a8 00000000 		nop 125              	 126              		.set	macro 127              		.set	reorder 128              	$LFE4: 129              		.end	gpio2Tristate 130              		.align	2 131              		.globl	gpio1Read 132              		.ent	gpio1Read 133              		.type	gpio1Read, @function 134              	gpio1Read: 135              	$LFB5:  31:/mnt/hgfs/boot/booter/source/gpio.c **** }  32:/mnt/hgfs/boot/booter/source/gpio.c **** #endifGAS LISTING /tmp/cc80EFvs.s 			page 4  33:/mnt/hgfs/boot/booter/source/gpio.c ****   34:/mnt/hgfs/boot/booter/source/gpio.c **** int gpio1Read(int signal)  35:/mnt/hgfs/boot/booter/source/gpio.c **** { 136              		.loc 1 35 0 137              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 138              		.mask	0x00000000,0 139              		.fmask	0x00000000,0 140              		.set	noreorder 141              		.set	nomacro 142              		  36:/mnt/hgfs/boot/booter/source/gpio.c **** 	return ((gpio1->pinstaterd >> signal) & 0x01); 143              		.loc 1 36 0 144 00ac 90B1033C 		li	$3,-1315962880			# 0xffffffffb1900000 145 00b0 1001628C 		lw	$2,272($3) 146 00b4 06108200 		srl	$2,$2,$4  37:/mnt/hgfs/boot/booter/source/gpio.c **** } 147              		.loc 1 37 0 148 00b8 0800E003 		j	$31 149 00bc 01004230 		andi	$2,$2,0x1 150              	 151              		.set	macro 152              		.set	reorder 153              	$LFE5: 154              		.end	gpio1Read 155              		.align	2 156              		.globl	gpio1Write 157              		.ent	gpio1Write 158              		.type	gpio1Write, @function 159              	gpio1Write: 160              	$LFB6:  38:/mnt/hgfs/boot/booter/source/gpio.c ****   39:/mnt/hgfs/boot/booter/source/gpio.c **** void gpio1Write(int signal, int value)  40:/mnt/hgfs/boot/booter/source/gpio.c **** { 161              		.loc 1 40 0 162              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 163              		.mask	0x00000000,0 164              		.fmask	0x00000000,0 165              		.set	noreorder 166              		.set	nomacro 167              		  41:/mnt/hgfs/boot/booter/source/gpio.c **** 	if(value)  42:/mnt/hgfs/boot/booter/source/gpio.c **** 		gpio1->outputset = (0x01 << signal); 168              		.loc 1 42 0 169 00c0 01000224 		li	$2,1			# 0x1 170              		.loc 1 41 0 171 00c4 0500A010 		beq	$5,$0,$L9 172 00c8 04308200 		sll	$6,$2,$4 173              	 174              		.loc 1 42 0 175 00cc 90B1023C 		li	$2,-1315962880			# 0xffffffffb1900000 176 00d0 080146AC 		sw	$6,264($2) 177 00d4 0800E003 		j	$31 178 00d8 00000000 		nop 179              	 180              	$L9:  43:/mnt/hgfs/boot/booter/source/gpio.c **** 	else  44:/mnt/hgfs/boot/booter/source/gpio.c **** 		gpio1->outputclr = (0x01 << signal);		//Output a ZeroGAS LISTING /tmp/cc80EFvs.s 			page 5 181              		.loc 1 44 0 182 00dc 90B1023C 		li	$2,-1315962880			# 0xffffffffb1900000 183 00e0 0C0146AC 		sw	$6,268($2) 184 00e4 0800E003 		j	$31 185 00e8 00000000 		nop 186              	 187              		.set	macro 188              		.set	reorder 189              	$LFE6: 190              		.end	gpio1Write 191              		.align	2 192              		.globl	gpio1Tristate 193              		.ent	gpio1Tristate 194              		.type	gpio1Tristate, @function 195              	gpio1Tristate: 196              	$LFB7:  45:/mnt/hgfs/boot/booter/source/gpio.c **** }  46:/mnt/hgfs/boot/booter/source/gpio.c ****   47:/mnt/hgfs/boot/booter/source/gpio.c **** void gpio1Tristate(int signal)  48:/mnt/hgfs/boot/booter/source/gpio.c **** { 197              		.loc 1 48 0 198              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 199              		.mask	0x00000000,0 200              		.fmask	0x00000000,0 201              		.set	noreorder 202              		.set	nomacro 203              		  49:/mnt/hgfs/boot/booter/source/gpio.c **** 		gpio1->trioutclr = (0x01 << signal);		//Tristate signal 204              		.loc 1 49 0 205 00ec 01000224 		li	$2,1			# 0x1 206 00f0 04108200 		sll	$2,$2,$4 207 00f4 90B1033C 		li	$3,-1315962880			# 0xffffffffb1900000 208 00f8 000162AC 		sw	$2,256($3) 209 00fc 0800E003 		j	$31 210 0100 00000000 		nop 211              	 212              		.set	macro 213              		.set	reorder 214              	$LFE7: 215              		.end	gpio1Tristate 216              		.align	2 217              		.globl	gpioRead 218              		.ent	gpioRead 219              		.type	gpioRead, @function 220              	gpioRead: 221              	$LFB8:  50:/mnt/hgfs/boot/booter/source/gpio.c **** }  51:/mnt/hgfs/boot/booter/source/gpio.c ****   52:/mnt/hgfs/boot/booter/source/gpio.c ****   53:/mnt/hgfs/boot/booter/source/gpio.c **** int gpioRead(int signal)  54:/mnt/hgfs/boot/booter/source/gpio.c **** { 222              		.loc 1 54 0 223              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 224              		.mask	0x00000000,0 225              		.fmask	0x00000000,0 226              		.set	noreorder 227              		.set	nomacroGAS LISTING /tmp/cc80EFvs.s 			page 6 228              		  55:/mnt/hgfs/boot/booter/source/gpio.c **** 	if(signal >= 200) 229              		.loc 1 55 0 230 0104 C8008228 		slt	$2,$4,200 231 0108 03004014 		bne	$2,$0,$L13 232 010c 00000000 		nop 233              	  56:/mnt/hgfs/boot/booter/source/gpio.c **** #if defined(AU1000)  57:/mnt/hgfs/boot/booter/source/gpio.c **** 		return 0;  58:/mnt/hgfs/boot/booter/source/gpio.c **** #else  59:/mnt/hgfs/boot/booter/source/gpio.c **** 		return gpio2Read(signal); 234              		.loc 1 59 0 235 0110 00000008 		j	gpio2Read 236 0114 00000000 		nop 237              	 238              	$L13:  60:/mnt/hgfs/boot/booter/source/gpio.c **** #endif  61:/mnt/hgfs/boot/booter/source/gpio.c **** 	else  62:/mnt/hgfs/boot/booter/source/gpio.c **** 		return gpio1Read(signal); 239              		.loc 1 62 0 240 0118 00000008 		j	gpio1Read 241 011c 00000000 		nop 242              	 243              		.set	macro 244              		.set	reorder 245              	$LFE8: 246              		.end	gpioRead 247              		.align	2 248              		.globl	gpioWrite 249              		.ent	gpioWrite 250              		.type	gpioWrite, @function 251              	gpioWrite: 252              	$LFB9:  63:/mnt/hgfs/boot/booter/source/gpio.c **** }  64:/mnt/hgfs/boot/booter/source/gpio.c ****   65:/mnt/hgfs/boot/booter/source/gpio.c **** void gpioWrite(int signal, int value)  66:/mnt/hgfs/boot/booter/source/gpio.c **** { 253              		.loc 1 66 0 254              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 255              		.mask	0x00000000,0 256              		.fmask	0x00000000,0 257              		.set	noreorder 258              		.set	nomacro 259              		  67:/mnt/hgfs/boot/booter/source/gpio.c **** 	if(signal >= 200) 260              		.loc 1 67 0 261 0120 C8008228 		slt	$2,$4,200 262 0124 03004014 		bne	$2,$0,$L16 263 0128 00000000 		nop 264              	  68:/mnt/hgfs/boot/booter/source/gpio.c **** #if defined(AU1000)  69:/mnt/hgfs/boot/booter/source/gpio.c **** 		;  70:/mnt/hgfs/boot/booter/source/gpio.c **** #else  71:/mnt/hgfs/boot/booter/source/gpio.c **** 		gpio2Write(signal, value); 265              		.loc 1 71 0 266 012c 00000008 		j	gpio2Write 267 0130 00000000 		nopGAS LISTING /tmp/cc80EFvs.s 			page 7 268              	 269              	$L16:  72:/mnt/hgfs/boot/booter/source/gpio.c **** #endif  73:/mnt/hgfs/boot/booter/source/gpio.c **** 	else  74:/mnt/hgfs/boot/booter/source/gpio.c **** 		gpio1Write(signal, value); 270              		.loc 1 74 0 271 0134 00000008 		j	gpio1Write 272 0138 00000000 		nop 273              	 274              		.set	macro 275              		.set	reorder 276              	$LFE9: 277              		.end	gpioWrite 278              		.align	2 279              		.globl	gpioTristate 280              		.ent	gpioTristate 281              		.type	gpioTristate, @function 282              	gpioTristate: 283              	$LFB10:  75:/mnt/hgfs/boot/booter/source/gpio.c **** }  76:/mnt/hgfs/boot/booter/source/gpio.c ****   77:/mnt/hgfs/boot/booter/source/gpio.c **** void gpioTristate(int signal)  78:/mnt/hgfs/boot/booter/source/gpio.c **** { 284              		.loc 1 78 0 285              		.frame	$sp,0,$31		# vars= 0, regs= 0/0, args= 0, gp= 0 286              		.mask	0x00000000,0 287              		.fmask	0x00000000,0

⌨️ 快捷键说明

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