📄 sdi.txt
字号:
;;;299 else
;;;300 {
;;;301 RECMDD7:
|L1.680|
0002a8 e1a00000 NOP
;;;302 rSDICARG=0<<16; //CMD7(RCA,stuff bit)
|L1.684|
0002ac e3a00000 MOV r0,#0
0002b0 e3a0145a MOV r1,#0x5a000000
0002b4 e5810008 STR r0,[r1,#8]
;;;303 rSDICCON=(0x1<<8)|0x47; //no_resp, start, CMD7
0002b8 e59f00e4 LDR r0,|L1.932|
0002bc e3a0145a MOV r1,#0x5a000000
0002c0 e581000c STR r0,[r1,#0xc]
;;;304
;;;305 //-- Check end of CMD7
;;;306 if(!Chk_CMDend(7, 0))
0002c4 e3a01000 MOV r1,#0
0002c8 e3a00007 MOV r0,#7
0002cc ebfffffe BL Chk_CMDend
0002d0 e3500000 CMP r0,#0
0002d4 1a000000 BNE |L1.732|
;;;307 goto RECMDD7;
0002d8 eafffff3 B |L1.684|
;;;308 rSDICSTA=0x800; // Clear cmd_end(no rsp)
|L1.732|
0002dc e3a00e80 MOV r0,#0x800
0002e0 e3a0145a MOV r1,#0x5a000000
0002e4 e5810010 STR r0,[r1,#0x10]
;;;309 }
;;;310 }
|L1.744|
0002e8 e8bd8010 LDMFD sp!,{r4,pc}
ENDP
View_Rx_buf PROC
;;;143 void View_Rx_buf()
;;;144 {
0002ec e92d4038 STMFD sp!,{r3-r5,lr}
;;;145 //-- Display Rx buffer
;;;146 int i,error=0;
0002f0 e3a05000 MOV r5,#0
;;;147
;;;148 Tx_buffer=(unsigned int *)0x31000000;
0002f4 e3a005c4 MOV r0,#0x31000000
0002f8 e59f10a8 LDR r1,|L1.936|
0002fc e5810000 STR r0,[r1,#0] ; Tx_buffer
;;;149 Rx_buffer=(unsigned int *)0x31800000;
000300 e3a005c6 MOV r0,#0x31800000
000304 e59f10a0 LDR r1,|L1.940|
000308 e5810000 STR r0,[r1,#0] ; Rx_buffer
;;;150
;;;151 Uart_Printf("Check Rx data\n");
00030c e28f009c ADR r0,|L1.944|
000310 ebfffffe BL Uart_Printf
;;;152
;;;153 for(i=0;i<128*block;i++)
000314 e3a04000 MOV r4,#0
|L1.792|
000318 e59f00a0 LDR r0,|L1.960|
00031c e5900000 LDR r0,[r0,#0] ; block
000320 e1540380 CMP r4,r0,LSL #7
000324 2a000018 BCS |L1.908|
000328 ea000001 B |L1.820|
|L1.812|
00032c e2844001 ADD r4,r4,#1
000330 eafffff8 B |L1.792|
;;;154 {
;;;155 if(Rx_buffer[i] != Tx_buffer[i])
|L1.820|
000334 e59f0070 LDR r0,|L1.940|
000338 e5900000 LDR r0,[r0,#0] ; Rx_buffer
00033c e7900104 LDR r0,[r0,r4,LSL #2]
000340 e59f1060 LDR r1,|L1.936|
000344 e5911000 LDR r1,[r1,#0] ; Tx_buffer
000348 e7911104 LDR r1,[r1,r4,LSL #2]
00034c e1500001 CMP r0,r1
000350 0a00000c BEQ |L1.904|
;;;156 {
;;;157 Uart_Printf("\nTx/Rx error\n");
000354 e28f0068 ADR r0,|L1.964|
000358 ebfffffe BL Uart_Printf
;;;158 Uart_Printf("%d:Tx-0x%08x, Rx-0x%08x\n",i,Tx_buffer[i], Rx_buffer[i]);
00035c e59f0048 LDR r0,|L1.940|
000360 e5900000 LDR r0,[r0,#0] ; Rx_buffer
000364 e7903104 LDR r3,[r0,r4,LSL #2]
000368 e59f0038 LDR r0,|L1.936|
00036c e5900000 LDR r0,[r0,#0] ; Tx_buffer
000370 e7902104 LDR r2,[r0,r4,LSL #2]
000374 e1a01004 MOV r1,r4
000378 e28f0054 ADR r0,|L1.980|
00037c ebfffffe BL Uart_Printf
;;;159 error=1;
000380 e3a05001 MOV r5,#1
;;;160 break;
000384 ea000000 B |L1.908|
;;;161 }
;;;162 //YH 040227 Uart_Printf(".");
;;;163 }
|L1.904|
000388 eaffffe7 B |L1.812|
;;;164 if(!error)
|L1.908|
00038c e3550000 CMP r5,#0
000390 1a000001 BNE |L1.924|
;;;165 Uart_Printf(" O.K.\n");
000394 e28f0054 ADR r0,|L1.1008|
000398 ebfffffe BL Uart_Printf
;;;166 }
|L1.924|
00039c e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.928|
0003a0 00000347 DCD 0x00000347
|L1.932|
0003a4 00000147 DCD 0x00000147
|L1.936|
0003a8 0000000c DCD ||.bss$2|| + 12
|L1.940|
0003ac 00000010 DCD ||.bss$2|| + 16
|L1.944|
0003b0 63656843 DCB "Chec"
0003b4 7852206b DCB "k Rx"
0003b8 74616420 DCB " dat"
0003bc 00000a61 DCB "a\n\0\0"
|L1.960|
0003c0 0000001c DCD ||.bss$2|| + 28
|L1.964|
0003c4 2f78540a DCB "\nTx/"
0003c8 65207852 DCB "Rx e"
0003cc 726f7272 DCB "rror"
0003d0 0000000a DCB "\n\0\0\0"
|L1.980|
0003d4 543a6425 DCB "%d:T"
0003d8 78302d78 DCB "x-0x"
0003dc 78383025 DCB "%08x"
0003e0 7852202c DCB ", Rx"
0003e4 2578302d DCB "-0x%"
0003e8 0a783830 DCB "08x\n"
0003ec 00000000 DCB "\0\0\0\0"
|L1.1008|
0003f0 4b2e4f20 DCB " O.K"
0003f4 00000a2e DCB ".\n\0\0"
ENDP
Rd_Stream PROC
;;;516 void Rd_Stream(void) // only for MMC, 3blk read
;;;517 {
0003f8 e92d4038 STMFD sp!,{r3-r5,lr}
;;;518 int i;
;;;519 int status, rd_cnt=0;
0003fc e3a04000 MOV r4,#0
;;;520
;;;521 if(MMC!=1)
000400 e59f01c8 LDR r0,|L1.1488|
000404 e5900000 LDR r0,[r0,#0] ; MMC
000408 e3500001 CMP r0,#1
00040c 0a000002 BEQ |L1.1052|
;;;522 {
;;;523 Uart_Printf("Stream read command supports only MMC!\n");
000410 e28f0f6f ADR r0,|L1.1492|
000414 ebfffffe BL Uart_Printf
;;;524 return;
;;;525 }
;;;526 Uart_Printf("\n[Stream read test]\n");
;;;527
;;;528 RECMD11:
;;;529 // rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16)|(2<<12);
;;;530 rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16)|(1<<14)|(2<<12);
;;;531
;;;532
;;;533 rSDICARG=0x0; // CMD11(addr)
;;;534 rSDICCON=(0x1<<9)|(0x1<<8)|0x4b; //sht_resp, wait_resp, dat, start, CMD11
;;;535
;;;536 while(rd_cnt<128*block)
;;;537 {
;;;538 if( (rSDIDSTA&0x20) == 0x20 )
;;;539 {
;;;540 Uart_Printf("Rread timeout error");
;;;541 return ;
;;;542 }
;;;543
;;;544 status=rSDIFSTA;
;;;545 if((status&0x1000)==0x1000)
;;;546 {
;;;547 //*Rx_buffer++=rSDIDAT;
;;;548 //rd_cnt++;
;;;549 Rx_buffer[rd_cnt++]=rSDIDAT;
;;;550 }
;;;551 }
;;;552
;;;553 //-- Check end of CMD11
;;;554 if(!Chk_CMDend(11, 1))
;;;555 goto RECMD11;
;;;556 rSDICSTA=0xa00; // Clear cmd_end(with rsp)
;;;557
;;;558 //-- Check end of DATA
;;;559 // rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16)|(1<<14)|(0<<12);
;;;560 rSDIDCON=(2<<22)|(1<<19)|(0<<17)|(0<<16); //YH 040220
;;;561 rSDIDCON=rSDIDCON&~(7<<12); //YH 040220, no operation, data ready
;;;562
;;;563 while( rSDIDSTA&0x3 !=0x0 );
;;;564 if(rSDIDSTA!=0)
;;;565 Uart_Printf("rSDIDSTA=0x%x\n", rSDIDSTA);
;;;566 rSDIDSTA=0xff; //YH 040221
;;;567
;;;568 STRCMD12:
;;;569 //--Stop cmd(CMD12)
;;;570 rSDICARG=0x0; //CMD12(stuff bit)
;;;571 rSDICCON=(0x1<<9)|(0x1<<8)|0x4c; //sht_resp, wait_resp, start, CMD12
;;;572
;;;573 //-- Check end of CMD12
;;;574 if(!Chk_CMDend(12, 1))
;;;575 goto STRCMD12;
;;;576 rSDICSTA=0xa00; // Clear cmd_end(with rsp)
;;;577 rSDIFSTA=rSDIFSTA&0x200; //Clear Rx FIFO Last data Ready, YH 040221
;;;578 /*
;;;579 //-- Display Rx data
;;;580 //Uart_Printf("\nRx data\n");
;;;581 for(i=0;i<128*2;i++)
;;;582 {
;;;583 if(Rx_buffer[i] != Tx_buffer[i])
;;;584 {
;;;585 //Uart_Printf("%08x, %08x\n",Tx_buffer[i], Rx_buffer[i]);
;;;586 break;
;;;587 }
;;;588 }
;;;589 */
;;;590
;;;591 Uart_Printf("rSDIFSTA1=0x%x\n", rSDIFSTA); //YH 040221
;;;592 rSDIFSTA=rSDIFSTA&0x200; //Clear Rx FIFO Last data Ready, YH 040221
;;;593 Uart_Printf("rSDIFSTA2=0x%x\n", rSDIFSTA); //YH 040221
;;;594
;;;595 Uart_Printf("\n--End stream read test\n");
;;;596 }
|L1.1048|
000418 e8bd8038 LDMFD sp!,{r3-r5,pc}
|L1.1052|
00041c e28f0f76 ADR r0,|L1.1532| ;526
000420 ebfffffe BL Uart_Printf ;526
000424 e1a00000 NOP ;528
|L1.1064|
000428 e59f01e4 LDR r0,|L1.1556| ;530
00042c e3a0145a MOV r1,#0x5a000000 ;530
000430 e581002c STR r0,[r1,#0x2c] ;530
000434 e3a00000 MOV r0,#0 ;533
000438 e3a0145a MOV r1,#0x5a000000 ;533
00043c e5810008 STR r0,[r1,#8] ;533
000440 e59f01d0 LDR r0,|L1.1560| ;534
000444 e3a0145a MOV r1,#0x5a000000 ;534
000448 e581000c STR r0,[r1,#0xc] ;534
00044c e1a00000 NOP ;536
|L1.1104|
000450 e51f0098 LDR r0,|L1.960| ;536
000454 e5900000 LDR r0,[r0,#0] ;536 ; block
000458 e1540380 CMP r4,r0,LSL #7 ;536
00045c 2a000012 BCS |L1.1196| ;536
000460 e3a0045a MOV r0,#0x5a000000 ;538
000464 e5900034 LDR r0,[r0,#0x34] ;538
000468 e3100020 TST r0,#0x20 ;538
00046c 0a000002 BEQ |L1.1148| ;538
000470 e28f0f69 ADR r0,|L1.1564| ;540
000474 ebfffffe BL Uart_Printf ;540
000478 eaffffe6 B |L1.1048| ;541
|L1.1148|
00047c e3a0045a MOV r0,#0x5a000000 ;544
000480 e5905038 LDR r5,[r0,#0x38] ;544
000484 e3150d40 TST r5,#0x1000 ;545
000488 0a000006 BEQ |L1.1192| ;545
00048c e3a0045a MOV r0,#0x5a000000 ;549
000490 e5902040 LDR r2,[r0,#0x40] ;549
000494 e1a00004 MOV r0,r4 ;549
000498 e2844001 ADD r4,r4,#1 ;549
00049c e51f10f8 LDR r1,|L1.940| ;549
0004a0 e5911000 LDR r1,[r1,#0] ;549 ; Rx_buffer
0004a4 e7812100 STR r2,[r1,r0,LSL #2] ;549
|L1.1192|
0004a8 eaffffe8 B |L1.1104| ;551
|L1.1196|
0004ac e3a01001 MOV r1,#1 ;554
0004b0 e3a0000b MOV r0,#0xb ;554
0004b4 ebfffffe BL Chk_CMDend ;554
0004b8 e3500000 CMP r0,#0 ;554
0004bc 1a000000 BNE |L1.1220| ;554
0004c0 eaffffd8 B |L1.1064| ;555
|L1.1220|
0004c4 e3a00ea0 MOV r0,#0xa00 ;556
0004c8 e3a0145a MOV r1,#0x5a000000 ;556
0004cc e5810010 STR r0,[r1,#0x10] ;556
0004d0 e3a00888 MOV r0,#0x880000 ;560
0004d4 e3a0145a MOV r1,#0x5a000000 ;560
0004d8 e581002c STR r0,[r1,#0x2c] ;560
0004dc e3a0045a MOV r0,#0x5a000000 ;561
0004e0 e590002c LDR r0,[r0,#0x2c] ;561
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -