📄 sdi.txt
字号:
0004f0 e3c00c70 BIC r0,r0,#0x7000 ;526
0004f4 e3a01446 MOV r1,#0x46000000 ;526
0004f8 e581002c STR r0,[r1,#0x2c] ;526
0004fc e1a00000 NOP ;528
|L1.1280|
000500 e3a00446 MOV r0,#0x46000000 ;528
000504 e5900034 LDR r0,[r0,#0x34] ;528
000508 e3100001 TST r0,#1 ;528
00050c 1afffffb BNE |L1.1280| ;528
000510 e3a00446 MOV r0,#0x46000000 ;529
000514 e5900034 LDR r0,[r0,#0x34] ;529
000518 e3500000 CMP r0,#0 ;529
00051c 0a000004 BEQ |L1.1332| ;529
000520 e3a00446 MOV r0,#0x46000000 ;530
000524 e5900034 LDR r0,[r0,#0x34] ;530
000528 e1a01000 MOV r1,r0 ;530
00052c e28f00f4 ADR r0,|L1.1576| ;530
000530 ebfffffe BL _printf ;530
|L1.1332|
000534 e3a000ff MOV r0,#0xff ;531
000538 e3a01446 MOV r1,#0x46000000 ;531
00053c e5810034 STR r0,[r1,#0x34] ;531
000540 e1a00000 NOP ;533
|L1.1348|
000544 e3a00000 MOV r0,#0 ;535
000548 e3a01446 MOV r1,#0x46000000 ;535
00054c e5810008 STR r0,[r1,#8] ;535
000550 e3a00fd3 MOV r0,#0x34c ;536
000554 e3a01446 MOV r1,#0x46000000 ;536
000558 e581000c STR r0,[r1,#0xc] ;536
00055c e3a01001 MOV r1,#1 ;539
000560 e3a0000c MOV r0,#0xc ;539
000564 ebfffffe BL Chk_CMDend ;539
000568 e3500000 CMP r0,#0 ;539
00056c 1a000000 BNE |L1.1396| ;539
000570 eafffff3 B |L1.1348| ;540
|L1.1396|
000574 e3a00ea0 MOV r0,#0xa00 ;541
000578 e3a01446 MOV r1,#0x46000000 ;541
00057c e5810010 STR r0,[r1,#0x10] ;541
000580 e3a00446 MOV r0,#0x46000000 ;555
000584 e5900038 LDR r0,[r0,#0x38] ;555
000588 e1a01000 MOV r1,r0 ;555
00058c e28f00a4 ADR r0,|L1.1592| ;555
000590 ebfffffe BL _printf ;555
000594 e3a00446 MOV r0,#0x46000000 ;556
000598 e5900038 LDR r0,[r0,#0x38] ;556
00059c e2000f80 AND r0,r0,#0x200 ;556
0005a0 e3a01446 MOV r1,#0x46000000 ;556
0005a4 e5810038 STR r0,[r1,#0x38] ;556
0005a8 e3a00446 MOV r0,#0x46000000 ;557
0005ac e5900038 LDR r0,[r0,#0x38] ;557
0005b0 e1a01000 MOV r1,r0 ;557
0005b4 e28f008c ADR r0,|L1.1608| ;557
0005b8 ebfffffe BL _printf ;557
0005bc e28f0094 ADR r0,|L1.1624| ;559
0005c0 ebfffffe BL _printf ;559
0005c4 eaffff96 B |L1.1060|
|L1.1480|
0005c8 00000008 DCD ||.bss$2|| + 8
|L1.1484|
0005cc 65727453 DCB "Stre"
0005d0 72206d61 DCB "am r"
0005d4 20646165 DCB "ead "
0005d8 6d6d6f63 DCB "comm"
0005dc 20646e61 DCB "and "
0005e0 70707573 DCB "supp"
0005e4 7374726f DCB "orts"
0005e8 6c6e6f20 DCB " onl"
0005ec 4d4d2079 DCB "y MM"
0005f0 000a2143 DCB "C!\n\0"
|L1.1524|
0005f4 74535b0a DCB "\n[St"
0005f8 6d616572 DCB "ream"
0005fc 61657220 DCB " rea"
000600 65742064 DCB "d te"
000604 0a5d7473 DCB "st]\n"
000608 00000000 DCB "\0\0\0\0"
|L1.1548|
00060c 00886000 DCD 0x00886000
|L1.1552|
000610 0000034b DCD 0x0000034b
|L1.1556|
000614 61657252 DCB "Rrea"
000618 69742064 DCB "d ti"
00061c 756f656d DCB "meou"
000620 72652074 DCB "t er"
000624 00726f72 DCB "ror\0"
|L1.1576|
000628 49445372 DCB "rSDI"
00062c 41545344 DCB "DSTA"
000630 2578303d DCB "=0x%"
000634 00000a78 DCB "x\n\0\0"
|L1.1592|
000638 49445372 DCB "rSDI"
00063c 41545346 DCB "FSTA"
000640 78303d31 DCB "1=0x"
000644 000a7825 DCB "%x\n\0"
|L1.1608|
000648 49445372 DCB "rSDI"
00064c 41545346 DCB "FSTA"
000650 78303d32 DCB "2=0x"
000654 000a7825 DCB "%x\n\0"
|L1.1624|
000658 452d2d0a DCB "\n--E"
00065c 7320646e DCB "nd s"
000660 61657274 DCB "trea"
000664 6572206d DCB "m re"
000668 74206461 DCB "ad t"
00066c 0a747365 DCB "est\n"
000670 00000000 DCB "\0\0\0\0"
ENDP
Chk_BUSYend PROC
;;;866 int Chk_BUSYend(void)
;;;867 {
000674 e92d4010 STMFD sp!,{r4,lr}
;;;868 int finish;
;;;869
;;;870 finish=rSDIDSTA;
000678 e3a00446 MOV r0,#0x46000000
00067c e5900034 LDR r0,[r0,#0x34]
000680 e1a04000 MOV r4,r0
;;;871 while( !( ((finish&0x08)==0x08) | ((finish&0x20)==0x20) ))
000684 e1a00000 NOP
|L1.1672|
000688 e3a00001 MOV r0,#1
00068c e00001c4 AND r0,r0,r4,ASR #3
000690 e3a01001 MOV r1,#1
000694 e00112c4 AND r1,r1,r4,ASR #5
000698 e1900001 ORRS r0,r0,r1
00069c 1a000003 BNE |L1.1712|
;;;872 finish=rSDIDSTA;
0006a0 e3a00446 MOV r0,#0x46000000
0006a4 e5900034 LDR r0,[r0,#0x34]
0006a8 e1a04000 MOV r4,r0
0006ac eafffff5 B |L1.1672|
;;;873
;;;874 if( (finish&0xfc) != 0x08 )
|L1.1712|
0006b0 e20400fc AND r0,r4,#0xfc
0006b4 e3500008 CMP r0,#8
0006b8 0a000007 BEQ |L1.1756|
;;;875 {
;;;876 Uart_Printf("DATA:finish=0x%x\n", finish);
0006bc e1a01004 MOV r1,r4
0006c0 e28f001c ADR r0,|L1.1764|
0006c4 ebfffffe BL _printf
;;;877 rSDIDSTA=0xf4; //clear error state
0006c8 e3a000f4 MOV r0,#0xf4
0006cc e3a01446 MOV r1,#0x46000000
0006d0 e5810034 STR r0,[r1,#0x34]
;;;878 return 0;
0006d4 e3a00000 MOV r0,#0
;;;879 }
;;;880 return 1;
;;;881 }
|L1.1752|
0006d8 e8bd8010 LDMFD sp!,{r4,pc}
|L1.1756|
0006dc e3a00001 MOV r0,#1 ;880
0006e0 eafffffc B |L1.1752| ;880
|L1.1764|
0006e4 41544144 DCB "DATA" ;880
0006e8 6e69663a DCB ":fin" ;880
0006ec 3d687369 DCB "ish=" ;880
0006f0 78257830 DCB "0x%x" ;880
0006f4 0000000a DCB "\n\0\0\0" ;880
ENDP
Wt_Stream PROC
;;;726 void Wt_Stream(void) // only for MMC, 3blk write
;;;727 {
0006f8 e92d4038 STMFD sp!,{r3-r5,lr}
;;;728 int status, wt_cnt=0;
0006fc e3a04000 MOV r4,#0
;;;729
;;;730 if(MMC!=1)
000700 e51f0140 LDR r0,|L1.1480|
000704 e5900000 LDR r0,[r0,#0] ; MMC
000708 e3500001 CMP r0,#1
00070c 0a000002 BEQ |L1.1820|
;;;731 {
;;;732 Uart_Printf("Stream write command supports only MMC!\n");
000710 e28f0f65 ADR r0,|L1.2220|
000714 ebfffffe BL _printf
;;;733 return;
;;;734 }
;;;735 Uart_Printf("\n[Stream write test]\n");
;;;736 RECMD20:
;;;737 // rSDIDCON=(2<<22)|(1<<20)|(0<<17)|(0<<16)|(3<<12); // stream mode
;;;738 rSDIDCON=(2<<22)|(1<<20)|(0<<17)|(0<<16)|(1<<14)|(3<<12); // stream mode
;;;739
;;;740
;;;741 rSDICARG=0x0; // CMD20(addr)
;;;742 rSDICCON=(0x1<<9)|(0x1<<8)|0x54; //sht_resp, wait_resp, dat, start, CMD20
;;;743
;;;744 //-- Check end of CMD25
;;;745 if(!Chk_CMDend(20, 1))
;;;746 goto RECMD20;
;;;747 rSDICSTA=0xa00; // Clear cmd_end(with rsp)
;;;748
;;;749 while(wt_cnt<128*block)
;;;750 {
;;;751 status=rSDIFSTA;
;;;752 if((status&0x2000)==0x2000)
;;;753 rSDIDAT=Tx_buffer[wt_cnt++];
;;;754 }
;;;755
;;;756 //-- Check end of DATA
;;;757 while( rSDIFSTA&0x400 );
;;;758 Delay(10); // for the empty of DATA line(Hardware)
;;;759 // rSDIDCON=(1<<20)|(0<<17)|(0<<16)|(1<<14)|(0<<12);
;;;760 rSDIDCON=(1<<20)|(0<<17)|(0<<16); //YH 040220
;;;761 rSDIDCON=rSDIDCON&~(7<<12); //YH 040220, no operation, data ready
;;;762
;;;763 while( (rSDIDSTA&0x3)!=0x0 );
;;;764 if(rSDIDSTA!=0x0)
;;;765 Uart_Printf("rSDIDSTA=0x%x\n", rSDIDSTA);
;;;766
;;;767 rSDIDSTA=0xff; //Clear rSDIDSTA
;;;768
;;;769 STWCMD12:
;;;770 //--Stop cmd(CMD12)
;;;771 // rSDIDCON=(1<<18)|(1<<17)|(0<<16)|(1<<12);
;;;772 rSDIDCON=(1<<18)|(1<<17)|(0<<16)|(1<<14)|(1<<12);
;;;773
;;;774
;;;775 rSDICARG=0x0; //CMD12(stuff bit)
;;;776 rSDICCON=(0x1<<9)|(0x1<<8)|0x4c; //sht_resp, wait_resp, start, CMD12
;;;777
;;;778 //-- Check end of CMD12
;;;779 if(!Chk_CMDend(12, 1))
;;;780 goto STWCMD12;
;;;781 rSDICSTA=0xa00; // Clear cmd_end(with rsp)
;;;782
;;;783 //-- Check end of DATA(with busy state)
;;;784 if(!Chk_BUSYend())
;;;785 Uart_Printf("error\n");
;;;786 rSDIDSTA=0x08;
;;;787
;;;788 Uart_Printf("\n--End Stream write test\n");
;;;789 }
|L1.1816|
000718 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.1820|
00071c e28f0f6d ADR r0,|L1.2264| ;735
000720 ebfffffe BL _printf ;735
000724 e1a00000 NOP ;736
|L1.1832|
000728 e59f01c0 LDR r0,|L1.2288| ;738
00072c e3a01446 MOV r1,#0x46000000 ;738
000730 e581002c STR r0,[r1,#0x2c] ;738
000734 e3a00000 MOV r0,#0 ;741
000738 e3a01446 MOV r1,#0x46000000 ;741
00073c e5810008 STR r0,[r1,#8] ;741
000740 e3a00fd5 MOV r0,#0x354 ;742
000744 e3a01446 MOV r1,#0x46000000 ;742
000748 e581000c STR r0,[r1,#0xc] ;742
00074c e3a01001 MOV r1,#1 ;745
000750 e3a00014 MOV r0,#0x14 ;745
000754 ebfffffe BL Chk_CMDend ;745
000758 e3500000 CMP r0,#0 ;745
00075c 1a000000 BNE |L1.1892| ;745
000760 eafffff0 B |L1.1832| ;746
|L1.1892|
000764 e3a00ea0 MOV r0,#0xa00 ;747
000768 e3a01446 MOV r1,#0x46000000 ;747
00076c e5810010 STR r0,[r1,#0x10] ;747
000770 e1a00000 NOP ;749
|L1.1908|
000774 e51f03b4 LDR r0,|L1.968| ;749
000778 e5900000 LDR r0,[r0,#0] ;749 ; block
00077c e1540380 CMP r4,r0,LSL #7 ;749
000780 2a00000b BCS |L1.1972| ;749
000784 e3a00446 MOV r0,#0x46000000 ;751
000788 e5905038 LDR r5,[r0,#0x38] ;751
00078c e3150d80 TST r5,#0x2000 ;752
000790 0a000006 BEQ |L1.1968| ;752
000794 e1a00004 MOV r0,r4 ;753
000798 e2844001 ADD r4,r4,#1 ;753
00079c e51f13f4 LDR r1,|L1.944| ;753
0007a0 e5911000 LDR r1,[r1,#0] ;753 ; Tx_buffer
0007a4 e7910100 LDR r0,[r1,r0,LSL #2] ;753
0007a8 e3a01446 MOV r1,#0x46000000 ;753
0007ac e5810040 STR r0,[r1,#0x40] ;753
|L1.1968|
0007b0 eaffffef B |L1.1908| ;754
|L1.1972|
0007b4 e1a00000 NOP ;757
|L1.1976|
0007b8 e3a00446 MOV r0,#0x46000000 ;757
0007bc e5900038 LDR r0,[r0,#0x38] ;757
0007c0 e3100e40 TST r0,#0x400 ;757
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -