📄 booter.lst
字号:
182 183 0098 D8FFBD27 addiu $sp,$sp,-40 184 $LCFI7: 185 009c 1C00B3AF sw $19,28($sp) 186 $LCFI8: 187 00a0 1800B2AF sw $18,24($sp) 188 $LCFI9: 189 00a4 1400B1AF sw $17,20($sp) 190 $LCFI10: 191 00a8 1000B0AF sw $16,16($sp) 192 $LCFI11: 193 00ac 2000BFAF sw $31,32($sp) 194 $LCFI12: 195 .loc 1 80 0 196 00b0 2180A000 move $16,$5 197 00b4 2190C000 move $18,$6 198 00b8 2188E000 move $17,$7 81:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** typedef int(*EXECUTE)(int, char**, char**); 82:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** EXECUTE executeFunction = (EXECUTE) address; 83:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** if( argc == NULL) 199 .loc 1 83 0 200 00bc 0600A014 bne $5,$0,$L5 201 00c0 21988000 move $19,$4 202 84:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 85:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** argc = 1; 86:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** argv = t_argv; 203 .loc 1 86 0 204 00c4 0000023C lui $2,%hi(t_argv) 87:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** env = t_envp; 205 .loc 1 87 0 206 00c8 0000033C lui $3,%hi(t_envp) 207 .loc 1 86 0 208 00cc 00005224 addiu $18,$2,%lo(t_argv) 209 .loc 1 87 0 210 00d0 00007124 addiu $17,$3,%lo(t_envp) 211 .loc 1 85 0 212 00d4 01001024 li $16,1 # 0x1 213 $L5: 88:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 89:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** cpuDisableIrqs(); 214 .loc 1 89 0 215 00d8 0000000C jal cpuDisableIrqs 216 00dc 00000000 nop 217 90:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 91:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** return executeFunction(argc, (char**) argv, (char**) env); 218 .loc 1 91 0 219 00e0 21200002 move $4,$16 220 00e4 21284002 move $5,$18 221 00e8 21302002 move $6,$17 222 00ec 21C86002 move $25,$19 92:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 223 .loc 1 92 0 224 00f0 2000BF8F lw $31,32($sp) 225 00f4 1C00B38F lw $19,28($sp) 226 00f8 1800B28F lw $18,24($sp)GAS LISTING /tmp/ccjGssRD.s page 7 227 00fc 1400B18F lw $17,20($sp) 228 0100 1000B08F lw $16,16($sp) 229 .loc 1 91 0 230 0104 08002003 jr $25 231 0108 2800BD27 addiu $sp,$sp,40 232 233 .set macro 234 .set reorder 235 $LFE5: 236 .end execute 237 .section .rodata.str1.4 238 0083 00 .align 2 239 $LC6: 240 0084 255800 .ascii "%X\000" 241 .text 242 .align 2 243 .globl loadImage 244 .ent loadImage 245 .type loadImage, @function 246 loadImage: 247 $LFB7: 93:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 94:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void* findImage(const char** files, const char** addresses, void* jumpAddress) 95:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 96:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void* entryPoint; 97:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 98:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #if defined(CONFIG_HWBLOCK_SD) 99:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** (entryPoint = loadSDMS (files)) || 100:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #endif 101:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #if defined(CONFIG_HWBLOCK_NOR_FLASH) 102:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** (entryPoint = loadFlash(addresses)) || 103:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #endif 104:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #if defined(CONFIG_HWBLOCK_IDE) 105:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** (entryPoint = loadIDE(files)) || 106:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #endif 107:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #if defined(CONFIG_HWBLOCK_PCMCIA) 108:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** (entryPoint = loadPCMCIA(files)) || 109:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #endif 110:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** (entryPoint = jumpAddress); 111:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 112:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** return entryPoint; 113:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 114:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 115:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void* loadImage(DataFunctions functions, const char* fileName) 116:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 248 .loc 1 116 0 249 .frame $sp,48,$31 # vars= 16, regs= 3/0, args= 16, gp= 0 250 .mask 0x80030000,-8 251 .fmask 0x00000000,0 252 .set noreorder 253 .set nomacro 254 255 010c D0FFBD27 addiu $sp,$sp,-48 256 $LCFI13: 257 0110 2400B1AF sw $17,36($sp) 258 $LCFI14: 259 0114 2000B0AF sw $16,32($sp)GAS LISTING /tmp/ccjGssRD.s page 8 260 $LCFI15: 261 0118 3000A4AF sw $4,48($sp) 262 011c 2800BFAF sw $31,40($sp) 263 $LCFI16: 264 .loc 1 116 0 265 0120 3400A5AF sw $5,52($sp) 266 0124 3800A6AF sw $6,56($sp) 117:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void* entryPoint; 118:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** char Bz2Name[9]; 119:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** char* Name = (char*)fileName; 267 .loc 1 119 0 120:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 121:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** if (entryPoint = bz2LoadImage(functions, Name)) 268 .loc 1 121 0 269 0128 0000000C jal bz2LoadImage 270 012c 2188E000 move $17,$7 271 272 0130 21804000 move $16,$2 122:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 123:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** functions = getFlashFunctions(); 273 .loc 1 123 0 274 .loc 1 121 0 275 0134 09004010 beq $2,$0,$L8 276 0138 3000A427 addiu $4,$sp,48 277 278 .loc 1 123 0 279 013c 0000000C jal getFlashFunctions 280 0140 00000000 nop 281 124:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** sprintf(Bz2Name, "%X", entryPoint); 282 .loc 1 124 0 283 0144 0000053C lui $5,%hi($LC6) 284 0148 21300002 move $6,$16 285 014c 0000A524 addiu $5,$5,%lo($LC6) 286 0150 0000000C jal sprintf 287 0154 1000A427 addiu $4,$sp,16 288 125:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** Name = Bz2Name; 289 .loc 1 125 0 290 0158 1000B127 addiu $17,$sp,16 291 $L8: 126:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 127:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 128:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** if( (entryPoint = binLoadImage(functions, Name)) || 292 .loc 1 128 0 293 015c 3000A48F lw $4,48($sp) 294 0160 3400A58F lw $5,52($sp) 295 0164 3800A68F lw $6,56($sp) 296 0168 0000000C jal binLoadImage 297 016c 21382002 move $7,$17 298 299 0170 21804000 move $16,$2 300 0174 07004010 beq $2,$0,$L11 301 0178 21382002 move $7,$17 302 303 $L10: 129:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** (entryPoint = srecLoadImage(functions, Name)) ||GAS LISTING /tmp/ccjGssRD.s page 9 130:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** (entryPoint = elfLoadImage(functions, Name)) ) 131:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** return entryPoint; 304 .loc 1 131 0 305 017c 21100002 move $2,$16 132:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 133:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** return (void*) 0; 134:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 306 .loc 1 134 0 307 0180 2800BF8F lw $31,40($sp) 308 $L12: 309 0184 2400B18F lw $17,36($sp) 310 0188 2000B08F lw $16,32($sp) 311 018c 0800E003 j $31 312 0190 3000BD27 addiu $sp,$sp,48 313 314 $L11: 315 .loc 1 128 0 316 0194 3000A48F lw $4,48($sp) 317 0198 3400A58F lw $5,52($sp) 318 019c 0000000C jal srecLoadImage 319 01a0 3800A68F lw $6,56($sp) 320 321 01a4 21804000 move $16,$2 322 01a8 F4FF4014 bne $2,$0,$L10 323 01ac 21382002 move $7,$17 324 325 01b0 3000A48F lw $4,48($sp) 326 01b4 3400A58F lw $5,52($sp) 327 01b8 0000000C jal elfLoadImage 328 01bc 3800A68F lw $6,56($sp) 329 330 01c0 21804000 move $16,$2 331 .loc 1 133 0 332 .loc 1 128 0 333 01c4 EDFF0016 bne $16,$0,$L10 334 01c8 21100000 move $2,$0 335 336 .loc 1 134 0 337 01cc 61000008 j $L12 338 01d0 2800BF8F lw $31,40($sp) 339 340 .set macro 341 .set reorder 342 $LFE7: 343 .end loadImage 344 .align 2 345 .globl loadFlash 346 .ent loadFlash 347 .type loadFlash, @function 348 loadFlash: 349 $LFB8: 135:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 136:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #if defined(CONFIG_HWBLOCK_NOR_FLASH) | defined(CONFIG_HWBLOCK_NAND_FLASH) 137:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void* loadFlash(const char** addresses) 138:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 350 .loc 1 138 0 351 .frame $sp,72,$31 # vars= 32, regs= 5/0, args= 16, gp= 0GAS LISTING /tmp/ccjGssRD.s page 10 352 .mask 0x800f0000,-8 353 .fmask 0x00000000,0 354 .set noreorder 355 .set nomacro 356 357 01d4 B8FFBD27 addiu $sp,$sp,-72 358 $LCFI17: 359 01d8 3800B2AF sw $18,56($sp) 360 $LCFI18: 361 01dc 3400B1AF sw $17,52($sp) 362 $LCFI19: 363 01e0 4000BFAF sw $31,64($sp) 364 $LCFI20: 365 01e4 3C00B3AF sw $19,60($sp) 366 $LCFI21: 367 01e8 3000B0AF sw $16,48($sp) 368 $LCFI22: 139:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** int i; 140:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** void* entryPoint = 0; 141:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** 142:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** for(i = 0; addresses[i] != 0 && !entryPoint; ++i) 369 .loc 1 142 0 370 01ec 0000828C lw $2,0($4) 371 .loc 1 138 0 372 01f0 21908000 move $18,$4 373 .loc 1 142 0 374 01f4 21880000 move $17,$0 375 .loc 1 140 0 376 .loc 1 142 0 377 01f8 26004010 beq $2,$0,$L15 378 01fc 21200000 move $4,$0 379 380 0200 21380000 move $7,$0 381 0204 93000008 j $L19 382 0208 4E001324 li $19,78 # 0x4e 383 384 $L17: 143:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 144:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** if(addresses[i][0] == 'N') //Nand image 145:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** { 146:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #ifdef CONFIG_HWBLOCK_NAND_FLASH 147:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** entryPoint = loadImage(getNandFunctions(), addresses[i]); 148:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** #endif 149:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** } 150:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** else 151:/mnt/hgfs/boot/booter/source/applications/booter/booter.c **** entryPoint = loadImage(getFlashFunctions(), addresses[i]); 385 .loc 1 151 0 386 020c 0000000C jal getFlashFunctions 387 0210 2000A427 addiu $4,$sp,32 388 389 0214 0000078E lw $7,0($16) 390 0218 2000A48F lw $4,32($sp) 391 021c 2400A58F lw $5,36($sp) 392 0220 2800A68F lw $6,40($sp) 393 .loc 1 142 0 394 .loc 1 151 0 395 0224 0000000C jal loadImageGAS LISTING /tmp/ccjGssRD.s page 11 396 0228 01003126 addiu $17,$17,1 397 398 .loc 1 142 0
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -