📄 sdmmc.cod
字号:
000e4 e59f0360 ldr r0, [pc, #0x360]
000e8 eb000000 bl NKDbgPrintfW
; 420 : }
; 421 :
; 427 :
; 434 : else if (resErr == MMC_CARD_IS_NOT_RESPONDING)
000ec ea000019 b |$L36585|
000f0 |$L36578|
000f0 e35400c9 cmp r4, #0xC9
000f4 1a000068 bne |$L37226|
; 435 : {
; 436 : #if (USE_SD)
; 437 :
; 438 : OS_WAIT(55);
000f8 e3a00037 mov r0, #0x37
000fc eb000000 bl platform_delayms
; 439 :
; 440 :
; 441 : setupInfo = 0x00FF8000L;
00100 e3a008ff mov r0, #0xFF, 16
00104 e3800902 orr r0, r0, #2, 18
00108 e1a06000 mov r6, r0
; 442 : resErr = mmcSDApplCmd(pc, SDNULL, setupInfo, 0, 0, R3, SD_SEND_OP_COND);
0010c e3a00f5a mov r0, #0x5A, 30
00110 e3800001 orr r0, r0, #1
00114 e58d0008 str r0, [sp, #8]
00118 e3a00003 mov r0, #3
0011c e58d0004 str r0, [sp, #4]
00120 e3a00000 mov r0, #0
00124 e3a028ff mov r2, #0xFF, 16
00128 e58d0000 str r0, [sp]
0012c e3a03000 mov r3, #0
00130 e3822902 orr r2, r2, #2, 18
00134 e3a01000 mov r1, #0
00138 e1a00005 mov r0, r5
0013c eb000000 bl mmcSDApplCmd
00140 e1a04000 mov r4, r0
00144 e58d400c str r4, [sp, #0xC]
; 443 : if (resErr != MMC_CARD_IS_NOT_RESPONDING)
00148 e35400c9 cmp r4, #0xC9
0014c 0a000052 beq |$L37226|
; 444 : {
; 445 :
; 446 : sdFlag = YES;
00150 e3a00001 mov r0, #1
00154 e1a09000 mov r9, r0
00158 |$L36585|
; 454 : goto END_OF_CARDS_SEARCH;
; 455 : }
; 456 : }
; 457 : else
; 458 : {
; 459 :
; 460 : resErr = MMC_INTERFACE_ERROR;
; 461 : goto END_OF_CARDS_SEARCH;
; 462 : }
; 463 : }
; 464 :
; 465 : #if (USE_SD)
; 466 :
; 467 : if (sdFlag)
00158 e1a00809 mov r0, r9, lsl #16
0015c e1b01820 movs r1, r0, lsr #16
00160 0a000019 beq |$L36590|
; 468 : {
; 469 : setupInfo = 0x00FF8000L;
00164 e3a008ff mov r0, #0xFF, 16
00168 e3800902 orr r0, r0, #2, 18
0016c e1a06000 mov r6, r0
; 470 :
; 471 :
; 475 :
; 476 : resErr = mmcSDApplCmd(pc, SDNULL, setupInfo, 0, 0, R3, SD_SEND_OP_COND);
00170 e3a00003 mov r0, #3
00174 e3a01f5a mov r1, #0x5A, 30
00178 e58d0004 str r0, [sp, #4]
0017c e3811001 orr r1, r1, #1
00180 e3a00000 mov r0, #0
00184 e58d1008 str r1, [sp, #8]
00188 e3a028ff mov r2, #0xFF, 16
0018c e58d0000 str r0, [sp]
00190 e3a03000 mov r3, #0
00194 e3822902 orr r2, r2, #2, 18
00198 e3a01000 mov r1, #0
0019c e1a00005 mov r0, r5
001a0 eb000000 bl mmcSDApplCmd
001a4 e1b04000 movs r4, r0
001a8 e58d400c str r4, [sp, #0xC]
; 477 : if (resErr == MMC_NO_ERROR)
001ac 1a000006 bne |$L36590|
; 478 : {
; 479 :
; 480 : cardType = SD_TYPE;
001b0 e3a00000 mov r0, #0
001b4 e1a08000 mov r8, r0
; 481 : sdFlag = YES;
001b8 e3a00001 mov r0, #1
001bc e1a09000 mov r9, r0
; 482 :
; 483 :
; 484 :
; 485 : readyFlag = to_WORD((UCHAR *)&pc->LastResponse[0]);
001c0 e2850028 add r0, r5, #0x28
001c4 eb000000 bl to_WORD
001c8 e1a07000 mov r7, r0
001cc |$L36590|
; 486 :
; 487 : }
; 488 : }
; 489 : #endif
; 490 :
; 491 :
; 492 : if (resErr == MMC_CARD_IS_NOT_RESPONDING)
001cc e35400c9 cmp r4, #0xC9
001d0 0a000031 beq |$L37226|
; 493 : {
; 494 : resErr = MMC_INTERFACE_ERROR;
; 495 : goto END_OF_CARDS_SEARCH;
; 496 : }
; 497 :
; 498 : if ( resErr == MMC_NO_ERROR )
001d4 e3540000 cmp r4, #0
001d8 1a000011 bne |$L36596|
; 499 : {
; 500 :
; 501 : if ( (readyFlag & CARD_READY_FLAG) )
001dc e1a00807 mov r0, r7, lsl #16
001e0 e1a01820 mov r1, r0, lsr #16
001e4 e3110902 tst r1, #2, 18
001e8 1a00002f bne |$L37228|
; 505 : }
; 506 :
; 507 : pc->timer--;
001ec e1d501b8 ldrh r0, [r5, #0x18]
001f0 e1a01800 mov r1, r0, lsl #16
001f4 e1a02821 mov r2, r1, lsr #16
001f8 e2820cff add r0, r2, #0xFF, 24
001fc e28010ff add r1, r0, #0xFF
00200 e1a02801 mov r2, r1, lsl #16
00204 e1a00822 mov r0, r2, lsr #16
00208 e1c501b8 strh r0, [r5, #0x18]
; 508 :
; 509 : OS_WAIT(1);
0020c e3a00001 mov r0, #1
00210 eb000000 bl platform_delayms
; 510 :
; 511 : if ( !pc->timer )
00214 e1d531b8 ldrh r3, [r5, #0x18]
00218 e1a00803 mov r0, r3, lsl #16
0021c e1b01820 movs r1, r0, lsr #16
00220 0a000024 beq |$L37229|
00224 |$L36596|
; 391 :
; 392 :
; 393 : while (pc->timer)
00224 e1d501b8 ldrh r0, [r5, #0x18]
00228 e1a01800 mov r1, r0, lsl #16
0022c e1b02821 movs r2, r1, lsr #16
00230 1affff98 bne |$L36575|
00234 |$L36576|
; 516 : }
; 517 : }
; 518 : }
; 519 :
; 520 :
; 521 : i = NO;
; 522 : for (;;)
; 523 : {
; 524 : RETAILMSG(1, (TEXT("tr to asssign RCA with ID %d\r\n"), i));
00234 e59f01f8 ldr r0, [pc, #0x1F8]
00238 e3a04000 mov r4, #0
0023c e3a01000 mov r1, #0
00240 e1a05004 mov r5, r4
00244 eb000000 bl NKDbgPrintfW
; 525 : pc->drive_active = i;
00248 e59d3010 ldr r3, [sp, #0x10]
; 526 :
; 527 : if ( mmcIdentify (pc, cardType, i) != MMC_NO_ERROR )
0024c e3a02000 mov r2, #0
00250 e1a01008 mov r1, r8
00254 e1c341be strh r4, [r3, #0x1E]
00258 e1a00003 mov r0, r3
0025c eb000000 bl mmcIdentify
00260 e3500000 cmp r0, #0
00264 1a000037 bne |$L37230|
; 530 :
; 531 : break;
; 532 : }
; 533 : RETAILMSG(1, (TEXT("after successfully assign RCA, continue\r\n")));
00268 e3a05000 mov r5, #0
0026c e1a04005 mov r4, r5
00270 |$L36598|
00270 e59f01d0 ldr r0, [pc, #0x1D0]
00274 eb000000 bl NKDbgPrintfW
; 534 :
; 535 :
; 536 : if (cardType == SD_TYPE)
00278 e3580000 cmp r8, #0
0027c 1a000010 bne |$L36604|
; 537 : {
; 538 : RETAILMSG(1, (TEXT("mmcReset -- It entered SD Card area\r\n")));
00280 e59f01bc ldr r0, [pc, #0x1BC]
00284 eb000000 bl NKDbgPrintfW
; 539 :
; 540 : (pc->drive)->RCA = pc->LastResponse[4];
00288 e59d5010 ldr r5, [sp, #0x10]
0028c e5953000 ldr r3, [r5]
00290 e1d503b0 ldrh r0, [r5, #0x30]
00294 e1c300be strh r0, [r3, #0xE]
; 541 : }
; 542 : else
00298 ea000012 b |$L36606|
0029c |$L37226|
; 447 : }
; 448 : #endif
; 449 :
; 450 : if (resErr == MMC_CARD_IS_NOT_RESPONDING)
; 451 : {
; 452 :
; 453 : resErr = MMC_INTERFACE_ERROR;
0029c e3a000d7 mov r0, #0xD7
002a0 e1a05000 mov r5, r0
; 512 : {
; 513 :
; 514 : resErr = MMC_CARD_IS_NOT_READY;
002a4 e58d500c str r5, [sp, #0xC]
; 515 : goto END_OF_CARDS_SEARCH;
002a8 ea00003c b |$END_OF_CARDS_SEARCH$36586|
002ac |$L37228|
; 502 : {
; 503 : RETAILMSG(1, (TEXT("card is ready!\r\n")));
002ac e59f018c ldr r0, [pc, #0x18C]
002b0 eb000000 bl NKDbgPrintfW
; 504 : break;
002b4 eaffffde b |$L36576|
002b8 |$L37229|
; 512 : {
; 513 :
; 514 : resErr = MMC_CARD_IS_NOT_READY;
002b8 e3a050ce mov r5, #0xCE
002bc e58d500c str r5, [sp, #0xC]
; 515 : goto END_OF_CARDS_SEARCH;
002c0 ea000036 b |$END_OF_CARDS_SEARCH$36586|
002c4 |$L36604|
; 543 : {
; 544 :
; 545 : (pc->drive)->RCA = (UINT16)i + 1;
002c4 e2840001 add r0, r4, #1
002c8 e59d5010 ldr r5, [sp, #0x10]
002cc e1a01800 mov r1, r0, lsl #16
002d0 e5950000 ldr r0, [r5]
002d4 e1a02821 mov r2, r1, lsr #16
; 546 : RETAILMSG(1, (TEXT("MMCReset - pc->drive->RCA is %d\r\n"),1));
002d8 e3a01001 mov r1, #1
002dc e1c020be strh r2, [r0, #0xE]
002e0 e59f0154 ldr r0, [pc, #0x154]
002e4 eb000000 bl NKDbgPrintfW
002e8 |$L36606|
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -