📄 gpio.lst
字号:
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 gpio2ReadGAS 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 # 0xffffffffb1700000GAS 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 **** #endifGAS 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 ZeroGAS 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 nomacroGAS 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 nopGAS 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 + -