📄 sdmmc.cod
字号:
; 547 : }
; 548 :
; 549 :
; 550 : (pc->drive)->drv_type = cardType;
002e8 e5950000 ldr r0, [r5]
; 551 :
; 552 : i++;
002ec e2841001 add r1, r4, #1
002f0 e5808010 str r8, [r0, #0x10]
002f4 e1a00801 mov r0, r1, lsl #16
002f8 e1a05820 mov r5, r0, lsr #16
; 553 :
; 554 : RETAILMSG(1, (TEXT("now, the number of i is %d\r\n"),i));
002fc e59f0134 ldr r0, [pc, #0x134]
00300 e1a01805 mov r1, r5, lsl #16
00304 e1a04821 mov r4, r1, lsr #16
00308 e1a01004 mov r1, r4
0030c eb000000 bl NKDbgPrintfW
; 555 : if(i>=1)
00310 e3540001 cmp r4, #1
00314 2a000010 bcs |$L37245|
00318 e59f0114 ldr r0, [pc, #0x114]
0031c e1a01004 mov r1, r4
00320 eb000000 bl NKDbgPrintfW
00324 e59d3010 ldr r3, [sp, #0x10]
00328 e1a02005 mov r2, r5
0032c e1a01008 mov r1, r8
00330 e1c351be strh r5, [r3, #0x1E]
00334 e1a00003 mov r0, r3
00338 eb000000 bl mmcIdentify
0033c e3500000 cmp r0, #0
00340 0affffca beq |$L36598|
00344 e3a04000 mov r4, #0
00348 |$L37230|
; 528 : {
; 529 : RETAILMSG(1, (TEXT("asssign RCA is not sucessful! with ID %d\r\n"), i));
00348 e1a00805 mov r0, r5, lsl #16
0034c e1a01820 mov r1, r0, lsr #16
00350 e59f00d8 ldr r0, [pc, #0xD8]
00354 eb000000 bl NKDbgPrintfW
00358 ea000000 b |$L37231|
0035c |$L37245|
; 383 : #endif
; 384 : #if (USE_SD)
; 385 : DO_ALL_BUS_INTERFACE:
; 386 : #endif
; 387 : for (i = 0; i < (CID_BYTE_LENGTH/2); pc->LastResponse[i++] = 0);
0035c e3a04000 mov r4, #0
00360 |$L37231|
; 556 :
; 557 : break;
; 558 :
; 559 :
; 560 : }
; 561 :
; 562 : pc->drive_active = NO;
00360 e59d0010 ldr r0, [sp, #0x10]
00364 e1c041be strh r4, [r0, #0x1E]
; 563 :
; 564 :
; 565 : if ( i == NO )
00368 e1a00805 mov r0, r5, lsl #16
0036c e1b04820 movs r4, r0, lsr #16
00370 1a000005 bne |$L37244|
; 566 : {
; 567 :
; 568 : RETAILMSG(1, (TEXT("No card is found\r\n")));
00374 e59f00b0 ldr r0, [pc, #0xB0]
00378 eb000000 bl NKDbgPrintfW
; 569 : resErr = MMC_INTERFACE_ERROR;
0037c e3a000d7 mov r0, #0xD7
00380 e1a05000 mov r5, r0
00384 e58d500c str r5, [sp, #0xC]
00388 ea000000 b |$L36611|
0038c |$L37244|
0038c e59d500c ldr r5, [sp, #0xC]
00390 |$L36611|
; 570 : }
; 571 :
; 572 : devCount += i;
00390 e1a0080b mov r0, r11, lsl #16
00394 e0841820 add r1, r4, r0, lsr #16
00398 e1a02801 mov r2, r1, lsl #16
0039c e1a0b822 mov r11, r2, lsr #16
003a0 |$END_OF_CARDS_SEARCH$36586|
; 573 :
; 574 : END_OF_CARDS_SEARCH:
; 575 :
; 576 : #if (USE_SD)
; 577 : if (sdFlag != YES)
003a0 e1a00809 mov r0, r9, lsl #16
003a4 e1a01820 mov r1, r0, lsr #16
003a8 e3510001 cmp r1, #1
003ac 0a00000a beq |$L36614|
; 578 : {
; 579 : if (bInterface < 1 )
003b0 e1a0080a mov r0, r10, lsl #16
003b4 e1a01820 mov r1, r0, lsr #16
003b8 e3510001 cmp r1, #1
; 580 : {
; 581 : bInterface++;
003bc 32810001 addcc r0, r1, #1
003c0 359d400c ldrcc r4, [sp, #0xC]
003c4 31a01800 movcc r1, r0, lsl #16
003c8 359d5010 ldrcc r5, [sp, #0x10]
; 582 : sdFlag = YES;
003cc 33a00001 movcc r0, #1
003d0 31a0a821 movcc r10, r1, lsr #16
003d4 31a09000 movcc r9, r0
003d8 3affff1b bcc |$DO_ALL_BUS_INTERFACE$36570|
003dc |$L36614|
; 583 : goto DO_ALL_BUS_INTERFACE;
; 584 : }
; 585 : }
; 586 : #endif
; 587 : RETAILMSG(1, (TEXT("devCount is following %d\r\n"), devCount));
003dc e1a0080b mov r0, r11, lsl #16
003e0 e1a04820 mov r4, r0, lsr #16
003e4 e59f003c ldr r0, [pc, #0x3C]
003e8 e1a01004 mov r1, r4
003ec eb000000 bl NKDbgPrintfW
; 588 : if ( devCount )
; 589 :
; 590 : resErr = MMC_NO_ERROR;
; 591 :
; 592 : #endif
; 593 :
; 594 : pc->error_code = (UINT16)resErr;
003f0 e59d2010 ldr r2, [sp, #0x10]
003f4 e3540000 cmp r4, #0
003f8 13a00000 movne r0, #0
003fc 11a05000 movne r5, r0
00400 e1a00805 mov r0, r5, lsl #16
00404 e1a01820 mov r1, r0, lsr #16
; 595 : RETAILMSG(1, (TEXT("mmcReset ResErr is as follows %d\r\n"), resErr));
00408 e59f0014 ldr r0, [pc, #0x14]
0040c e1c211b6 strh r1, [r2, #0x16]
00410 e1a01005 mov r1, r5
00414 eb000000 bl NKDbgPrintfW
; 596 : return resErr;
00418 e1a00005 mov r0, r5
; 597 : }
0041c e28dd014 add sp, sp, #0x14
00420 e8bd8ff0 ldmia sp!, {r4 - r11, pc}
00424 |$L37252|
00424 00000000 DCD |??_C@_1EG@HFPL@?$AAm?$AAm?$AAc?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AAR?$AAe?$AAs?$AAE?$AAr?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAa@|
00428 00000000 DCD |??_C@_1DG@DFMO@?$AAd?$AAe?$AAv?$AAC?$AAo?$AAu?$AAn?$AAt?$AA?5?$AAi?$AAs?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAi?$AAn@|
0042c 00000000 DCD |??_C@_1CG@DHEP@?$AAN?$AAo?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAi?$AAs?$AA?5?$AAf?$AAo?$AAu?$AAn?$AAd?$AA?$AN?$AA?6?$AA?$AA@|
00430 00000000 DCD |??_C@_1FG@OKKD@?$AAa?$AAs?$AAs?$AAs?$AAi?$AAg?$AAn?$AA?5?$AAR?$AAC?$AAA?$AA?5?$AAi?$AAs?$AA?5?$AAn?$AAo?$AAt?$AA?5?$AAs@|
00434 00000000 DCD |??_C@_1EA@FIDN@?$AAt?$AAr?$AA?5?$AAt?$AAo?$AA?5?$AAa?$AAs?$AAs?$AAs?$AAi?$AAg?$AAn?$AA?5?$AAR?$AAC?$AAA?$AA?5?$AA?5?$AAw@|
00438 00000000 DCD |??_C@_1DK@LFHM@?$AAn?$AAo?$AAw?$AA?0?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAn?$AAu?$AAm?$AAb?$AAe?$AAr?$AA?5?$AAo?$AAf?$AA?5?$AAi@|
0043c 00000000 DCD |??_C@_1EE@PPN@?$AAM?$AAM?$AAC?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AA?9?$AA?5?$AAp?$AAc?$AA?9?$AA?$DO?$AAd?$AAr?$AAi?$AAv?$AAe@|
00440 00000000 DCD |??_C@_1CC@MGHJ@?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAi?$AAs?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?$CB?$AA?$AN?$AA?6?$AA?$AA@|
00444 00000000 DCD |??_C@_1EM@DOL@?$AAm?$AAm?$AAc?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?5?$AA?9?$AA?9?$AA?5?$AAI?$AAt?$AA?5?$AAe?$AAn?$AAt?$AAe?$AAr@|
00448 00000000 DCD |??_C@_1FE@BKCB@?$AAa?$AAf?$AAt?$AAe?$AAr?$AA?5?$AAs?$AAu?$AAc?$AAc?$AAe?$AAs?$AAs?$AAf?$AAu?$AAl?$AAl?$AAy?$AA?5?$AAa@|
0044c 00000000 DCD |??_C@_1DA@JCDP@?$AAi?$AAs?$AA?5?$AAt?$AAh?$AAe?$AA?5?$AAc?$AAa?$AAr?$AAd?$AA?5?$AAr?$AAe?$AAa?$AAd?$AAy?$AA?$DP?$AA?5?$AA?$CF@|
00450 00000000 DCD |??_C@_1BE@CPBE@?$AAu?$AAs?$AAe?$AAr?$AA_?$AAs?$AAd?$AA?$AN?$AA?6?$AA?$AA@|
00454 00000000 DCD |??_C@_1CM@KBHA@?$AAm?$AAm?$AAc?$AAR?$AAe?$AAs?$AAe?$AAt?$AA?$CI?$AA?$CJ?$AA?5?$AAe?$AAn?$AAt?$AAe?$AAr?$AAe?$AAd?$AA?5?$AA?$AN@|
00458 |$M37249|
ENDP ; |mmcReset|
EXPORT |??_C@_1DG@GHFO@?$AAm?$AAm?$AAc?$AAI?$AAd?$AAe?$AAn?$AAt?$AAi?$AAf?$AAy?$AA?$CI?$AA?$CJ?$AA?5?$AAi?$AAs?$AA?5?$AAe?$AAn?$AAt@| [ DATA ] ; `string'
EXPORT |??_C@_1EG@HGFE@?$AAA?$AAL?$AAL?$AA_?$AAS?$AAE?$AAN?$AAD?$AA_?$AAC?$AAI?$AAD?$AA?5?$AAc?$AAo?$AAm?$AAm?$AAa?$AAn?$AAd@| [ DATA ] ; `string'
EXPORT |??_C@_1FI@DDI@?$AAB?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAs?$AAe?$AAn?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAS?$AAE?$AAT?$AA_?$AAR@| [ DATA ] ; `string'
EXPORT |??_C@_1DE@FGPN@?$AAr?$AAe?$AAs?$AAE?$AAr?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAa?$AAs?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAs@| [ DATA ] ; `string'
00000 AREA |.text| { |mmcIdentify| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 AREA |.pdata$$mmcIdentify|, PDATA, SELECTION=5, ASSOC=|.text| { |mmcIdentify| } ; comdat associative
|$T37264| DCD |mmcIdentify|
DCD 0x40003c02
00000 AREA |.rdata| { |??_C@_1DG@GHFO@?$AAm?$AAm?$AAc?$AAI?$AAd?$AAe?$AAn?$AAt?$AAi?$AAf?$AAy?$AA?$CI?$AA?$CJ?$AA?5?$AAi?$AAs?$AA?5?$AAe?$AAn?$AAt@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DG@GHFO@?$AAm?$AAm?$AAc?$AAI?$AAd?$AAe?$AAn?$AAt?$AAi?$AAf?$AAy?$AA?$CI?$AA?$CJ?$AA?5?$AAi?$AAs?$AA?5?$AAe?$AAn?$AAt@| DCB "m"
DCB 0x0, "m", 0x0, "c", 0x0, "I", 0x0, "d", 0x0, "e", 0x0, "n"
DCB 0x0, "t", 0x0, "i", 0x0, "f", 0x0, "y", 0x0, "(", 0x0, ")"
DCB 0x0, " ", 0x0, "i", 0x0, "s", 0x0, " ", 0x0, "e", 0x0, "n"
DCB 0x0, "t", 0x0, "e", 0x0, "r", 0x0, "e", 0x0, "d", 0x0, 0xd
DCB 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1EG@HGFE@?$AAA?$AAL?$AAL?$AA_?$AAS?$AAE?$AAN?$AAD?$AA_?$AAC?$AAI?$AAD?$AA?5?$AAc?$AAo?$AAm?$AAm?$AAa?$AAn?$AAd@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1EG@HGFE@?$AAA?$AAL?$AAL?$AA_?$AAS?$AAE?$AAN?$AAD?$AA_?$AAC?$AAI?$AAD?$AA?5?$AAc?$AAo?$AAm?$AAm?$AAa?$AAn?$AAd@| DCB "A"
DCB 0x0, "L", 0x0, "L", 0x0, "_", 0x0, "S", 0x0, "E", 0x0, "N"
DCB 0x0, "D", 0x0, "_", 0x0, "C", 0x0, "I", 0x0, "D", 0x0, " "
DCB 0x0, "c", 0x0, "o", 0x0, "m", 0x0, "m", 0x0, "a", 0x0, "n"
DCB 0x0, "d", 0x0, " ", 0x0, "f", 0x0, "a", 0x0, "i", 0x0, "l"
DCB 0x0, "s", 0x0, " ", 0x0, "[", 0x0, "%", 0x0, "d", 0x0, "]"
DCB 0x0, "!", 0x0, 0xd, 0x0, 0xa, 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1FI@DDI@?$AAB?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAs?$AAe?$AAn?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAS?$AAE?$AAT?$AA_?$AAR@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1FI@DDI@?$AAB?$AAe?$AAf?$AAo?$AAr?$AAe?$AA?5?$AAs?$AAe?$AAn?$AAd?$AAi?$AAn?$AAg?$AA?5?$AAS?$AAE?$AAT?$AA_?$AAR@| DCB "B"
DCB 0x0, "e", 0x0, "f", 0x0, "o", 0x0, "r", 0x0, "e", 0x0, " "
DCB 0x0, "s", 0x0, "e", 0x0, "n", 0x0, "d", 0x0, "i", 0x0, "n"
DCB 0x0, "g", 0x0, " ", 0x0, "S", 0x0, "E", 0x0, "T", 0x0, "_"
DCB 0x0, "R", 0x0, "E", 0x0, "L", 0x0, "A", 0x0, "T", 0x0, "I"
DCB 0x0, "V", 0x0, "E", 0x0, "_", 0x0, "A", 0x0, "D", 0x0, "D"
DCB 0x0, "R", 0x0, " ", 0x0, "c", 0x0, "o", 0x0, "m", 0x0, "m"
DCB 0x0, "a", 0x0, "n", 0x0, "d", 0x0, "!", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
00000 AREA |.rdata| { |??_C@_1DE@FGPN@?$AAr?$AAe?$AAs?$AAE?$AAr?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAa?$AAs?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAs@| }, DATA, READONLY, SELECTION=2 ; comdat any
|??_C@_1DE@FGPN@?$AAr?$AAe?$AAs?$AAE?$AAr?$AAr?$AA?5?$AAi?$AAs?$AA?5?$AAa?$AAs?$AA?5?$AAf?$AAo?$AAl?$AAl?$AAo?$AAw?$AAs@| DCB "r"
DCB 0x0, "e", 0x0, "s", 0x0, "E", 0x0, "r", 0x0, "r", 0x0, " "
DCB 0x0, "i", 0x0, "s", 0x0, " ", 0x0, "a", 0x0, "s", 0x0, " "
DCB 0x0, "f", 0x0, "o", 0x0, "l", 0x0, "l", 0x0, "o", 0x0, "w"
DCB 0x0, "s", 0x0, " ", 0x0, "%", 0x0, "d", 0x0, 0xd, 0x0, 0xa
DCB 0x0, 0x0, 0x0 ; `string'
; Function compile flags: /Ogsy
00000 AREA |.text| { |mmcIdentify| }, CODE, ARM, SELECTION=1 ; comdat noduplicate
00000 |mmcIdentify| PROC
; 625 : {
00000 e92d40f0 stmdb sp!, {r4 - r7, lr}
00004 e24dd004 sub sp, sp, #4
00008 |$M37262|
00008 e1a07000 mov r7, r0
0000c e1a04001 mov r4, r1
00010 e1a05002 mov r5, r2
; 626 : MMC_CC resErr;
; 627 : RETAILMSG(1, (TEXT("mmcIdentify() is entered\r\n")));
00014 e59f00d0 ldr r0, [pc, #0xD0]
00018 eb000000 bl NKDbgPrintfW
; 628 :
; 629 : resErr = mmcCommandAndResponse ( pc,
; 630 : 0L,
; 631 : ALL_SEND_CID,
; 632 : 0,
; 633 : R2 );
0001c e3a03002 mov r3, #2
00020 e58d3000 str r3, [sp]
00024 e3a02002 mov r2, #2
00028 e3a03000 mov r3, #0
0002c e3a01000 mov r1, #0
00030 e1a00007 mov r0, r7
00034 eb000000 bl mmcCommandAndResponse
00038 e1b06000 movs r6, r0
; 634 : if ( resErr != MMC_NO_ERROR )
0003c 0a000006 beq |$L36628|
; 635 : {
; 636 : RETAILMSG(1, (TEXT("ALL_SEND_CID command fails [%d]!\r\n"),resErr));
00040 e59f00a0 ldr r0, [pc, #0xA0]
00044 e1a01006 mov r1, r6
00048 eb000000 bl NKDbgPrintfW
; 637 : pc->error_code = (UINT16)resErr;
0004c e1a03806 mov r3, r6, lsl #16
00050 e1a00823 mov r0, r3, lsr #16
00054 e1c701b6 strh r0, [r7, #0x16]
; 638 : return resErr;
00058 ea00001d b |$L36625|
0005c |$L36628|
; 639 : }
; 640 :
; 641 :
; 642 : if (cardType == SD_TYPE)
0005c e3540000 cmp r4, #0
00060 1a000007 bne |$L36631|
; 643 : {
; 644 :
; 649 : resErr = mmcCommandAndResponse ( pc,
; 650 : 0L,
; 651 : SET_RELATIVE_ADDR,
; 652 : 0,
; 653 : R6);
00064 e3a00006 mov r0, #6
00068 e58d0000 str r0, [sp]
0006c e3a03000 mov r3, #0
00070 e3a02003 mov r2, #3
00074 e3a01000 mov r1, #0
00078 e1a00007 mov r0, r7
0007c eb000000 bl mmcCommandAndResponse
; 654 :
; 655 :
; 656 : }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -