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

📄 sdmmc.cod

📁 ARM对MMC卡的编程文档
💻 COD
📖 第 1 页 / 共 5 页
字号:
  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 + -